CS 61B Data Structures, Spring 2019
Instructor: Josh Hug
Lecture: MWF 3-4 PM, Wheeler 150
Announcements [View All]
  • Week 13 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 12 Survey

    Challenge Lab 13 Cancelled

    • As mentioned last week, there will not be challenge lab assignment for week 13, because regular lab for week 13 will be Project 3-related. All students will have to complete the regular lab.
    • Challenge lab sections will be converted to regular lab sections.
    • Week 14 does not have a (challenge) lab assignment outside of the Project 3 demo.

    Spring Break Survey Extra Credit

    • We reached >85% participation for the Spring Break Survey, so all students will receive 8 extra credit points. @3930

    CSM x HKN Course Planning Workshop

    • Are you confused about what the different areas of EE/CS are or what classes to take next? If so, come out to the EE/CS Course Scheduling Workshop on 4/23 to listen to and discuss with peers interested in the same topics!
    • Students who are starting to consider upper division courses are especially encouraged to attend! There will be upperclassmen who are familiar with an area providing advice and facilitating discussions. There will also be snacks!
      https://www.facebook.com/events/391880664726155/
    • The workshop will have upper class students talk about their experiences taking courses and what they thought about it. So come through and ask (orr just sit there and listen)! You don't have to be there the whole time :)
      Separate thread here: @5215

    1 on 1 Tutoring

    • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
    • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
    • Please take note of a few things, if you choose to sign up for tutoring:
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!

    Practice Final

    • In order to get practice with the test taking environment, we'll be holding a practice final exam on Tuesday, May 7, 7-10p, in Dwinelle 155, using the Spring 2016 final. If you plan to attend, we recommend that you do not use this exam to study until after this practice final to get the full practice exam experience.

    Office Hours Policy Reminders

    • Please do not submit office hours requests before office hours begin, and make sure to include a tag and description in your office hours request or your request will be deleted. See @4986 for more details.

    Morgan Hall OH: Please do not work in the hallway!

    • The NST department reached out to us that this creates a disruption to their classes and a safety and fire hazard, so please do not work in the hallway when at office hours in 109 Morgan. Thank you so much for your cooperation!

  • Week 12 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 11 Survey

    • The week 11 survey is online and closes 11:59pm April 15: https://forms.gle/zeF8smExvrSv6rq19

    Challenge Labs 12 & 13 Cancelled

    • There will not be challenge lab assignments for weeks 12 and 13, because regular lab for weeks 12 and 13 will be Project 3-related. All students will have to complete the regular lab.
    • Challenge lab sections will be converted to regular lab sections.
    • Week 14 does not have a (challenge) lab assignment outside of the Project 3 demo.

    Spring Break Survey Extra Credit

    • We reached >85% participation for the Spring Break Survey, so all students will receive 8 extra credit points. @3930

    1 on 1 Tutoring

    • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
    • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
    • Please take note of a few things, if you choose to sign up for tutoring:
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!
  • Week 11 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 10 Survey

    Piazza will be closed

    • Piazza will be closed until the last exam has been completed.

    Reminder that HW4 is out

    • HW4 is out and due 4/10.

    Fill out the Spring Break Survey!

    • @3930
    • The survey will close approximately April 7th.
    • "You will earn 8 extra credit points for completing it. This survey is completely anonymous -- even though it will ask you to log in, your email will not be recorded. Credit will be given to everyone so long as survey participation reaches 85%."

    Proj2ab Scores Update

    • We are still working on this, so updates will come out soon.

  • Week 10 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 9 Survey

    Midterm 2

    • Midterm 2 will be on Friday April 5, 8-10 P.M.
    • "Inspired by the great Paul Hilfinger tradition, exam questions may cover any material whatsoever. For fear of our lives, exams will almost exclusively test material covered in the course," specifically material up to and including 4/1.
    • Rules:
      • No electronic resources (computers, tablets, phones, smartwatches) will be allowed at the exam.
      • No sharing notes/discussing with other students during the exam.
      • You will be allowed to bring two letter size page of handwritten notes (front and back) to the second midterm. You will not be required to turn in these sheets, and you may reuse them from exam to exam.
      • After taking the exam, please do not discuss the exam until solutions are released.
      • Room assignments will be announced before MT2.

    Midterm 2 Review Sessions

    • Course Staff Guerilla Section - 3/31, 12-2PM, Soda Labs. See @3736.
    • HKN Review Session - 3/31 3-6PM HP Auditorium (@3828)
    • CSM Review Session - 4/1 6-9PM HP Auditorium (@3912)

    Midterm 2 DSP

    • If you are a DSP student who requires exam accommodations, you should have received an email with your testing time and location. If you did not receive an email and require accommodations, please email cs61b@berkeley.edu ASAP and fill out the DSP accommodations form.

    Project 2ab Extensions & Extension System Changes

    • We will begin running the full autograder starting on 4/2 for Project 2ab, so absolutely NO extensions will be given beyond that point.
    • As mentioned in today's lecture, there will be a change to our extension system coming up - more info coming soon. Note that this change will not affect any of the assignments that are already released.

    Spring Break

    • Some staff may drop in during spring break and answer Piazza questions, but do not expect it to be as frequent as usual.
    • Also expect a longer delay for responses to emails sent to TA including extension requests, up to 3-5 days.
    • We hope you have a great, relaxing break!

  • Week 9 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

     

    Week 8 Survey

    Project 2 Deadlines

    • Project 2A is due on Saturday, March 16 at 11:59pm. Project 2B is due on Saturday, March 23 at 11:59pm. Remember that these are real deadlines (not "checkpoints")! When completed, submit your code to Gradescope, where there will be a sanity check run on your code. There is no full autograder until after the deadline. See @3207 for more details.

    Proj2ab Common Mistakes

    • @3223 has some common proj2ab mistakes that you might find helpful. We'll be updating them along the way.

    DSP Form (Reminder)

    • If you require DSP accommodations and have not filled out the DSP form, please do so ASAP or we may not accommodate you for future exams.

    1 on 1 Tutoring

    • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
    • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
    • Please take note of a few things, if you choose to sign up for tutoring:
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!

    Midterm 2 Events

    • Midterm 2 is on April 5th from 8-10pm. Here are some events to keep on your radar!
      • [Resource] Course Staff Guerrilla Section - 3/31 12-2PM Soda Labs
      • [Resource] HKN Review Session - 3/31 3-6PM HP Auditorium
      • [Resource] CSM Review Session - 4/1 6-9PM HP Auditorium

  • Week 8 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

     

    Week 7 Survey

    HW 3 Released!

    • HW 3: Hashing has been released, and is due on Monday, 3/11 at 11:59 pm. See @2720 for more details.

    -

    1 on 1 Tutoring

    -
    • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
    -
    • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
    - - -
    • Please take note of a few things, if you choose to sign up for tutoring: -
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!
      -
    -
    • </div>

    ? +

  • Week 7 Announcement
    • Week 6 Survey

    • Week 6 Survey

    ? +++++++

    HW 2 Released!

    • HW 2 has been released and is due on Wednesday, 3/6 at 11:59pm. See @2472 for more details.

    Midterm 1 Regrade Requests Open

    • The midterm 1 regrade request window has been opened and will close on Friday, 3/8 at 11:59pm. See @2338 for regrade instructions and more details.

    • 1 on 1 Tutoring

      • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
      • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
      • Please take note of a few things, if you choose to sign up for tutoring:
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!
    • </li></ul>

  • Week 6 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 5 Survey

    CSM Sign Ups

    There are a lot of available sections on Friday: http://scheduler.csmentors.org/. Computer Science Mentors (CSM) will be running small group discussion sections for CS 61B this semester!

    The CSM adjunct section is an additional discussion section with smaller groups that offers more individual attention than is available in large classes. The discussion sections will feature worksheets which cover selected topics from CS 61B. The worksheet will typically follow material presented in lecture a week before the section. The purpose of these sections is to create a stronger feeling of community in classes and reinforce conceptual understanding of course material. Please refrain from asking questions pertinent to homework, projects, and exams during sections. More info: @1064

    Mentors are not necessarily official course staff but are fellow undergraduates who have taken CS 61B and are volunteering their time and energy to create a better community for students. Mentor bios are available here to help you choose a mentor.


    CSM will be reserving some CS 61B sections for students in EOP, a program on campus that supports students who have low incomes, are first-generation college students, and/or who are historically underrepresented. If you are a student in EOP and are interested in enrolling in one of these sections, please use this form to indicate your interest.

    Midterm 1 Solutions

    OH Policy Update

    • In addition to existing policies, we will not help with assignments in OH or lab more than 3 working days after the due date. Example: If HW 2 is due on Wednesday, the last day we will provide help is the following Monday. If Monday is a holiday, the last day we would help would be Tuesday

    1 on 1 Tutoring, Week 6

    • CS 370, "Introduction to Teaching Computer Science", is a class for academic interns who are interested in Computer Science Education. Their weekly homework, starting next week, is to tutor students one-on-one in hour long sessions. In exchange, you'll provide feedback to them about how they're doing and what they can do to improve.
    • The tutors are here to help you with concepts, to go through examples with you, and to help you learn how to solve problems that you get stuck on. That means you should NOT ask them for homework or project help. Please go to office hours for that.
    • Please take note of a few things, if you choose to sign up for tutoring:
      • Try to list as many times you're available as possible! This will help in receiving a tutoring appointment.
      • Similarly, filling out the feedback form within 48 hours is required for you to receive future appointments.  Please be constructive!
      • Check your email in a timely manner this coming weekend. If a tutor contacts you, please reply within 24 hours to their offer, otherwise your appointment may be cancelled at the tutor’s discretion.
      • Note somewhere the times you marked available on the sign-up form.  No-shows or cancelling on a tutoring appointment may reduce your chances of receiving appointments.
      • Good luck & have fun!

    Project 0 Gold Point Playlist 🌍

    • To celebrate and showcase your fellow students' creativity, here is a playlist of their project 0 gold point submissions. A lot of the videos were super cool and entertaining, with stories, plots, gameplay, challenges, and more!

  • Week 5 Announcement

    We'll be sending out a weekly announcement which will contain many announcements within it. Please be sure to read these each week, along with anything else that is pinned on / emailed through Piazza.

    Week 4 Survey

    Sick of losing points to the style checker? Read this!

    • IntelliJ has a feature that will reformat your code for you to fix many style issues. Watch this video about it:
    • TL;DW: right click your .java files in IntelliJ, select "Reformat Code" and press "OK".

    Challenge Labs Will Start Week 6

    • Challenge lab sections this week will remain regular lab sections. There will not be a challenge lab for week 5. They will start next week.

    Soda 271 Labs Converted to OH

    • Soda 271 will now be regular office hours. The change will be reflected on the website soon. 
    • If you have non-lab questions, you may be directed to the Soda 271 lab.
    • If you currently attend lab in Soda 271, please go to another lab section at that time.

    No 24 Hour Grace Period

    • There has been confusion about a hidden slide on lecture 5 describing a 24 hour grace period for projects submitted late. This is an old policy, and we are not following this policy for projects this semester. Assignments are due at the time specified, and will be considered late if submitted afterwards unless you have an extension.

    Midterm 1 Logistics

    • Midterm 1 will be on Wednesday February 20, 8-10 P.M.
    • "Inspired by the great Paul Hilfinger tradition, exam questions may cover any material whatsoever. For fear of our lives, exams will almost exclusively test material covered in the course," specifically material up to and including 2/15.
    • Rules:
      • No electronic resources (computers, tablets, phones, smartwatches) will be allowed at the exam. 
      • No sharing notes/discussing with other students during the exam.
      • You will be allowed to bring one letter size page of handwritten notes (front and back) to the first midterm. You will not be required to turn in these sheets, and you may reuse them from exam to exam.
      • After taking the exam, please do not discuss the exam until solutions are released.
    • Please see @1605 for MT1 study resources.
    • If you are a DSP student who requires exam accommodations, you should have received an email with your testing time and location. If you did not receive an email and require accommodations, please email cs61b@berkeley.edu ASAP and fill out the DSP accommodations form.
    • Otherwise, room assignments will be announced next week.

  • Week 4 Announcements

    Links to the Study Guide Lecture threads will be contained in the Piazza index now.

    CSM Sign Ups: There are a lot of available sections on Friday: http://scheduler.csmentors.org/. Computer Science Mentors (CSM) will be running small group discussion sections for CS 61B this semester!

    Project 0 Gold Points: You should have received an email if you submitted Gold Points indicating your score. Email gigi.lu@berkeley.edu if you did not get any emails.

  • Office Hours Policies

    Office Hours Policies OH Queue: oh.datastructur.es If you add yourself to the OH queue before OH starts, you will be removed from the queue. Example: if you queue up at 10:55 a.m., but OH start at 11:00 a.m., then you will be removed. You must add a good, specific description to your OH ticket (including your question, any errors, and what you have tried already) or else you will be skipped. Begin your description with an appropriate tag from the following: [Logistics], [Git/Setup], [Conceptual], or [Debugging]. We reserve the right to not help you debug until you have shown effort to debug by yourself. This includes writing your own tests and using the IntelliJ debugger.

  • Discussion and Lab Changes

    Discussion and Lab Permenant Changes

    Discussion 150 (Tuesday 5pm, 9 Evans) will now be taught by Carlo and will be converted from an exam prep section into a regular discussion section. Sam will be teaching exam prep at the same time in B1 Hearst Field Annex.

    Lab 129 (Tuesday 5pm, 277 Soda) will now be taught by Danny and will be converted from a regular lab into a challenge lab.

    Lab 133 (Thursday 5pm, 275 Soda) will now be taught by Eli and will remain a regular lab.

    Lab 145 (Friday 1pm, 271 Soda) will now be taught by Itai and will remain a challenge lab

  • Project 1A walkthrough

    The project 1A spec now contains a video walkthrough for the trickier constructor for LinkedListDeque and ArrayDeque. See https://piazza.com/class/jqr7hfmf4v74e?cid=1010 for more details.

  • Mentor GSIs, extensions, week 2 survey
    1. The mentor GSI selection system is now live. You can request your mentor GSI by going to https://beacon.datastructur.es and using the drop down menu at the top of the page. Your mentor GSI will keep an eye on your progress, approve extension requests, and direct you to resources if it seems like you might be struggling. The system is first-come, first-served. Once a GSI has 35 mentees, the system will no longer let you add that person as a mentor GSI. You’ll be free to switch whenever you want during week 3, but we’ll require manual approval for switching starting week 4. If the person you want is already taken, pick someone else for now, and if you really want a particular person, we can manually add them as your mentor GSI during week 4.

    2. The week 2 survey is posted to the site. Reminder that it will close at 11:59 on February 3rd.

    3. If you need an extension request for project 0 or lab 2, please use the extension request system at https://beacon.datastructur.es. Since the deadlines have already passed, your extension will have to be approved manually, but we’ll be pretty friendly. We’re requiring manual approval because we want to keep track of folks who look like they’re running behind for whatever reason, even if it’s just that you forgot to submit before the deadline. It’s easy to get lost at Berkeley, especially in a class of 1700 people.

  • Pre-semester Advising Sessions

    We are opening up early semester advising to give students a chance to talk to TA’s one-on-one about concerns about the course, declaring majors, and more. We have a wide range of experiences and backgrounds represented by the CS61B staff, so if you want to talk about life beyond CS61B (i.e. internship recruiting, research, co-curricular clubs/activities, etc.), you’re welcome to sign-up for a one-on-one as well. This will also be a great chance to get to know the course staff before indicating your preferences for your Mentor GSI! You can see information about each staff member here.

    You can claim an appointment slot through here. Please be courteous of your classmates and only sign up for one appointment slot. Also, if you need to cancel, please delete the event off of your own Google Calendar so that another student may claim that slot. You may sign up for a slot with any TA you desire. The location will be listed on the particular slot, or the TA will reach out to you once they have found a place. If you want to meet with a TA who doesn’t have any slots available, you can try sending them an email! Please do not use one-on-ones for the purpose of homework/project/lab help, debugging, specific conceptual questions, etc.

  • Weekly Survey 1 Out

    The first weekly survey is out, and can be found here. It is due on 1/27/2019 at 11:59 P.M.!

  • First Lecture at 7 PM in Zellerbach

    The first lecture will be in 7 PM on 1/23 in Zellerbach Auditorium. There will be no lecture in Wheeler at 3 PM on 1/23. Lectures will move to Wheeler starting on 1/25.

    Also to clarify pacing points: To be eligible for pacing points for a given lecture, you should either attend or watch by the end of the same day as the live lecture. It doesn’t have to be at the exact same time. Watching on a previous day is OK as well.

  • Pre Semester Survey

    The pre-semester survey is now available, sorry it’s a day late. Fill it out at https://goo.gl/forms/v2aZJLLZwA52lcQJ2. This will add 8 extra credit points to your total score (see about page on the website for more about points in the course).

    We’ll accept responses until roughly the first midterm, but an earlier response is welcome so we can reach those of you have specific requests or needs.

  • Soft Launch

    The main part of the website is now posted. Calendar subject to change after week 4, though the midterm dates and times are set. If you want to try to get started on assignments, you can try to use the sp18 versions, but official support won’t be provided. Hoping to post the first few assignments by 1/14 for people who want to get started early.

    Course policies and other administrative stuff coming later.

