CS 61B Data Structures, Fall 2020
Instructor: Josh Hug
Lecture: Zoom link
Announcements [View All]
  • Week 16

    Pre-final survey

    We are extending our date for the pre-final survey by one day, making it due tomorrow (Monday). It is of utmost importance that you all complete the pre-final survey: you will not be able to take the final exam if you don’t submit this form.

    Amnesty Reminder

    Remember that the deadline for assignments being submitted for amnesty is this Wednesday 12/9. You will not be able to submit after this date. Full details on Amnesty are found in this Ed post.
    Extra credit opportunities: Final survey and Course evaluations =================================================================

    As promised on our course info page, we will be giving out extra credit points for completing our final survey and the UC Berkeley course evaluations. Completing each of these surveys will give you 16 points for a total of 32 points of extra credit if you complete both of them.

    The CS 61B final survey

    The link is right here.

    If you submit this survey by Friday, 12/11, 11:59 PM, you will automatically receive 16 extra credit points.
    Course Evaluations ——————–

    On Gradescope, you will now see an assignment that allows you to submit a screenshot of your official course evaluation. After you submit your evaluation for CS 61B, take a screenshot that shows your name and that the evaluation for “COMPSCI 61B LEC 001 DATA STRUCTURES” has the “Completed” status. When you submit this screenshot to Gradescope you will get 16 extra credit points. This Gradescope assignment will be available until 12/13, 11:59 PM. We also encourage you to complete the evaluation for TAs you interacted with this semester in CS 61B!

    Here is an example of a screenshot that would grant you the extra credit points:

    You can choose to blur your other courses if you wish, but please keep your name visible.

    Final review sessions

    There are a number of review sessions hosted by CS 61B staff as well as HKN and CSM this week. Here is a compiled list of sessions going on during the week. You’re welcome to attend any and all of these sessions. Good luck on the final!

    Final Logistics

    In case you hadn’t read it from last week, our full logistics post is here.

    Weekly Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    Summary of important dates

    • Pre-final form: due tomorrow (Monday) night!

    • Amnesty assignment deadline: due Wednesday 12/09

    • Final survey: due Friday 12/11

    • Course evaluations: Sunday 12/13

    • Final exam: Wednesday 12/16 7-10 PM (main)

  • Week 15

    Project 3 Demos

    As you know, Project 3 Demos will occur this week all throughout Wednesday, Thursday, and Friday, during our regular Office Hours and Lab times. It’s imperative that you read this post which details the full logistics for Project 3 Demos. You are at risk of losing points if you do not read the linked post in its entirety.

    Project 3 Lateness

    Recall that you cannot request an extension on Phase 2 of Project 3 nor can you use an amnesty submission on Phase 2.

    Project 3 Partnership Review 2

    The Project 3 Phase 2 Partnership Reflection form is now available. It is also linked on the Project 3 Master Thread. The deadline for submitting this form is Tuesday 12/01, 11:59 PM. You cannot submit this assignment late using slip days or an amnesty submission.


    There is no discussion worksheet this week, but TAs will still be holding discussions. Feel free to come with any questions you have and come say goodbye and have fun with your discussion TA!

    Discussion Section Cancellations

    • Allyson’s Monday 5-6 PM discussion is cancelled this week.

    • Due to another scheduling conflict, Itai’s Monday 2-3 PM section is canceled this week too :( To make up for all the cancellations, Itai will hold a free form review session on Monday 12/07, 1-2 PM. If there are any topics or questions from past exams you want to review, submit your request here.


    There is no lab this week since we’re doing Project 3 Demos.

    Amnesty Submission

    If you haven’t already seen them, the details of amnesty submission are here. Remember that the deadline to choose your amnesty assignment on Beacon is tonight at 11:59 PM! Amnesty assignment submissions are due the Wednesday of RRR week (12/09).

    Final Exam

    The main slot for the final exam will be Wednesday 12/16 7-10 PM. We will release more information on the final (like we did with the midterms) next week, including a pre-final form. If you have a conflict with this final time you will be able to indicate this on the pre-final form.


    We have noticed quite a few duplicate or redundant posts recently. Please make sure you have searched through Ed before posting to see if your question has already been answered or addressed.

    Summary of important dates

    • Deadline for choosing your amnesty assignments: Tonight!

    • Deadline for signing up for Project 3 Demo slot: Tuesday 12/01 11:59 PM

    • Amnesty Submission deadline: Wednesday 12/09 11:59 PM

    • Final exam: Wednesday 12/16 7-10 PM (main), alternate (TBD)

  • Week 14

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    Discussion + Lab + OH cancellations

    This week we’re cancelling discussion and lab this week, as well as Wednesday, Thursday, and Friday Office Hours. Have a great Thanksgiving break :)

    Amnesty Submission Details

    The details of how to submit your assignments for Amnesty have been released here. Make sure you give this a read so you’re up to date on how to submit and all the relevant deadlines. As a reminder, Amnesty assignments are due on the Wednesday of RRR week.

    Project 3 Checkoff

    During the last week of classes, you will demo your Project 3 world to one of the TAs. The exact checkoff script that we will use in the lab demos is linked on the Project 3 spec. The demos will run during our regular lab times during the last week of school, and each demo will be 10 minutes long. The signups for these demos will be posted on the weekly announcements next week, and will be on a first-come-first-serve basis. However, if you feel like you need special accommodations for the signup, like securing an earlier time slot that would work better for your time zone, please fill out this form. We are likely to accommodate your request only for time-zone related issues. If you don’t hear back from us by next Sunday when the official signup goes live, you can assume we did not approve your request.

  • Week 13

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    Project 3 Updates

    Please frequently check the Project 3 master thread. We will add important clarifications as things come up. We will also try to add more resources that we find useful for tackling the project.

    Getting Help on Project 3

    With Project 3: BYOW now released, it’s important that all students know the protocols to getting help since they are slightly different from previous assignments. Because this project is so open-ended, it is paramount that you write a comprehensive design document and keep it up to date. Remember that staff can only spend 10 minutes with you in OH, and so if your design document isn’t comprehensive or doesn’t reflect the current state of your project, it’ll take > 10 minutes for the staff member to even understand your approach.

    Here are the notable changes:

    • Office Hours

      • You must link your design document in your ticket

        • This will be on your shared Github repository, so your link will look something like [https://github.com/Berkeley-CS61B-Student/fa20-p/blob/master/proj3/README.md](https://github.com/Berkeley-CS61B-Student/fa20-s/blob/master/proj3/README.md) (with *** replaced with your partner repo’s id)
      • If you do not link the doc/it’s missing/it’s not comprehensive, we will delete your ticket and ask you to update your design doc.

      • If you want help making a design doc, let us know in the ticket and then we can give you tips/help you get started.
    • Gitbugs

      • If your design doc is missing/not comprehensive, we will reject your Gitbug and ask you to update your design doc.

    In summary, if you do not have a design document or it’s poorly written, you will not be able to receive help on Project 3.

    Academic Dishonesty

    After reviewing Project 2A and Project 2B submissions, we have found a concerning number of cases of academic dishonesty. Specifically, students have violated our policies on collaboration and cheating by over-collaborating with other students, sharing code, or finding and copying solutions online. We want to stress that we take such violations very seriously. Our goal is to ensure that every student has an equal chance to learn and succeed in taking this class, and when students cheat, that opportunity to learn is degraded for everyone. We hope that you will follow our policies on collaboration and cheating for all future assignments.

    If you have violated our academic dishonesty policy for either Project 2C or Project 2D and would like to come forward now, please fill out this form by Tuesday 11/17 at 11:59 P.M. We will be much more lenient if you come forward now, rather than us finding that you have cheated later.


    This week’s discussion is more practice on sorting! As always, the worksheet and slides are available on the website and the solutions and walkthrough will be posted on Wednesday.

    Schedule changes:

    • Itai’s Monday 2-3 PM discussion is canceled just this week.


    The lab this week is similar to last week’s lab in that it’ll be extremely helpful for Project 3 Phase 2. Last week in lab 12, you learned about how to use TETiles to draw your world and display it to the screen. This week you’ll learn how to be able to allow users to interact with things you draw (i.e. capture keyboard input). It is highly recommended you attend live lab and work with your partner. The calendar of lab sections is available on the course website as always.

    Summary of important dates

    • Weekly survey: due tonight!

    • Lab 13: due Friday (11/15)

  • Week 12

    Project 3 Partnerships

    Recall that partners are required for Project 3. If your partnership status has changed in any way (i.e. you no longer need a partner or you now need a partner) modify your response to this form. Everyone must submit this form by Monday, 3:00 PM PST. If you have a partner, you will let us know who your partner is in this form. If you do not, you will fill out your preferences and be notified of your match by Monday night. You won’t be able to submit project 3 unless you have a partner or have been told otherwise by staff. The majority of your project 3 grade comes from a checkoff that you will have to complete with your partner. You may get assigned a random partner if you do not submit the form. We will NOT allow you to change a partner if you did not submit the form or did not update it as described above.

    Ed Megathreads

    Lots of people are using the megathreads for Project 2C and Project 2D and there have been great contributions there! Many common questions are already asked and answered there by students and staff alike. To make these great questions visible to more students, please be sure to “like” comments you found helpful! This helps students who sort by “top” (as discussed in the Ed guide) so they can see these great comments first and unstuck themselves even faster. Remember that you can like a comment by pressing the heart button <3


    We’ve been getting Gitbugs that do not follow our guidelines lately. We’ll be more strict about rejecting Gitbugs that do not meet our standards as explained in our Gitbugs guide. Particularly, you should always be showing us some evidence that you’ve attempted to debug your program. An example might be: “I placed a breakpoint on line 34 because that’s where I have a NullPointerException, but I’m unsure as to why the object returned from the get() function is null.” You should be spending ~1 hour debugging before you submit a Gitbug, and if it’s evident you haven’t we’ll reject it.

    Final Exam scope

    Previously, we mentioned that the pink lectures on the course website would on be tested via C-level questions on the final. We’ve now decided to not test these on the final at all. To recap: any lecture in pink on the course website will not be on the final. That being said, we highly encourage you all to watch these, especially the software engineering lectures. Beyond, being instrumental in helping you tackle Project 3, they’re also a great introduction to the world of software engineering that many of you will start a career in.

    Project 2C and Project 2D

    These two projects are due Monday (tomorrow)! As we mentioned in last week’s announcements, we will not be accepting Gitbugs submitted after the deadline. If you submit a Gitbug on the deadline, then you should expect longer wait times than usual.

    We’ll have conceptual presentations on Project 2D’s rastering during Office Hours on Monday, so this is a great opportunity to get your confusion cleared up with the TA that is presenting. These will be happening every hour on the 30-minute mark. That means a total of 4 presentations, each starting at 1:30 PM, 2:30 PM, 4:30 PM, and 5:30 PM. The Zoom link to each presentation will be included in the Discord chat shortly before it begins

    Wednesday section cancellations

    This Wednesday is an academic holiday so we will not be holding discussion nor lab sections on Wednesday. Recall that you can always go to any discussion and any lab, so if your normal section was on Wednesday feel free to attend another one during the week. We have also moved some of the Wednesday labs - here is a list of the rescheduled labs:

    • Allyson’s lab: moved to Thursday at 10 AM

    • Sohum’s lab: moved to Thursday at 11 AM

    • Isabelle’s lab: moved to Thursday at 5 PM

    • Sara and Itai’s lab: moved to Thursday at 2 PM

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    Topical Review

    This week’s topical review is held on Monday from 6-8 and it covers Graphs: traversals, shortest paths, and MSTs. For more information, go here.


    This week’s discussion is on Sorting! The worksheet is available on the website and the solutions + walkthrough videos will be posted on Wednesday (the same goes for exam prep).


    This week’s lab is an introduction to the libraries you will use in Project 3. We highly encourage you all to attend lab this week with your Project 3 partner if possible. As always, your lab TA will spend the last part of lab showing their solution to the lab. Since this lab has many possible solutions, you’ll get to see how your lab TA designs their solution and what things are going through their head when they make a specific design choice. This is a great opportunity to pick their mind and work on your own design skills.

    Summary of important dates:

    • Week 11 survey: due tonight!

    • Project 3 Partnerships form: must be submitted by Monday 3:00 PM!

    • Project 2C and Project 2D: due Monday (tomorrow)!

    • Lab 12: due Friday (11/13)!

  • Week 11

    Project 3 Partner Matching

    Remember that Project 3 has mandatory partners. In preparation for the project please fill out the following form to let us know who you will be working with.

    If you have a partner, great! Please indicate that on the form. Project 3 will require considerably more work than anything you have done this semester individually, so make sure you and your partner set expectations to what you want to accomplish. Also be sure to read our partnerships guide and get a partners repo if you don’t have one yet (details in the guide)

    You don’t have to work with your lab partner if you had one this semester. If you don’t have a partner, the form will ask you for some details so we can match you with another student, based on your timezone and other preferences.

    The form is due this Friday, 11/06. If you requested that we match you with another student, we will let you know who is your partner by the following Monday, 11/09.

    Discussion Cancellations

    Because of the election this week, we’re canceling all discussion sections. The worksheet, solution, and walkthrough video will be available on the website as always. Everyone gets free pacing points for discussion attendance this week.


    There will also be no lab assignment this week. Instead, we’ll have a Project 2 workday. This will be held in the Office Hours discord and you can get all the help you need on Project 2C and 2D (will be released this week). Wednesday labs are cancelled, and the Wednesday lab TAs will also help in office hours. Everyone gets free pacing points for lab attendance this week.

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    Project 2C

    The third part of project 2 has been released! It involves implementing the A* algorithm you saw from lecture and applying that to some puzzles. It is due next Monday 11/9 along with Project 2D which will be released later this week.

    Summary of important dates:

    • Week 10 survey: due tonight!

    • Project 3 partner matching/registration form: due Friday (11/6)

    • Project 2C: due next Monday (11/9)

    • Project 2D: due next Monday (11/9)

  • Week 10

    PG&E outages + Wildfires + Election

    Because of the upcoming PG&E outages combined with California wildfires and the upcoming election day, we’ve decided to make Project 2C due alongside Project 2D (both due on 11/9). We hope this relieves some stress for you. We’ve also decided to stick with the current midterm date: i.e. Midterm 2 is this Wednesday starting at 7pm. If for any reason you feel like you cannot properly take Midterm 2 this week, remember that you can override your Midterm 2 score with your Final exam score.

    Final Exam time

    Based on your indicated preference, the main Final exam time will be Wednesday 12/16 7-10pm. Just like with the midterms, there will be a pre-final form, in which you will be able to indicate if you have a conflict with this time and what alternate times work for you.

    Gitbugs Notice

    Note that while our lateness policy is very lenient, if you submit a Gitbug after the deadline for an assignment, it will have the lowest priority. So if you submitted a Gitbug over the weekend you should expect longer response times than if you submitted it before. This typically is true for Gitbugs on the deadline as well since we get a large influx of requests hours before the deadline and it’s very hard to process all of them in a reasonable time.

    We’ll have a more detailed post about how amnesty assignment submissions will work as we get closer to RRR week, but we want to give everyone a heads-up now. We will not be providing help via Gitbugs during RRR week for folks that are using their amnesty assignments. Again, more information on amnesty submissions later.

    Midterm 2 DSP Accommodations

    If you are a DSP student that has exam accommodations, you should have received an email with the subject “[CS 61B] Midterm 2 DSP Accommodations” with more details about your accommodations. If you are a DSP student that should have gotten an email about exam accommodations but didn’t, please email cs61b@berkeley.edu as soon as possible listing what accommodations you should have along with the email of your DSP specialist.

    Midterm 2 Alternates

    If you submitted the pre-midterm form by the Friday night deadline and requested an alternate, you should have received a confirmation email with the subject “[CS 61B] Midterm 2 Alternate Confirmation.” If you didn’t receive a confirmation email, then you are expected to take the midterm at the original time.

    Midterm 2 Review Sessions

    The course staff review sessions for CS 61B will be held on Monday, 10/26 from 6-8 PM and then from 8-10 PM. Find more information about them here.

    Homework 3

    Reminder that the conceptual homework 3 is due tomorrow. It’s a great prep assignment for the midterm, so we highly recommend you look over it as a study resource :)


    Because the material on this discussion is not in scope for the upcoming midterm, some TAs are offering exam review during their sections. Here is the schedule:

    • Sohum’s Monday 4-5pm exam prep section: Asymptotics

    • Omar’s Tuesday 11-12pm discussion: BSTs and Heaps

    • Ada’s Monday 4-5pm discussion: 2-3 Trees and LLRBs

    • Itai’s Monday 2-3pm discussion: whatever you want! Come in with concepts / past exam questions you want to review.

    In addition, Akshit’s Monday 3-4pm discussion is cancelled this week, but will resume next week as usual.


    There isn’t any lab this week. Unlike last week, we will not be converting normal lab hours to office hours this week. We encourage you all to take some time to decompress and relax after the midterm!

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week’s number.

    Small Tutor Sessions

    Please indicate on the form above if you are interested in small tutor sections for this week! As always, we cannot guarantee you a spot, but will do our best to accommodate you.

    Summary of important dates

    • Week 9 survey: due tonight!

    • Homework 3: due tomorrow (Monday) night

    • Project 2C: due on Monday, 11/9

    • Project 2D: due on Monday, 11/9

  • Week 9

    This week’s announcements are a bit more packed than usual, so please make sure you read through everything thoroughly. We have important information regarding midterm 2 as well as assignments that are due soon.

    Final content

    It’s a little early to be thinking about the final, but we have an update that will hopefully make this course a bit less stressful for students. A few of our lectures, highlighted in pink on the course website, will only have C-level questions on the final. This is so that you spend your time studying for the most important topics and can enjoy these lectures in your free time without worrying about soaking up every last detail.

    Project 3B - Lateness

    It’s not time for Project 3 yet, but we want to clarify something about lateness. You may use slip days and amnesty assignments on any assignment, however, we cannot allow lateness on Project 3B. That is because there is a check-in lab associated with this project, and we need to reserve TA time to proctor and grade the final. Every other assignment is applicable for slip days and amnesty submission. You’ll learn more about how you can use your amnesty submissions as dead week approaches, so stay tuned for that.

    Midterm 2 events

    The second midterm is next Wednesday, 10/28. A detailed post about how specifics of midterm 2 will come later this week around Tuesday. To help you prepare for the exam, we are hosting a few different events.

    Topical Review: Searching, LLRBs, Hashing

    The first is a topical review session this Monday 10/19 from 6-8 PM! The topics covered will be Search Trees, LLRBs, and Hashing. For more information, go here.

    Homework 3 Party

    The next is a homework 3 party this Saturday, 10/24 from 2-5 pm. Unlike previous parties, this one will pair students into groups of 4 students to encourage collaboration. A number of students voiced that they would like to work in groups, so our hope is that this party will accomplish that. This is a great opportunity to finish up the homework while also studying for the upcoming exam. We highly encourage students to join this party if they’re having a hard time with homework 3.

    To register your group, please submit this form. Everyone in your group must submit the form. If you do not have a full group of 4 students, you may indicate that in the form and you’ll get paired with other students that are at a similar place in the homework. Even if you don’t know anyone in the course, you can be assigned a group. You’ll have until Thursday night to submit your groups/indication of interest in attending the homework party. We will highly prioritize groups, so if you plan on attending please submit your form before Thursday night so you can work in a group with other students.

    Project 2B:

    The second part of Project 2 is due this Friday, 10/23. Our hope is that you will be able to create randomized tests a lot easier for this project after the skills you gained from project 2A, so definitely check on your 2A test code to help you with 2B. Office Hours on Thursday and Friday last week were especially packed, so keep that in mind when deciding when you are ready to get help with this project.

    Lab: Project 2 Workday

    This week there is no lab. We will be hosting labs in the Office Hours Discord: so your TA will not be in the lab discord. This is a great opportunity to get conceptual help on the project. Remember that TAs will not be spending any more than 10 minutes with any student, and after that they will recommend you submit a Gitbug.


    This week the discussion is on Tries, Tree traversals, and KD trees. It’s almost entirely conceptual, so there will be no Ed lessons for it.

    Study Groups

    With the midterm coming up, we thought it would be nice to remind you of the Study group formation post that we have here! We encourage people to pair up to study together!

    Survey Form

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week’s number.

    Small Tutor Sessions

    Please indicate on the form above if you are interested in small tutor sections for this week! As always, we cannot guarantee you a spot, but will do our best to accommodate you.

    Summary of important dates

    • Weekly Survey: due tonight 11:59 PM

    • Topical Review (Search Trees, LLRBs, and Hashing): tomorrow, Monday 6-8 PM

    • HW 3 Party group registration form: due Thursday 11:59 PM

    • Project 2B: due Friday 11:59 PM

    • Homework 3 Party: Saturday 2-5 PM

    • Homework 3: due Monday 10/26 11:59 PM

  • Week 8

    #Ed megathreads

    In case you didn’t see last week, Ed has added megathreads just for us! We’ll pin all relevant megathreads for your convenience. Please ask your questions for assignments in these threads so it’s easier for staff to monitor and answer things, and also so your fellow students can benefit from your insightful questions and answers. This will be especially important for the projects; so please only make a private post if you believe your question is so personal and unique that no other student would have that question. Also, make sure you check the megathread before you ask a question: there have been a number of great questions and conversations already happening in the megathreads we have! The Ed guide has been modified to explain CS 61B’s use of megathreads; specifically, the section on megathreads is the one to give a quick read.

    #Policy update: exam clobbering

    In light of the technical issues that students had on midterm 1, we’ve decided that we will allow students to clobber both midterms with their final equivalent. The course info page has been updated to reflect this change and has a more detailed description of what this exactly means. We hope that this will relieve stress for those students who encountered technical difficulties during the midterm.

    #Extra Credit: Mid Semester Survey

    Please fill out the mid semester survey for 16 points of extra credit! Due Friday 10/16 11:59 PM.

    #Weekly Survey 7

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    #Project 2AB

    The first 2 parts of project 2 were released on Friday. The first part, proj2a, is building a KDTree and is due this Friday 10/16. There is a ton of support and many resources available for this project including a pseudocode walkthrough, so please read the spec carefully and in its entirety. Many questions are answered in the spec itself. The second part of the project is building an extrinsic priority queue via the heap data structure and is due the following Friday 10/23.

    We’ve split up the megathreads for this project into different categories for your convenience. Please make sure you’re posting and looking for questions in the right megathread. Read this post for a description of each megathread.

    #Homework 3

    The third homework for CS 61B was released last week and is due Monday 10/26. This is a conceptual homework and there is no coding on it at all. This is a great review for the midterm as it has lots of tricky asymptotic questions, LLRB questions, and other traditionally challenging concepts so you can all get great practice in preparation for the exam. If you’re stuck, please use the homework 3 megathread to first see if anyone else had that question, and then feel free to ask! Office Hours are also a great place to get help.

    #Lab changes: free points!

    We removed lab 10, so there are now 11 graded labs. This means that everyone gets those 32 points for free!

    #Discussion 8

    This week’s discussion is on the conceptual side, so we will not be creating an Ed lesson for it. You’ll get more practice with hashing, LLRBs, and heaps.

    #Lab 8

    Lab this week is implementing a HashMap. The format is similar to last week where the lab TA went over the solution in the final 30 minutes, so stick around for the end of the lab if you had any confusions or want to see how your lab TA approaches a coding problem. As always, the lab is due at the end of the week, so Friday 10/16.

    #Summary of due dates

    • Week 7 survey: Tonight  11:59 PM

    • Lab 8: Friday 10/16 11:59 PM

    • Project 2A: Friday 10/16 11:59 PM

    • Extra credit mid semester survey: Friday 10/16 11:59 PM

    • Project 2B: Friday 10/23 11:59 PM

    • Homework 3: Monday 10/26 11:59 PM

  • Week 7

    #Midterm 1 Regrades

    Regrades for midterm 1 opened up last Friday and close Friday 10/09 at 11:59 PM PST. We will not be accepting regrades after that. Remember to read the midterm 1 common mistakes doc before submitting a regrade request: often times your question is answered there. If you have an error that you do not see addressed on the common mistakes doc, then you may request a regrade with any and all justification that you are correct (i.e. attach a link to code with a test case that proves your code works). Also, please read the bottom of the midterm 1 grades released post that tells you how to deal with autosave issues.

    #Week 6 survey

    The weekly survey is linked here and due tonight at 11:59 PM! Note that these surveys are also linked on the course website under each week number.

    #Homework 2

    Homework 2 is due tomorrow night (10/5)! You’ll have Office Hours as usual for your conceptual questions as well as Gitbugs for debugging help.

    #Small Tutor Sections

    We’re setting up small sections taught by our course tutors! These are student-driven so you will get the chance to ask as many questions as you want and ask the tutors to go over concepts. We highly recommend signing up for these if you are feeling overwhelmed! You can sign up for these through the weekly survey linked above, and you’ll receive an email with the sign up link by 9PM tonight—please only sign up for slots you are free for!

    #Discussion 7

    This week’s discussion will be on Binary Search trees and asymptotic runtime. The coding questions is on Ed lessons where you can check the correctness of your own solutions.

    #Lab 7

    We’ll be continuing our data structures arc of the course in lab: you’ll be implementing a Map61B interface using Binary Search Trees! Just like always, your lab TA will be doing a coding demo of the solution. We highly recommend you attend this live demo if you were stuck on a certain part; this way, you can watch how the TA solves + implements it and combine that with what you already have. It’s also a great opportunity to learn coding techniques and how to make your code more “beautiful”. Look forward to seeing you all there :)

    #Proj 2AB

    This week we’ll be releasing the first 2 parts to Project 2 which require you to implement data structures based on the ones you have seen and will see in lecture. Part A is implementing a KDTree and it is due Friday 10/16 and part B is implementing a HeapPQ and is due Friday 10/23. Keep an eye out for an announcement on that coming later this week.

    #Homework 3

    The third and final homework assignment of the semester will be released this week as well. It is not a coding assignment and instead a conceptual review that will be very helpful for midterm 2. You’ll have until Monday 10/26 to complete it.

    #Summary of important dates

    • Week 6 Survey due: Tonight (Sunday) 11:59 PM

    • Homework 2: Monday (10/05)

    • Lab 7 due: Friday (10/09) 11:59 PM

    • Proj2A (released later this week) due: Friday (10/16) 11:59 PM

    • Proj2B (released later this week) due: Friday (10/23) 11:59 PM

    Homework 3 (released later this week) due: Monday (10/26) 11:59 PM

  • Week 6

    Midterm 1

    Everyone has completed the midterm! Our staff is hard at work grading the exam as quickly and consistently as we can, so thank you for being patient with us.

    We are also processing all the comments you made on the Post Midterm form and will reach out to you if any follow up is needed. If you experienced some extenuating circumstances while taking the exam, remember that you can replace 1 midterm score with your final score using our supersession policy (this gets applied automatically).

    Section cancellations

    We are cancelling some of our discussions and lab sections moving forward. All original time slots still have at least one section you can attend, and remember that section attendance is not required (but encouraged), so you can attend any section you want. The TAs whose section got cancelled will offer more support now in OH to help you with some of the larger projects coming this semester. All changes are reflected in the sections schedule on our course website and in the pinned sections post on Ed.

    Queueing up for help in Lab

    We are no longer using the Office Hours queue for Lab, so you will not see lab locations on the online queue (oh.datastructur.es). Instead, we will use Discord text channels to emulate in-person lab queues. This is to make getting help in lab a lot simpler and require less applications open at once.

    Your TA will show you at the beginning of lab this week how that will work, but it’s quite simple:

    1. Send a message in the channel named “lab-queue” that includes your room number. You don’t need to write a description.

    2. TAs and AIs will then process the queue in order and mark messages with a green check mark when they’re done so you can know where you stand in the queue.

    We will still use the online queue (oh.datastructur.es) in Office Hours.

    Week 5 survey

    The weekly survey is linked here and due Monday at 11:59 PM! Note that these surveys are also linked on the course website under each week number.


    We are kicking off the Data Structures part of the course with the lab this week: implementing a Disjoint Sets data structure. Your lab TA will be doing a live coding demo at the end of the lab, going over parts of the solution to the lab assignment. This demo is meant to show you how TAs approach coding problems and designing a data structure from scratch.


    Discussion this week is on Disjoint sets and Asymptotics. We highly recommend attending a discussion section this week! Because the worksheet does not involve much coding, we will not be putting this discussion on Ed Lessons.

    Homework 1

    Our first homework assignment is due tomorrow (Monday) 9/28. We’ll have our normal Office Hours on Monday, so hop in for any last minute questions. You can use Ed and Gitbugs as other resources to get help.

    Homework 2

    Homework 2 will be released on Tuesday and is due next Monday October 5. As always, you can use Office Hours for conceptual questions and help getting started while you have Gitbugs for debugging help.

    Summary of important dates

    • Week 5 Survey due: Tomorrow (Monday) 11:59 PM

    • Homework 1 due: Tomorrow (Monday) (9/28) 11:59 PM

    • Lab 6 due: Friday (9/25) 11:59 PM

    • Homework 2 due: next Monday (10/5) 11:59 PM

  • Week 5

    Midterm 1

    The first midterm is this Wednesday 9/23. Please read the logistics post in its entirety and complete the practice assignment by Monday 9/21 11:59 PM. We have Ed categories for each past exam, so if you have any questions on a past exam make sure you use the relevant category.

    Midterm 1 Clarifications

    1. You must fill out the pre-midterm form in order to take the exam. We originally set the deadline for Friday, 09/18, 23:59, but will extend it until tomorrow, Monday, 09/21, at noon to allow more people to submit. There is no penalty for submitting the form late. However, if you need an alternate exam time or have some technical difficulties we will not be able to accommodate you if you submit the form late. If you don’t submit the form at all before the exam, we may not be able to grade your exam.

    2. We have decided to provide a reference sheet for the midterm. The reference sheet will be linked in the exam itself and will resemble that of Spring 2019, which is now linked in the practice assessment

    3. Many students expressed concern about not having a quiet place to work. In regards to this, we completely understand that you may not be in control of your home situation, so don’t worry about background noises!

    4. Reiterating the information on the logistics post - in the case of any technical difficulty during the exam, you should reach out to us on the Exams Ed and attempt to keep working on the exam. Some points to address:

    5. If your computer is slow, please take the exam as normal, and reach out to us on the Exams Ed if you are facing any difficulty. 

    6. If your computer restarts/crashes during the exam, you should create a new recording, reopen the exam, and mention this when you submit the post-midterm form. 

    7. If you face any technical problem and cannot post on the exams Ed, please call us with the phone number given on the logistics post.

    8. You may write your handwritten notes on a tablet, but they must be printed out. Any diagrams or charts must also be handwritten.

    Midterm 1 Alternates

    If you indicated on the pre-midterm form that you needed to take the exam at an alternate time, you should receive an email by midnight tonight with more information.

    Midterm 1 DSP Accommodations

    If you require DSP accommodations for Midterm 1, you should have received an email confirming your accommodations. If you didn’t receive an email and require accommodations, let us know as soon as possible by emailing cs61b@berkeley.edu. If you have your DSP specialist’s email on hand and/or a copy of your LOA, please include it in the email so we can confirm your accommodations, as we probably haven’t received your official LOA yet through the DSP portal. We want to ensure that you get the accommodations you need.

    Exams Ed

    As noted on the logistics post, you’ll be invited to a Midterm 1 specific Ed on Tuesday if you aren’t taking an alternate exam, and sometime afterwards if you are taking an alternate exam. Check your emails the night before the midterm and make sure you’ve accepted your invite. We’ll have a short Exam Ed policies post on there that you must read.

    Week 4 survey

    The weekly survey is linked here and due tonight at 11:59 PM!

    Wednesday Lecture

    Josh will be giving a live lecture on Wednesday, which will be followed by a Q&A session.

    Lab 5

    All lab sections on Wednesday 9/23 (the day of the midterm) are cancelled. Instead, the TAs teaching Wednesday labs will be in the Office Hours discord to answer any questions about past midterms and provide help with conceptual questions. We highly recommend you do a practice exam before coming and then get all your questions answered there. Lab 5 will be released on Thursday. In this lab, you’ll learn about randomized and timing tests, which will help you with Project 2.

    Discussion 5

    This week’s discussion is on Iterators and Iterables. As usual, it’s also available on Ed lessons where you can actually write and run Java code.

    Homework 1

    Our first homework assignment will be released after the Midterm and is due next Monday 9/28. Even though we won’t have any Office Hours over the weekend, we’ll still be on Ed so you should submit Gitbugs if you’re stuck on a bug.

    Summary of important dates

    • Week 4 Survey due: Tonight (Sunday) 11:59 PM

    • Midterm 1: Wednesday (9/23)

    • Lab 5 due: Friday (9/25) 11:59 PM

    Homework 1 (released after the midterm) due: Monday (9/28) 11:59 PM

  • Week 4

    Project 1A

    Project 1A is due tomorrow, 9/14 at 11:59 PM! Please use Gitbugs and Office Hours if you need help! Note that the wait in Office Hours and for Gitbug replies may be longer than usual on deadline days, but we will do our best to get back to you as soon as possible. Also, be sure to read the debugging guide which will help you solve your own bugs!

    Project 1B

    Project 1b will be released tomorrow and be due Friday, 9/18. Don’t be worried about the short deadline: it’s a lot shorter than Project 1A and will involve using your Deque to solve real-world problems, as well as writing some high coverage tests for your Project 1A. Stay tuned for our announcement when we release Project 1B.


    You have 15 slip days for the semester, and you can only use 3 slip days per assignment. You can also submit any 2 assignments late during RRR week with no penalty. In previous semesters, we granted students 3 slip days for the entire semester, so we hope this more generous policy will help alleviate some stress around deadlines. You can read more about slip days and extensions here and here.

    Using Ed

    We want to remind you, that unlike Piazza, in Ed we don’t immediately see “unresolved” follow ups or comments on an existing thread. If you have a question that is not a part of an ongoing conversation with a TA, please make a new “question” thread. If you are still not sure how to use Ed effectively, please review our Ed Guide and Ed Policies.

    Office Hours Queue

    We know that office hours can be overly crowded near deadlines and when mandatory check offs are happening. Please be patient with us as we are continuously trying to figure out how to optimize this experience for you. To help us run office hours more smoothly:

    • Be sure to set your ticket to the correct Discord location: “Office Hours” or “[TA Name]’s Lab”, and say in your description what room you are in.

    • If you cannot join Discord for some reason, indicate this in your ticket, and include a Zoom link (or equivalent), so we can help you resolve your Discord connection issues.

    • Read our office hours policies here.

    Ed Lessons

    We wanted to let you know about this wonderful new resource that you’ll have at your disposal! Our discussions will be available in the normal PDF form on the website as well as on Ed Lessons (the book icon on the top left of our Ed forum). Ed Lessons includes an interactive version of our worksheets, where you can verify the correctness of your solutions easily. You don’t need to use this resource, it’s not used for pacing points or anything like that, just for your convenience if you are looking for a more interactive self-paced experience. Some TAs may teach their section using this resource, but either way you’re welcome to use it as you follow along.

    Lab 4

    Lab 4 this week has a mandatory check-off. All labs will start and be hosted primarily on Zoom this week. There is no coding assignment in Lab 4. Instead, your lab TA will go over the staff solution for Project 1A, and you will get a chance to reflect on your solution with other students. Along the way, you will document your reflection in a text file, and the checkoff will just consist of a TA verifying that you have actually discussed something with other students. It should be a lot shorter than the Lab 2 checkoff. We should be able to check you off at the lab section you attend, but if that would not be possible, you can get checked off in any lab (on Wednesday, Thursday, and Friday) or office hours (on Thursday and Friday).

    IMPORTANT: Since we will give the staff solution to Project 1A in Lab 4, you should not attend a lab this week until you have made your final Project 1A submission (if you are using slip days). After we process Zoom attendance logs we will reject any Project 1A submissions you have made after attending a lab.

    Weekly Survey

    This week’s weekly survey is up and linked right here! It is due tonight at 11:59 PM. We also have it linked on the course website on the left side of each row for your convenience. You can miss up to 4 of them and still get full credit.

    Deadline Summary

    • Week 3 Survey: Tonight (Sunday) at 11:59 PM

    • Project 1A: Tomorrow (Monday) at 11:59 PM

    • Project 1B: Friday (9/18) at 11:59 PM

    • Lab 4: Friday (9/18) at 11:59 PM

  • Week 3

    Weekly Survey

    This week’s weekly survey is up and linked right here! We also have it linked on the course website on the left side of each row for your convenience. This week’s survey is due Monday at noon. Moving forward surveys will be released on Friday afternoon and will be due Sunday nights at 11:59pm. We will not blast an announcement when we release surveys, so please remember to fill them out! You can miss up to 4 of them and still get full credit.

    Monday is Labor day

    Monday is a University Holiday, so there will be no lecture, no discussion, and no Office Hours. We’ll still be on Ed, so if you have questions feel free to post!


    Proj1a has been released! The spec is on the course website and also linked right here. It’ll be due next Monday 9/14. The autograder is slightly different on this project, so please read through the announcement here to learn more about velocity limiting and style checking.


    We’ve started posting recordings of the Live QAs with Josh in our lecture guides right under the check-in exercise for that lecture. You can check those videos out if you want to see the questions that other students have about the material.

    Exam Prep Discussion Sections

    The following TAs have had their sections converted to Exam Prep: Sohum, Shivani, Arjun, and Chirasree. The Ed index post with TAs’ links has been updated to reflect these changes and we’ve also updated the course calendar on the website for your convenience. As a reminder, Exam Prep discussion sections have their own worksheet with either past exam problems or new problems that are on the same level as exams, so they’ll be a good challenge for those who are looking for one. Remember that you can go to any discussion section you want, so if your section was converted to an exam prep you can still go to any regular discussion and vice-versa.


    Recall that lab 2 is due this Friday 9/11. Since the set up labs (1 and 2) are more involved, we gave you 2 weeks to complete them. From here on out, labs are due the Friday of the week they are released, so lab 3 will also be due this Friday 9/11. If you didn’t get checked off last week you can still get checked off this week in OH and lab. We highly recommend that you get checked off earlier in the week if possible.


    Gitbugs are how you can get offline debugging help in CS 61B. Up until now, you might have posted a private post on Ed with screenshots of your code. This was fine for project 0 since there wasn’t a whole lot of code, but for future assignments this simply does not scale given our class size. You should read the Gitbug policies which will walk you through how to make a Gitbug, what things to include in your Gitbug, among other things. Please read the guide in its entirety before submitting a Gitbug. If you don’t, you risk violating the policies and we won’t solve your bugs.

    Office Hours

    Starting this week we’ll not be giving debugging help in Office Hours. So if you have a question that is not conceptual, and pertains to your code specifically, we will ask you to submit a Gitbug if we cannot solve it in 10 minutes or under. If you don’t know how to use the debugger, let us know in Office Hours and we will help you!

    Lab Partner Matching Update

    Everyone who filled out the original form, requesting course staff to connect them with a lab partner, should have received an email with their matched lab partner. If there was a problem with the match (e.g. the student dropped the class) and you still want course staff to connect you with a lab partner, fill out this form. While we can’t guarantee that we will be able to connect you with someone new, we will try our best over the next couple weeks.


    If your snaps-fa20-s*** repo invitation expired, please fill out this form and we will make sure to re-invite you. If you want to learn more about the snaps plugin, see this message from Professor Hug.

    Master Policies Thread

    We ported all the pinned policies threads (office hours, extensions, Ed, and more) into once master thread here. We will also make sure that all these policies are available on our website.

    Deadline Summary

    All at 11:59 PM

    • Week 2 Survey: Tomorrow (Monday, 09/07) at 11:59 AM

    • Lab 2: Due 9/11

    • Lab 3: Due 9/11

    • Proj1a: Due 9/14

    • (Pacing points) Check-in for Lecture 7 and 8: 9/9, and 9/11

  • Week 2

    This post is long but everything here is very important! Please make sure you’ve read this post in its entirety so you don’t miss anything pressing.


    Reminder that lectures will not be live and instead Josh will be having live QA sessions at the normally scheduled lecture time (MWF 1-2 PM). The Zoom link is on the top of the website for your convenience.

    Check-In Exercises

    This week we’re starting lecture check-in exercises! These short quizzes will be linked in the lecture guides, right under each lecture on our course website. For each lecture, if you submit the check-in exercise by 11:59 PM the day after the official lecture (e.g. 9/1 for lecture 3), you can earn 2 pacing points. These check-ins will also be available for practice after this period. You can find more information about lecture check-ins and pacing points in our course policies page. Points are awarded regardless of correctness.

    Weekly Survey

    The Week 1 Weekly Survey is due tonight! If you have not filled it out yet you can find it here: https://forms.gle/7Ho7nfx6s65s5Hov5. Each Weekly Survey is worth 16 points, and you can skip 4 out of 14 throughout the course of the semester.

    Section Attendance and Lab 2 Details

    We want to remind you that discussion and lab section attendance is completely optional. Additionally, like mentioned before, the section sign ups are mostly for load balancing purposes. During the semester you can attend any section you want, and you can also attend multiple sections.

    It is unlikely that a TA will ask you to leave a section because you did not sign up to it, so there is no need to email TAs asking to join their sections. The only exception to this rule will be Lab 2, which involves a mandatory check off for all students. If a section becomes too populated, a TA will check off the students signed up for their lab first.

    However, Lab 2 will be due only next Friday, 9/11 (together with Lab 3), and you can also get checked off in Office Hours this and next week.

    Lab Partnerships

    On the Week 1 Weekly Survey, we asked you for your opinion on lab partnership. We want to make things as simple as possible for you, so we are going to make lab partnerships optional. Here is how it’s going to work:

    • If you want a lab partner, starting from Lab 3, you and your partner will be able to submit the exact same code for lab assignments.

      • If you and your partner want to attend a live lab, choose any lab that works for both of you, and join one of the “partner rooms”, where you can work together.

      • If you already have a partner, use the Lab Partnership Guide to learn more about how partnerships work, and how to get the shared repo, which you will use to collaborate and submit lab assignments.

      • If you don’t have a partner, and need help finding one, please indicate this on the Week 1 Weekly Survey, and we will follow up with a form shortly. After you fill it out, we will match you with another student. Don’t worry about working with a partner on Lab 2. It mostly involves more computer setup. You can also ask your lab TA to match with someone just for that lab.

    • If you do not want a lab partner, you can still collaborate and share ideas with other students, but must write your own code.

    • If you want to attend a live lab, choose whatever lab works for both of you, and join one of the “general rooms”. Maybe you’ll find a partner and change your mind!

    IMPORTANT: Regardless if you choose to form a lab partnership or not, all students will have to work with a partner on Project 3.

    Course Website

    The due dates for all assignments are now all up to date. The course website now has a finalized schedule of discussion/lab sections. We have two calendars at the bottom of the site: one for discussion/lab and one for office hours. These calendars have the time and names of the sections as well as Zoom and Discord links.

    Itai’s Sections Change

    Lab 204 (Wednesday, 2-4pm) is cancelled :( If you signed up for this lab feel free to attend any other lab, and feel free to reach out to Itai if you need help finding a new section. We will let you know when Itai’s lab comes back to life! Discussion 127 will take place this week on Monday (tomorrow) 2-3pm, and also on Wednesday, 10-11am here: Zoom link. Starting week 3, it will only take place on Mondays.

    Discussion Sections

    We will be hosting our first discussion sections this week! All discussion sections and corresponding Zoom links are available on the course website, if you scroll to the sections schedule at the bottom. You can also reference the index post on Ed for all the information on each section. As a reminder from our welcome post, by attending a live discussion section you are committing to attending, participating, and having your video on. If you’re uncomfortable with having your video on, we will be releasing walkthrough videos on Wednesday along with the solution on our course website.

    Exam Prep Discussion Sections

    A reminder that Exam Prep sections begin next week (week 3). Exam Prep worksheets emphasize more challenging problems and assume a good understanding of the material. In the Week 2 Weekly Survey, we will ask if you’d like to attend an Exam Prep section. We will then convert sections based on your demand.

    We will only convert sections at times at which there are multiple discussion sections, so you don’t have to change your schedule if a section you attended is converted to Exam Prep.

    Office Hours

    Office Hours (OH) are starting this week! We’ll have a dedicated OH Discord linked here. You can also check the OH schedule at the bottom of the course website. Please read our Office Hours Policies post linked right here. It’s important that you read and understand it in its entirety so you can get the most out of Office Hours.

    DSP Accommodations

    If you require DSP Accommodations of any kind (including exam accommodations) please fill out this form to let us know what they are. We will use your responses to track your accommodations and verify them with your LOAs in the DSP Portal. It is your responsibility to keep this updated throughout the semester if your situation changes and we require sufficient notice for any changes made to accommodations needed.

    Study Groups!

    To help you all form study groups we’ve started a more formal thread here. Post in that Ed thread to find study buddies to master the material!

    Whew, thanks for reading through all that! If you have any questions on these things comment down below.

    Deadline Summary

    All due at 11:59 PM:

    Week 1 survey due tonight!

    Lab 1: Due 9/4

    Proj 0: Due 9/4

    Lab 2: Due 9/11

    (Pacing points) Check in for Lecture 3, 4, and 5: 9/1, 9/3, and 9/5

  • Week 1

    Lecture 1

    Josh will give a live Lecture 1, this Wednesday, 1-2 PM. The Zoom link will be posted on the course website tomorrow!

    Course Website

    The course website is still a work in progress. We will update you when all the due dates and policies are set.

    Lab Section Preferences

    Labs are one of the most important components in CS 61B, and we want to make sure that we take into account your preferences as we finalize our section times. Please fill out the lab preferences form by tomorrow night (Monday, 08/24, 8:00 PM), to let us know what times work best for you.

    Section Assignments

    Remember that if you sign up for a live discussion or lab section, you are committing to attending, participating, and having your video turned on. You can attend a section that you are not signed up for if the TA running the section agrees, but you will get priority in sections that you are signed up for. That is, if a section you did not sign up for becomes too full, you may be asked to leave.

    Lab 1 is Released!

    You can find it linked from the course website. The lab is due this Friday, 08/28, 11:59 PM on Gradescope. This lab goes through important set up steps that will ensure your computer is ready for CS 61B. There is a lot of reading to do in this lab, but it’s important that you follow the instructions exactly as they appear on the lab spec. We will start hosting TA-led lab sections this Wednesday! Please come in to get to know the TAs and get any questions you have answered.

    Discussion 1

    Since most of our discussion sections will run on Mondays and Tuesdays, we will not hold discussion sections during week 1. Instead, we will only post the recorded walkthrough video for discussion 1 on our course website on Wednesday morning (as opposed to Wednesday after the last live section is taught). The worksheet will be available on our course website tomorrow morning! Live discussion sections with the TAs will begin next week!

    Ed Guidelines

    Please refer to our Ed Guide and Ed Guidelines. Posts that do not adhere to these guidelines may be removed. Additional points:

    Make sure to input an answer to a post under the “Your Answer” and not “comment”. Even if you are not sure if an answer is fully correct, that’s fine! The author may choose to not give it a green check mark, but it may still provide valuable information for others reading the post.

    You should only make a private post if your question contains personal details or your own original code. Otherwise, you can post anonymously if you don’t want your name to be seen. This will ensure that you get an answer faster!

    Pre-Semester Survey

    The Pre-Semester Survey is out and is due this Friday, 08/28, 11:59 PM. You can earn 16 extra credit points if you complete it by the deadline!

    We hope you are all safe and well and looking forward to seeing you in lecture and lab this week!

  • Soft Launch

    The main part of the website is now posted. Calendar subject to change. Exam dates and times TBA. We are hoping to release some assignments during the summer for folks who want to start early!

    Course policies and other administrative stuff coming later.

Week Date Reading Lecture Discussion Lab Assignments/Exams
Wed 08/26


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


2. Defining and Using Classes
[video] ‌[slides] ‌[guide] ‌
Mon 08/31


3. References, Recursion, and Lists
[video] ‌[slides] ‌[guide] ‌
Scope, Pass-by-Value, Static
[slides] ‌[video] ‌[solution]
IntelliJ Home Setup
IDEs (due 9/11)
Project 0: NBody (due 9/4)
Wed 09/02


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

2.3, 2.4

5. DLLists, Arrays
[video] ‌[slides] ‌[guide] ‌
Mon 09/07: Academic Holiday Linked Lists, Arrays
[slides] ‌[video] ‌[solution]
Linked Lists, Arrays Exam Prep
[slides] ‌[video] ‌[solution]
Testing, Debugging (due 9/11) Project 1A: Data Structures (due 9/14)
Wed 09/09


6. ALists, Resizing, vs. SLists
[video] ‌[slides] ‌[guide] ‌
Fri 09/11

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

7. Testing
[video] ‌[slides] ‌[guide] ‌
Mon 09/14


8. Inheritance, Implements
[video] ‌[slides] ‌[guide] ‌
[slides] ‌[video] ‌[solution]
Inheritance Exam Prep
[slides] ‌[video] ‌[solution]
Peer Code Review (due 9/18)
Wed 09/16


9. Extends, Casting, Higher Order Functions
[video] ‌[slides] ‌[guide] ‌
Project 1B: Testing and HoFs (due 9/18)
Project 1 Gold: Autograding (due 9/18)
Fri 09/18


10. Subtype Polymorphism vs. HoFs
[video] ‌[slides] ‌[guide] ‌
Mon 09/21

6.1, 6.2, 6.3, 6.4

11. Exceptions, Iterators, Object Methods
[video] ‌[slides] ‌[guide] ‌
Iterators, Iterables
[slides] ‌[video] ‌[solution]
Exceptions, Iterators, Iterables Exam Prep
[slides] ‌[video] ‌[solution]
Randomized and Timing Testing (due 9/25) Midterm 1 Practice Assessment
Wed 09/23


12. Coding in the Real World, Review
[slides] ‌[live QA] ‌
Midterm 1 (9/23)
Fri 09/25

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

13. Asymptotics I
[video] ‌[slides] ‌[guide] ‌
HW 1: Java Syntax and Sound Synthesis (due 9/28)
Mon 09/28

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

14. Disjoint Sets
[video] ‌[slides] ‌[guide] ‌
Disjoint Sets and Asymptotics
[slides] ‌[video] ‌[solution]
Disjoint Sets and Asymptotics Exam Prep
[slides] ‌[video] ‌[solution]
Disjoint Sets (due 10/02)
Wed 09/30

8.3, 8.4 (extra), Algs 170-198

15. Asymptotics II
[video] ‌[slides] ‌[guide] ‌
HW2: Percolation (due 10/5)
Fri 10/02

10.1, 10.2, Algs 396-406

16. ADTs, Sets, Maps, BSTs
[video] ‌[slides] ‌[guide] ‌
Mon 10/05

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] ‌[video] ‌[solution]
More Asymptotics, Search Trees Exam Prep
[slides] ‌[video] ‌[solution]
TreeMap (due 10/09)
Wed 10/07

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