Calendar
Week Date Reading Lecture Discussion Lab Assignments/Exams
1
survey
Wed 01/23

1.1

1. Intro, Hello World Java
[vid1] ‌[vid2] ‌[slides] ‌[guide] ‌
Intro to Java
[solution]
Setting Up Your Computer
javac, java, git (due 2/1)
HW 0: Basic Java Programs (optional)
Fri 01/25

1.2

2. Defining and Using Classes
[video] ‌[slides] ‌[guide] ‌
2
survey
Mon 01/28

2.1

3. References, Recursion, and Lists
[video] ‌[slides] ‌[guide] ‌
Scope, Pass-by-Value, Static
[slides] ‌[solution]
Scope, Pass-by-Value, Static Exam Prep
[solution]
IntelliJ Home Setup
IDEs (due 2/1)
Project 0: NBody (due 2/1 @ 11:59PM)
Wed 01/30

2.2

4. SLLists, Nested Classes, Sentinel Nodes
[video] ‌[slides] ‌[guide] ‌
Fri 02/01

2.3, 2.4

5. DLLists, Arrays
[video] ‌[slides] ‌[guide] ‌
3
survey
Mon 02/04

2.5

6. ALists, Resizing, vs. SLists
[video] ‌[slides] ‌[guide] ‌
Linked Lists, Arrays
[slides] ‌[solution]
Linked Lists, Arrays Exam Prep
[solution]
Testing, Debugging (due 2/8) Project 1A: Data Structures (due 2/9 @ 11:59 PM)
Wed 02/06

3.1, Optional: TDD is dead, Unit Tests Are Waste, Response

7. Testing
[video] ‌[slides] ‌[guide] ‌
Fri 02/08

4.1

8. Inheritance, Implements
[video] ‌[slides] ‌[guide] ‌
4
survey
Mon 02/11

4.2

9. Extends, Casting, Higher Order Functions
[video] ‌[slides] ‌[guide] ‌
Inheritance
[slides] ‌[solution]
Inheritance Exam Prep
[solution]
Peer Code Review (due 2/15) Project 1B: Testing and HoFs (due 2/16 @ 11:59 PM)
Project 1 Gold: Autograding (due 2/16 @ 11:59 PM)
Wed 02/13

4.3

10. Subtype Polymorphism vs. HoFs
[video] ‌[slides] ‌[guide] ‌
Fri 02/15

6.1, 6.2, 6.3, 6.4

11. Exceptions, Iterators, Object Methods
[video] ‌[slides] ‌[guide] ‌
5
survey
Mon 2/18: Academic Holiday Iterators, Iterables
[slides] ‌[solution]
Exceptions, Iterators, Iterables Exam Prep
[solution]
HugLife (due 2/22)
Wed 02/20

None

12. Coding in the Real World, Review
[slides] ‌
Midterm 1 (Date 2/20, 8-10PM)
Material up to 2/15
Fri 02/22