18. Red Black Trees
[video] ‌[slides] ‌[guide] ‌
Fri 10/09

16.1, 16.2, 16.3

19. Range Searching and Multi-Dimensional Data
[video] ‌[slides] ‌[guide] ‌
Proj2AB: KD-Tree/HeapPQ
KDTree (due 10/16)
HeapPQ (due 10/23)

HW3: Conceptual Review (due 10/26)
Mon 10/12

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

20. Hashing
[video] ‌[slides] ‌[guide] ‌
LLRBs, Hashing
[slides] ‌[video] ‌[solution]
LLRBs, Hashing Exam Prep
[slides] ‌[video] ‌[solution]
HashMap (due 10/16)
Wed 10/14

13.1, 13.2, 13.3, Algs 308-320

21. Heaps and PQs
[video] ‌[slides] ‌[guide] ‌
Fri 10/16

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

22. Prefix Operations and Tries
[video] ‌[slides] ‌[guide] ‌
Mon 10/19

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

23. Tree and Graph Traversals
[video] ‌[slides] ‌[guide] ‌
Traversals, Tries, Heaps
[slides] ‌[video] ‌[solution]
Heaps and Tries Exam Prep
[slides] ‌[video] ‌[solution]
Project 2 Workday
Wed 10/21

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

24. Graph Traversals and Implementations
[video] ‌[slides] ‌[guide] ‌
Fri 10/23