8.1, 8.2, Algs 170-198 (top paragraph)

13. Asymptotics I
[video] ‌[slides] ‌[guide] ‌
HW 1: Java Syntax and Sound Synthesis (due 2/27)
6
survey
Mon 02/25

9.1, 9.2, 9.3, 9.4, 9.5, Algs 216-233

14. Disjoint Sets
[video] ‌[slides] ‌[guide] ‌
Disjoint Sets and Asymptotics
[slides] ‌[solution]
Disjoint Sets and Asymptotics Exam Prep
[solution]
Disjoint Sets (due 3/1)
Challenge Disjoint Sets (due 3/1)
Wed 02/27

8.3, 8.4 (extra), Algs 170-198

15. Asymptotics II
[video] ‌[slides] ‌[guide] ‌
Fri 03/01

10.1, 10.2, Algs 396-406

16. ADTs, Sets, Maps, BSTs
[video] ‌[slides] ‌[guide] ‌
HW2: Percolation (due 3/6)
7
survey
Mon 03/04

11.1, 11.2, 11.3, Algs 424-431, 432-448 (extra)

17. B-Trees (2-3, 2-3-4 Trees)
[video] ‌[slides] ‌[guide] ‌
More Asymptotics, Search Trees
[slides] ‌[solution]
More Asymptotics, Search Trees Exam Prep
[solution]
TreeMap (due 3/8)
Challenge Binary Search Tree Performance (due 3/8)
Wed 03/06

11.4, 11.5, Algs 424-431, 432-448 (extra)

18. Red Black Trees
[video] ‌[slides] ‌[guide] ‌
Fri 03/08

12.1, 12.2, 12.3, 12.4, 12.5, Algs 458-468, 478-479, 468-475 (extra)

19. Hashing
[video] ‌[slides] ‌[guide] ‌
HW3: Hashing (due 3/11)
8
survey
Mon 03/11

13.1, 13.2, 13.3, Algs 308-320

20. Heaps and PQs
[video] ‌[slides] ‌[guide] ‌
LLRBs, Hashing, Heaps
[slides] ‌[solution]
LLRBs, Hashing, Heaps Exam Prep
[solution]
HashMap (due 3/15)
Challenge Heaps and Hashes (due 3/15)
Wed 03/13

14.1, 15.1, 15.2, 15.3, Algs 730-752

21. Prefix Operations and Tries
[video] ‌[slides] ‌[guide] ‌
Proj2: HeapPQ/KD-Tree
HeapPQ (due 3/16)
KDTree due (3/23)

Fri 03/15

16.1, 16.2, 16.3

22. Range Searching and Multi-Dimensional Data
[video] ‌[slides] ‌[guide] ‌
9
survey
Mon 03/18

17.1, 17.2, 17.3, 17.4, Algs 538-542, 566-583