19.1, 19.2, 19.3, Algs 638-657

25. Shortest Paths
[video] ‌[slides] ‌[guide] ‌
Mon 10/26

20.1, 20.2, Algs 604-630

26. Minimum Spanning Trees
[video] ‌[slides] ‌[guide] ‌
DFS, BFS, Shortest Paths
[slides] ‌[video] ‌[solution]
DFS, BFS, Shortest Paths Exam Prep
[slides] ‌[video] ‌[solution]
No Lab
Wed 10/28


27. Software Engineering I
[video] ‌[slides] ‌[guide] ‌
Midterm 2 (10/28)
Fri 10/30

21.1, 21.2, 21.3, 21.4

28. Reductions and Decomposition
[video] ‌[slides] ‌[check in] ‌
Proj2C: Puzzle Solver (due 11/9)
Mon 11/02 29. Basic Sorts
[video (old)] ‌[slides] ‌[guide] ‌
[slides] ‌[video] ‌[solution]
Graphs Exam Prep
[slides] ‌[video] ‌[solution]
Project 2 Workday
Wed 11/04

Algs 288-296, 302

30. Quick Sort
[video] ‌[slides] ‌[guide] ‌
Proj 2D: Bear Maps (due 11/9)
Fri 11/06


31. Software Engineering II
[video] ‌[slides] ‌[guide] ‌
Mon 11/09