23. Tree and Graph Traversals
[video] ‌[slides] ‌[guide] ‌
Tries, K-d Trees, Tree Traversals
[slides] ‌[solution]
Tries, K-d Trees, Tree Traversals Exam Prep
[solution]
Tries (due 3/22)
Challenge Graphs (due 3/22)
Wed 03/20

18.1, 18.2, Algs 538-542, 566-583

24. Graph Traversals and Implementations
[video] ‌[slides] ‌[guide] ‌
Fri 03/22

19.1, 19.2, 19.3, Algs 638-657

25. Shortest Paths
[video] ‌[slides] ‌[guide] ‌
Spring Break (3/25 - 3/29)
10
survey
Mon 04/01

20.1, 20.2, Algs 604-630

26. Minimum Spanning Trees
[video] ‌[slides] ‌[guide] ‌
DFS, BFS, Shortest Paths, MSTs
[slides] ‌[solution]
DFS, BFS, Shortest Paths, MSTs Exam Prep
[solution]
Exam Review
Wed 04/03

None

27. Reductions and Decomposition
[video] ‌[slides] ‌[guide] ‌
Fri 04/05

None

28. No Lecture
Midterm 2 (Date 4/5, Time 8-10PM)
Material up to 4/1
11
survey
Mon 04/08

Algs 244-275, 323-327

29. Basic Sorts
[video] ‌[slides] ‌[guide] ‌
Graphs
[solution]
Graphs Exam Prep
[solution]
Merge and Quicksort (due 4/12)
Challenge Bears and Beds (due 4/12)
HW 4: Puzzle Solver (due 4/10)
Wed 04/10

Algs 288-296, 302

30. Quick Sort
[video] ‌[slides] ‌[guide] ‌
Fri 04/12

None

31. Software Engineering I
[video] ‌[slides] ‌[guide] ‌
Proj 2C: Bear Maps (due 4/17)
12
survey
Mon 04/15

Algs 341-347

32. More Quick Sort, Sorting Summary
[video] ‌[slides] ‌[guide] ‌
Sorting, ADTs
[solution]
Sorting Exam Prep
[solution]
Getting Started on Project 3 (due 4/19)
Wed 04/17

Algs 279-282

33. Sorting and Algorithmic Bounds
[video] ‌[slides] ‌[guide] ‌
Fri 04/19

None

34. Software Engineering II
[video] ‌[slides] ‌[guide] ‌
Proj 3A: BYOW Phase 1(due 4/26)
13
Mon 04/22

Algs 702-718

35. Radix Sorts
[video] ‌[slides] ‌[guide] ‌
More Sorting
[solution]
Sorting Exam Prep
[solution]
Interactivity in Project 3
Wed 04/24

None

36. Sorting and Data Structures Conclusion
[video] ‌[slides] ‌[guide] ‌
Fri 04/26

None

37. Software Engineering III
[video] ‌[slides] ‌[guide] ‌
14
Mon 04/29

None

38. TBA
[video] ‌[slides] ‌[guide] ‌
Goodbye, Fun BYOW Demos Proj 3B: BYOW Phase 2 (due in lab)
Wed 05/01

None

39. NP Completeness (?)
[video] ‌[slides] ‌[guide] ‌
Fri 05/03

None

40. Summary, Fun
[slides] ‌
15
RRR Week (May 6-10)
Finals Week (May 13-17), Final exam: TBD
Lab/Discussion Schedule

Each discussion section is now a regular, an exam-prep, or a LOST discussion section.

  1. Regular discussions will focus on reviewing the material and doing foundational questions.
  2. Exam-prep discussions will have less review of concepts and focus on working through exam-level problems.
  3. LOST sections will be special drop-in sections that assume no prior knowledge and will be a safe space for students who are feeling behind.

Each lab section is now either a regular or a challenge lab section.

  1. Regular lab sections will follow closely with course material and applying what you learn in lecture.
  2. Challenge lab sections will focus on interesting collaborative puzzle solving programming challenges that are meant to prepare students for trickier exam problems.

 
Office Hour Schedule
Note: Office hours before lecture on Monday, Wednesday and Friday are in 109 Morgan. Office hours before 2 P.M. on Tuesday are in 310 Jacobs. Office hours after 5 P.M. on Tuesday and Wednesday are in 400 Cory. On Wednesday, Thursday, and Friday, feel free to come to lab with your questions.

 
Last built: 2019-04-25 03:07 UTC