Algs 341-347

32. More Quick Sort, Sorting Summary
[video (old)] ‌[slides] ‌[guide] ‌
Sorting, ADTs
[slides] ‌[video] ‌[solution]
Sorting Exam Prep
[slides] ‌[video] ‌[solution]
Getting Started on Project 3 (due 11/13)
Wed 11/11: Academic Holiday Proj 3A: BYOW Phase 1 (due 11/20)
Fri 11/13


33. Software Engineering III
[video (old)] ‌[slides] ‌[guide] ‌
Mon 11/16

Algs 279-28

34. Sorting and Algorithmic Bounds
[video] ‌[slides] ‌[guide] ‌
More Sorting
[slides] ‌[video] ‌[solution]
More Sorting Exam Prep
[slides] ‌[video] ‌[solution]
Interactivity in Project 3 (due 11/20)
Wed 11/18

Algs 702-718

35. Radix Sorts
[video] ‌[slides] ‌[guide] ‌
Fri 11/20


36. Sorting and Data Structures Conclusion
[video] ‌[slides] ‌[guide] ‌
Mon 11/23


37. None (Break)
[video] ‌[slides] ‌[guide] ‌
No Discussion No Lab Proj 3B: BYOW Phase 2 (due 12/01)
Wed 11/25: Academic Holiday
Fri 11/27: Academic Holiday
Mon 11/30


38. Compression
[video] ‌[slides] ‌[guide] ‌
Goodbye, Fun BYOW Demos (due 12/04)
Wed 12/02


39. Compression, Complexity, and P=NP?
[video] ‌[slides] ‌[check in] ‌
Fri 12/04


40. Summary, Fun
[slides] ‌
RRR Week (December 7-11)
Finals Week (December 14-18), Final exam: TBD
Lab/Discussion Schedule

Each discussion section is now a regular or an exam-prep 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.

Office Hour Schedule
Note: Office hours are on Monday, Wednesday and Friday. On Wednesday, Thursday, and Friday, feel free to come to lab with your questions.

Last built: 2020-12-17 03:49 UTC