CS 61B Data Structures, Spring 2021
Instructor: Josh Hug
Live Q&A:
1-2 MW: Zoom Link
2-3 F: Zoom Link
Announcements [View All]
  • Week 17 Announcements

    Final Exam

    Hi everyone! The Final Exam is scheduled for Tuesday, 5/11, 8:10 - 11 AM PT. Get hyped! Please read all information on this post and the linked documents very carefully!

    Please note that if you are taking the class P/NP (you can check this on CalCentral), and have enough points to pass the class without taking the final exam (you can check this with the Beacon grade calculator), then you do not need to take the final exam. A passing grade for undergraduate students is a C- which amounts to 6,000 points in CS 61B.

    We’ll post a more detailed announcement regarding proctoring tomorrow morning.

    Course Evaluations (32 Extra Credit Points)

    Course evals are at 75.84% and are due tonight: remember that if we reach 80% then all students will be given 32 extra credit points! Fill yours out at https://course-evaluations.berkeley.edu before tonight!

    Final Survey (32 Extra Credit Points)

    The final survey has been released and can be completed for 32 extra credit points! It’s due this coming Friday, and unlike course evaluations, there is no participation requirement: you’ll get these points whether or not other students fill it out.

    Project 3 Regrades

    We’ve updated Beacon scores for those who submitted regrades. What you see on Beacon is now the final score for your Project 3 Checkoff. We will not be doing any more regrades: if you still disagree with your score, there is a place on the final survey where you can list anything we need to know to assign you a grade in the class.

    Summary of important dates

    • Course Evaluations: due tonight!

    • Final exam: happening Tuesday 5/11 8:10-11 AM PT

    • Final survey: due Friday 5/14 11:59 PM PT

  • Week 12 Announcements

    Project 3: BYOW

    Project 3: BYOW has been released! Get hyped! In project 3, you will create an engine for generating explorable random worlds. Remember that you cannot use slip days on Phase 2 of Project 3, so plan your time accordingly and start the project early. In addition, you can now see your Project 3 Partner on Beacon under the Partnerships tab.

    Though there are gradescope autograders for Project 3, most of the points will be earned through an asynchronous checkoff where a staff member will clone a copy of your code, and ensure that your project meets the requirements detailed on the spec. Please refer to the spec and partnerships guide for more details about partnerships, checkoffs, and the assignment itself.

    Lab 12 & 13

    Along with Project 3, Labs 12 and 13 are now released. These labs are instrumental in becoming familiar with the Project 3 codebase and libraries, and doing them will save you tons of time and headaches while completing the project.

    Lab 12 is due this Friday, 4/9. Complete the lab before starting on Phase 1 of the project, it will teach you how to draw objects using the tile rendering engine that you will use in Project 3. There will be no live coding demos in lab sections this week! Instead, we will release a video live coding demo on Friday evening to ensure that everyone has a solid grasp on this lab assignment.

    Lab 13 is due next Friday, 4/16. Complete the lab before starting on Phase 2 of the project, it will teach you how to handle keyboard input!

    Project 2: Gitlet

    Tomorrow is the last day to submit Project 2 with slip days! We will be helping out with Gitlet in office hours tomorrow even though it is past due, but expect longer wait times as there won’t be nearly as many staff members in OH as there were last Thursday/ Friday.

    Week 11 Survey

    Week 11 survey is due Tuesday, 4/6 at 11:59 PM PT. The survey asks many questions about Gitlet. As a result, we extended the deadline by a day so that everyone gets a chance to give feedback to staff about the project.

    Final Exam Date/ Time

    The final exam is scheduled for Tuesday, 5/11 8-11AM PT. Later this week, we will release the mandatory pre final form, where you can indicate any final conflicts or difficulty in following the zoom proctoring policy you anticipate having.

    Summary of important dates

    • Week 11 Survey due Tuesday, 4/6

    • Lab 12 due Friday, 4/9

    • Lab 13 due Friday 4/16

    • Project 3 Phase 1: World Generation due Friday, 4/16

    • Project 3 Phase 2: Interactivity due Tuesday, 4/27 (no slip days)

    • Final Exam is Tuesday, 5/11 8-11AM PT

  • Week 11 Announcements

    Midterm 2 Regrades

    Midterm 2 Regrades open tomorrow, 3/29 at 6PM PT and will close Wednesday, 3/31 at 11:59 PM PT. Remember, do NOT submit a regrade request unless you have reviewed the common mistakes doc and video walkthroughs. Regrade requests will be honored only if it is clear you have reviewed these resources.

    Additionally, you can only request a regrade request if you believe that a rubric item was applied incorrectly, not to argue against the rubric. In your request, you should explain what rubric items should be fixed and why. Note that you may lose points on the exam as a result of requesting a regrade if we catch a grading mistake that would result in a lower grade on a problem. You cannot submit a regrade request for the multiple choice questions.

    Project 3 Partnerships

    The Project 3 Partnership form is due this Wednesday. Recall from last week’s announcements that if you do not fill this form out, you will be assigned a random partner, not accounting for your preferences. It’s unlikely that you’ll be given a new partner in the case that your randomly assigned partner is in a different time zone or any other reason, so please take 5 minutes and fill out that form as accurately as you can!

    You will hear back from us with assigned partners by this coming weekend.

    If you believe you cannot work with a partner on this project, please fill out this form. It is due on Monday, 03/29, 11:59. Note that requests to work alone are very likely to get declined, unless you have extenuating circumstances preventing you from working with others (time zone issues don’t count :( ). We will let you know if you were approved by Tuesday, 03/30.

    Lab converted to Office Hours this week

    Lab this week is office hours. All lab TAs will be on the OH Discord server during regular lab time.

    Project 2 Snaps Grader

    The Project 2 Snaps grader has been released on Gradescope and is due a week after the project’s deadline. After completing the project and pushing from your snaps repo, you should submit to this grader from your snaps repository. Your final grade for Project 2 will not be visible on Beacon until after you have done this. More details on the spec.

    Project 2: Gitlet

    Reminder that your Project 2: Gitlet is due this Friday. Here are a few additional announcements/reminders

    No due date extension

    We will not be extending the Gitlet deadline to ensure you all have plenty of time to work on Project 3: BYOW, which will be released shortly after Gitlet is due.

    Expectation when getting help on Project 2: Gitlet

    If you come to Office Hours for help with code/submit a Gitbug, the expectation is that you have a good conceptual understanding of the assignment and know how to debug using the runner.py script. This means you have watched and internalized the intro videos here and the debugging/testing video.

    If you have any questions pertaining to your code, and it is clear you did not follow the steps above (or gained comparable understanding of the project in some other way), we will refer you to these resources instead of providing help. Similarly, if you submit a Gitbug and didn’t describe how you used runner.py to debug your code, we will reject the Gitbug.

    Of course, if you find these resources insufficient, you are more than welcome to come to Office Hours so we can fortify your conceptual understanding of the project and your ability to debug Gitlet.

    The debugging video from Capers might also prove useful, as well as reading the testing section of the spec.

    Thursday Office Hours

    Office Hours on Thursday is the best day to go as we have the most staffed hours on this day. You should expect long queues on Wednesday evening and Friday, so please plan accordingly.

    No slip days on Project 3: BYOW

    Remember that there are no slip days allowed on Project 3: BYOW, so we encourage you to use slip days on Project 2. However, as per our policies, we do not provide help with past due assignments, so you please don’t expect to get help with the project beyond its deadline.

    Office Hours Presentation on Testing + Merging

    This Tuesday we’ll hold 2 presentations: at 1:00 PM Arjun will present on testing/debugging, and at 4:00 PM Omar will hold a presentation on the merge command. Come with questions! Arjun’s Zoom is here and Omar’s is here. These presentations will be recorded, but you’ll likely get more out of them if you attend live!

    Project 2: Gitlet full grader logs on Thursday

    The full grader logs for Project 2: Gitlet will be available on Gradescope starting on Thursday. You’ll see the actual lines of the Gradescope .in tests along with your errors, which makes debugging easier since you can write that test locally and use the runner.py script to debug it.

    However, you will likely not have enough time to fully debug the assignment on Thursday/Friday even with full grader logs, so you should be writing and debugging your own tests before then.

    Summary of important dates

    • Midterm 2 regrade requests open at 6:00 PM on Monday (3/29)

    • Project 3: BYOW partnership exemption form: due Monday (3/29)

    • Project 2: Gitlet presentation (Testing/Debugging): at 1:00 PM on Tuesday 3/30

    • Project 2: Gitlet presentation (Merge): at 4:00 PM on Tuesday 3/30

    • Midterm 2 regrade requests: due Wednesday 3/31

    • Project 3: BYOW partnership form: due Wednesday 3/31

    • Project 2: Gitlet full grader logs available on Gradescope starting Thursday 4/1

    • Project 2: Gitlet due Friday 4/2

  • Week 9 Announcements

    Midterm 2 reminder

    Midterm 2 is this Wednesday, 3/17 from 7:10-9PM. Get hyped!! Please see the Midterm 2 Master Post for more information about scope, studying resources, practice exams, and proctoring logistics. It is highly recommended that you use the practice resources we have given you to ensure your proctoring setup and PraireLearn are working correctly, as we will not grade your exam if you don’t follow the policy.

    We have processed all responses to the Pre Midterm Form, and will send out emails containing your zoom link, exam time, and the Post Midterm Form tomorrow. If you have not received an email by Tuesday, 3/16, please make a post on Ed so we can resolve this issue!

    Don’t forget to prepare your handwritten notes and have scratch paper ready for the exam!

    Getting help with Gitlet over the break

    There will be no Office Hours during Spring break, though staff will be on Ed. However, our availability will be limited, so our responses to Gitbugs and Ed posts will be slower than usual. Please account for this and come to Office Hours this week if you have any questions or need help on the project.

    Testing your Gitlet tests

    We’ve provided a convenient way to test your Gitlet tests with the staff solution! Writing tests for Gitlet is extremely important since, as you know, there is limited access to the autograder. All the details are linked in the guide.

    Survey scores now visible on beacon

    Scores for all Weekly Surveys up until now should be visible on the Beacon Grades page. The note next to the grade indicates which surveys you’ve received credit for. Note that everyone received credit for the Week 1 and Week 8 survey.

    No Lab due to Midterm

    There are no labs this week! We’ll be in Office Hours instead, so come on in if you need help preparing for Midterm 2, Gitlet, or anything else in the course!

    Homework 2

    The conceptual Homework 2 is due tomorrow (Monday) night! Recall it’s on Gradescope and you cannot use slip days on it. We will be posting a walkthrough video the night of the due date as a study resource for you so can be even more prepared for Midterm 2.

    Mid Semester Survey

    The Mid Semester Survey is due tomorrow (Monday) night! Please fill it out for 32 extra credit points and to let us know how we are doing and what we can improve in the course! Your feedback is very important to us so please answer the questions as accurately and detailed as you are able to.

    No week 8 survey

    Remember that there is no week 8 survey. You all just get the free points!

    Summary of important dates

    • Homework 2 - due on Monday 3/15

    • Mid Semester Survey - due on Monday 3/15 (32 extra credit points)

    • Midterm 2 - happening Wednesday (3/17) 7:10 - 9:00 PM

  • Week 7 Announcements

    Hope everyone had a great weekend, here is some important information for the upcoming week in CS 61B!

    Live Lecture on Monday

    Tomorrow, Monday, 03/01, 1-2 PM, Josh Hug will hold a live lecture! You can find the Zoom link on the top left of our course website, and it’s also here for your convenience.

    Midterm 2 Time

    Midterm 2 is scheduled for Wednesday 3/17, 7-9PM Pacific Time. More information, including scope, proctoring details and requesting an alternate exam time will be released about a week before the exam.  

    No More Private Posts on Ed

    In order to further encourage student contributions and reduce the number of duplicate posts, you will no longer be able to make a private Ed post. Your Gitbugs will automatically be converted to private after you create them.

    If there is something personal that you don’t want other students to see, please email cs61b@berkeley.edu. This should be limited to personal emergencies. If you have grading issues, set up issues, etc., that does not belong in a mega thread, you can make a public post anonymously and we will still be able to help you. If you have a debugging issue, you should submit a Gitbug post (these will remain private).

    Otherwise, try and engage with each other on these public posts! Contributing on Ed is a great way to solidify your knowledge of the course material.

    Homework 2 Released

    HW 2 is released and you can access it on the course website! Recall that HW 1 was cancelled and everybody received the full 320 points on it, so don’t worry if you don’t remember completing it. HW 2 covers topics that will be in scope for Midterm 2 and is designed to help you prepare for this exam. It is due Monday, 3/15. In order to allow you to prepare for Midterm 2, we will release a solution PDF as well as video solutions to the assignment right after it is due. As a result, you cannot use slip days on HW 2, so please plan accordingly.

    Getting Started on Project 2 Presentation

    It is very important that you start early on Project 2! This project is both much more difficult and much longer than the other assignments you have completed in this class. If you are unsure how to start tackling this project, we will hold a Getting Started on Project 2 Presentation this Tuesday, 3/2 at 5:00PM PT at this zoom link. It will not be recorded.

    Staff Solution for Gitlet

    We have provided you all with the ability to interact with the staff solution for Gitlet! You will not be able to see any of our code nor our .gitlet directory structure, but you will be able to issue commands to it and see the outputs as well as the CWD change depending on the command. We highly suggest using this and the spec quizzes as you read through the description of each command so you can test your understanding (especially for checkout and merge). Full details are here.

    Summary of important dates

    • Weekly Survey 6 - due on Monday 3/1

    • Lab 6 - due on Monday 3/1

    • Lab 7 - due on Friday 3/5 

    • Project 2 Checkpoint - due on Friday 3/12

    • HW 2 - due on Monday 3/15

  • Week 6 Announcements

    Homework 1 Cancelled

    To allow you to get started on Project 2 as early as possible, we’ve decided to cancel Homework 1: Percolation. You will all earn full points on that assignment and it’ll appear on Beacon at some point before the end of the semester.

    Section Changes

    With only a few labs left, and to increase the number of TAs helping you in OH with Project 2, we cancelled the majority of the lab sections and some discussions. Some lab sections got merged and will be co-taught by 2 TAs.

    The course website has an updated calendar for sections. The Ed Sections Index has also been updated.

    • If your lab TA no longer teaches lab, you can go to any lab that takes place during the same time. For example, if you used to attend Henry’s lab on Wednesday’s 2-4 PM, you can now choose to attend Anjali’s, Eric’s, Sohum’s lab, all of which take place during the same time.

    • If your lab TA merged their section with another section (during the same time), please attend the merged section. The right link appears on the course website and on the Ed Sections Index.

    • If your discussion section got cancelled, you were moved to another section that takes place during the same time. Find your name here to see which section to attend.

    Regrade requests

    Regrade requests are due Monday, 2/22 11:59PM PST. Please review the announcement here which specifies how to create a valid regrade request. Don’t forget to check the common mistakes document!

    Project 2

    Project 2: Gitlet has been released! It is due 4/02, though there is an extra credit checkpoint on 3/12. The full announcement is here. Before doing Project 2 you should do Lab 6: this lab is extremely helpful in preparing you for the project.

    We highly encourage you to start Project 2 as soon as possible! You can also earn 16 extra credit points by turning in a portion of the project early to the checkpoint grader!

    If you want help on the project either in Office Hours or through a Gitbug, you need to have an up-to-date and complete Design document. The project 2 spec links a guide that you should follow as well as an example design doc you should model yours after.

    Lab 6

    As mentioned above, this lab is extremely helpful for Project 2. There will be no live coding demo this week for the lab, so we encourage you to start early and come to your lab section if you have any questions or confusions.

    Project 1 Snaps

    Remember to submit to the Project 1 Snaps grader by the end of Tuesday! If you have any technical issues with this grader, please come to OH so a TA can help you. There is little to no help we can offer asynchronously over Ed.

    Lab 5 Make-up Checkoff

    If you couldn’t submit lab 5 for any reason (e.g. you had an extension on Project 1 for more than 2 days, or maybe couldn’t attend lab last week), we’ve extended the deadline to this Friday (2/26). You will be able to come into any Office Hours slot this week and a TA will check you off. You will need to review the spec of the lab carefully and think about the questions on it in order to be able to pass the check off.

    Summary of important dates

    • Weekly Survey 5 - due on Monday 2/22

    • Regrade requests - due on Monday 2/22

    • Snaps Project 1 checkoff - due on Tuesday 2/23

    • Lab 6 - due on Friday 2/26

  • Week 5 Announcements

    President’s Day

    Tomorrow is a holiday so all discussion sections and OH are cancelled!

    Project 1

    Project 1 is due this Tuesday. A few important things to note about the Project:

    The autograder refresh token is now reduced from 8 hours to 20 minutes

    You may use a maximum of 2 slip days for this project. Hence, the latest submission date for this project is Thursday 11:59 PM, PST.

    Some clarifications have been added on 02/12 to this section of the spec (marked by “ADDED 2/12”).

    Remember that you should pass a snaps checkoff for your project grade to appear on Beacon. More details are in Week 4’s announcements.

    We expect OH on Tuesday to be very busy. If you have a debugging question, please submit a Gitbug, instead of coming to OH. However, expect longer turnaround times later in the day on Tuesday.

    Lab 5

    The lab assignment this week requires a mandatory checkoff that all students must complete in order to get credit for lab. You can go to any lab that works with your schedule. The video-on policy will not be enforced this week only. If a lab section becomes overpopulated, a TA may ask you to go to a different lab that happens at the same time. To save time for yourself, we highly recommend that you join a lab before Berkeley time.

    IMPORTANT: In Lab 5, TAs will go over part of the staff solution for Project 1. So, you must make your final Project 1 submission (and Project 1 Extra Credit) BEFORE you attend lab. You will be marked for academic dishonesty if you attend lab and make another Project 1 submission afterwards. For example, if you used the allowed maximum of 2 slip days and make your final submission on Thursday, you can only attend a Friday lab section.

    If you intend to use an extension for Lab 5 or cannot attend any section this week, we highly encourage you to still try and do your best to attend a lab this week. We will provide information on how to get checked off late for those with extenuating circumstances next week.

    All labs will be conducted on Zoom. You can find TAs’ Zoom links here.

    Midterm 1

    Congratulations on completing your first CS 61B midterm! We hope to release the grades over the next few days.

    Topical Review Sessions

    Tomorrow we will be holding review sessions at 2:00 PM and 5:00 PM that will cover inheritance and polymorphism. Each session will consist of an hour of review on zoom here and an hour of small group work on discord here.

    Next Sunday we will not have a review session. The next one will be on Sunday, 2/28 during the same times. We will be covering Asymptotics!

    Summary of important dates

    • Weekly Survey 4 - due on Monday 2/15

    • Lab 4 - due on Tuesday 2/16

    • Project 1 - due on Tuesday 2/16 (only 2 slip days are allowed for this project)

    • Lab 5 - due on Friday 2/19 (attendance is required)

  • Week 4 Announcements

    Midterm 1

    As you all know, Midterm 1 is this Wednesday from 8-10 PM. Expect to receive an email containing your personalized zoom link from cs61b@berkeley.edu by Tuesday, 2/9 11:59 PM PST. Please make a private post on Ed with your Berkeley email if you don’t receive this email, but make sure to check your spam and trash first.

    Please review all the relevant information about the midterm in our Midterm 1 Master post. If you have any questions specifically related to the Midterm, including policy-related questions or if you’re looking for information about study materials and review sessions, please refer to that post, not this one. Also, this is another reminder that the extra credit Practice Midterm is due tonight (2/7)! Again, you can refer to the master post for more details.

    Finally, if you have DSP exam accommodations, but did not receive an email last week, please email cs61b@berkeley.edu as soon as possible.

    Lab 4

    Since we have a midterm this week, and Project 1 is due next week, we decided to cancel the mandatory checkoff that was previously scheduled for week 4 in labs. Instead, following up on your feedback from the weekly surveys, we will release a small assignment that will teach you the ins and outs of Git!

    For this lab, It is very important that you read the lab spec before pulling from the skeleton! The spec will have many more details as to why this is necessary.

    Lab 4 is due on Tuesday, 02/16, 11:59 PM PST.

    Due to the Midterm, all live lab sections are cancelled this week. TAs who teach lab on Thursday and Friday will instead offer more support in OH with Project 1 and any Git questions you have for Lab 4. Please do not come to your lab’s Discord server this week.

    Debugging Code

    In last week’s announcements, we introduced Gitbugs, an easy way that you can get debugging help for assignments. To be clear, Gitbugs are the best way for you to get help debugging code in this class, not office hours. You can expect a response to your Gitbug within 24 hours. We will aim for quicker turnarounds near project deadlines. More information about Gitbugs can be found in this guide.

    Project 1: Snaps

    As mentioned in the Project 1 Spec, in order for your full Project 1 grade to transfer over to the Beacon grades page, you will first need to perform a snaps update. Only after you pass the “Project 1: Snaps Check” grader, you will be able to see your Project 1 grade on beacon. You have until a week after the project’s deadline to do so. If you failed this grader, do NOT proceed or try to redo any steps. Come to OH so a TA can help you.

    Mentor TAs

    Mentorship pairings are out! If you haven’t already received an email from your mentor TA, expect to receive one by the end of this weekend. Your mentor TA is meant to be a point of contact for any none course content concern and help you navigate all the resources that we have available for this course. They should be the first person you reach out to if you have any concerns about the course that cannot be answered via Ed. Please do not email your mentor TA for debugging help or conceptual review.

    A Reminder on Gradescope Scoring

    A number of people have asked whether we are offering partial credit on the Project 1 Extra Credit and if you can receive full credit on labs even if you fail some tests. Unless we say otherwise, your Gradescope score is your final score on an assignment, even if you are failing some tests! Also please remember that Beacon updates once every day with your latest Gradescope scores, so it may take a bit before your most recent grades on the Beacon grades page.

    Topical Review Session 3

    Next Monday (not Sunday!) we will be holding a topical review session that will cover inheritance and polymorphism. As always, you are encouraged to coordinate with your study group and attend together but you may attend alone as well. Each session will consist of an hour of review on zoom here and an hour of small group work on discord here. We are still deciding on the time for this review session, so stay tuned for that.

    Check-in Exercises

    Check-in exercises have now been set to allow retaking. Feel free to take the check-in exercises as many times as you please to reinforce your understanding of lectures and study for midterms. Check-in exercises will be linked on the website the weekend before the lecture.

    Summary of Important Dates

    • Extra Credit Practice Midterm - due tonight (Sunday) 2/7

    • Weekly Survey 3 - due this Monday 2/8

    • Midterm 1 - this Wednesday 2/10

    • Lab 4 - due next Tuesday 2/16

  • Week 3 Announcements

    Hi everyone! Hope you are all enjoying your weekend. Here is another round of weekly announcements. As always, it’s very important that you read these announcements! Feel free to ask follow up questions, but please check to see that your question hasn’t already been answered in the comments before posting.

    Ed Code Formatting

    A quick reminder on Ed etiquette: please use the “Code” formatting option (between underline and link) whenever you are posting code on Ed, as opposed to “code block”. A previous announcement had a typo encouraging you to use the “code block” option. This will make questions and responses much easier to understand for everyone, and the mega threads less laggy! The Ed policies have been updated with this clarification.

    Logistical Questions

    Please do not email individual TAs with questions. You may not get a response if you do. Instead, please post on Ed any questions you have, so other students can get the answer too! If the question is more personal, you should make an Ed private post. If there is some question that you only want Prof. Hug and the Head TAs to see, you should email cs61b@berkeley.edu.

    Project 1 has been released!

    In Project 1 you will create data structures from scratch, test them yourself, and then use them to build something awesome (a sound synthesizer that will let you play guitar hero). Read the full announcement here. It is due Tuesday 2/16 (in two weeks), though there is an extra credit checkpoint due this Friday 2/05 (details on spec). There is also another extra credit opportunity where you will create an autograder (details on spec) that is due on Tuesday 2/16 with the rest of the project. Remember that you may only use 2 slip days on this project.

    Introducing Gitbugs

    As you get to later assignments in CS 61B (like project 1), your bugs will become very specific to the code you are writing. As such, it becomes much more difficult to debug in office hours or through a post on a megathread. Well, there is now a new system for you to get help: Gitbugs!

    A Gitbug is a special Ed post that lets you describe your bug in great detail. It’s very important that you read this Gitbug guide in its entirety to understand how to create a Gitbug request, and what might get your Gitbug request rejected.

    If you have a question regarding your own code, you should always make a Gitbug. If a TA in Office Hours feels like there wouldn’t be enough time in Office Hours to uncover a bug in your code, they may request that you submit a Gitbug in lieu of offering synchronous help.


    Instead of using SignUpGenius, you can see your section assignment here. This spreadsheet is also linked on the Sections Index post.

    Students who filled out the new section assignment form posted on Friday, should be assigned to a new section on this form. We verified that you all got your top preference, but please make a private post if we made an error in your assignment.

    Remember, starting week 4 you can email a TA whose section you want to join, if you forgot to fill out this form or are unhappy with your current assignment.

    New OH Ticket Template

    There is now a template to fill out when you create a ticket on the Office Hours queue so that we can help you (and other students) more efficiently! The discord guide has been updated to reflect this change, and if you want to see what the template looks like, visit oh.datastructur.es.

    Moving forward, when creating a ticket, you must copy and paste the template into the ticket description, filling in the fields with your OH Discord room number, your github repo link and a description of why you are requesting help. OH Staff will not help any student who hasn’t followed the template, so make sure you are familiar with it.

    Project 0 Presentations

    Because many students were interested in seeing how a TA might implement the tilt method in Project 0, this Wednesday from 5-6 PM in this Zoom room we’ll be hosting a presentation/live coding demo on it! It will not be recorded. This is only a presentation/discussion about the staff solution, so please do not come with debugging questions. You’re certainly welcome to ask about design choices and tips for keeping code clean! This session will not be recorded.

    Midterm 1

    Midterm 1 will be held on Wednesday, February 10th from 8-10PM PST. We will be remote proctoring this exam, and will release comprehensive exam details along with a practice assignment this Wednesday! Please save all exam questions you have until the details are released and you have read them in their entirety.

    If you have DSP accommodations that are exam related, you will be receiving an email from cs61b@berkeley.edu confirming your accommodations. If you have accommodations and do not receive this email by Thursday, February 5th, please email cs61b@berkeley.edu.

    DSP Accommodations

    If you have a DSP accommodation that allows you to have extra time on assignments, any extension you request on Beacon that is less than or equal to 3 days will be automatically approved. If you require a longer extension, please request it on Beacon, and it may prompt you to reach out to the course email. This is so that you do not fall behind in the class, and helps us to keep you on track.

    Summary of important dates

    • Weekly Survey 2 - due this Monday 2/1
    • Lab 2 - due this Tuesday 2/2
    • Proj 1 Checkpoint - due this Friday 2/5
    • Lab 3 - due this Friday 2/5
  • Week 2 Announcements

    To reduce the amount of email notifications you get from us, every week on Sunday we’ll be posting all the CS 61B announcements about the upcoming week. It’s very important that you read and digest these announcements. They can get quite lengthy, so we’ll always have a summary of important dates at the bottom for your convenience.

    Our expectation is that you read these announcements, so we may refer you back to this post if you ask a question whose answer is specifically mentioned. Of course, clarification questions are always welcomed, but be sure to read through this mega thread, to see if your question was already asked.

    Images in Megathreads

    We know that the Lab 1 and Project 0 megathreads are a little laggy. We’ve contacted Ed and they’re looking into this for us. To ameliorate this issue, moving forward we won’t allow screenshots in mega threads. The Ed policies have been updated accordingly.

    If you want to share terminal/intelliJ output/errors, you can paste the text inside a code block in your mega thread comment. You can see our Ed guide to learn more about using codeblocks. If you feel that your question requires a screenshot to fully understand, please make a private post.

    Course Policies

    Some of the course policies, specifically the grading bins, are still a work in progress. We will update you when they are completed. In the meantime, we encourage you to read through them and the linked guides to learn how to navigate CS 61B effectively. To encourage you to do so, we may refer you to the course policies or relevant guides, if you ask a question mentioned there. Again, clarification questions are always welcomed.

    Finally, the CS 61B exams may feature questions about the course policies (i.e. free points!)

    Using Ed

    Most of you are probably new to Ed. We really encourage you to read our Ed guide so you know how to use it correctly. Beyond the point above about screenshots, a few important things to notice moving forward:

    1. Understand the concept of “resolvable” posts and comments on Ed. If your question was marked as resolved, but you still have some follow up comments, make sure to unresolve the question, so TAs can quickly see that your post needs attention.

    2. Ed search is quite good. You can use keyword search almost like when using Google. Make sure to read through mega threads and search on Ed before posting a question that has already been asked.

    Extensions Tab is now Live

    The Extensions Tab on Beacon has been released. This is where you will make extension requests using slip days. You can find full details on using the extensions tab in our Beacon guide. Note that if you apply lateness to Lab 1, it will also apply to the Lab 1A grader.

    Office Hours

    Our Office Hours start tomorrow! It’s important that you all read our Office Hours policies and abide by them, else you run the risk of getting your ticket delayed or even deleted. The Office Hours join link is visible on Ed in the Week 2 Announcements post.

    Note that a TA will only spend a maximum of 10 minutes with you during Office Hours. This policy allows us to help as many students as we can, so if you’re reaching the 10 minute mark then you should understand that the TA must leave soon.

    The calendar with all the days/times of Office Hours is here on the course website (scroll to the bottom of the home page). Some weeks (like this week) we will have extra slots with extra TAs to support you on days we expect higher student attendance.

    Project 0

    Project 0 has been released and is due this Friday, 1/29. We encourage you to start as soon as possible! You can earn extra credit by submitting the project a day early (1/28, 11:59 PM)! See our course policies for more information. Direct all your questions in the Project 0 Megathread on Ed unless it’s so private that you think no other student would benefit from seeing your question.

    The best way to get help with the project is to come to Office Hours. We encourage you to come even if you are just getting started, as TAs can help you better understand the spec and give advice on how to tackle the project.

    While we planned to have more TAs available during Office Hours before the deadline (this Thursday and Friday), note that waiting times may be longer than usual. We expect a lighter load on Monday and Tuesday.

    Project 0 Office Hours Presentations

    We’ll also be holding 20-minute, high level presentations during Tuesday and Thursday Office Hours to help students with conceptual misunderstandings as well as discuss how all the different classes relate with one another. These will not be about any coding, so if you already have a good understanding of the project structure then these will not be very helpful to you. We will make the Thursday presentations more implementation focused and help those who started late, though we highly suggest starting as early as possible as wait times tend to get very long in the days leading up to the deadline. A few minutes before the presentation starts, TAs will blast in #announcements the Zoom link where they’ll be hosting the presentation. There will be 4 of these presentations per day and they will happen every 30 minutes. On Tuesday they will start at 1:00, then 1:30, then 2:00, and finally 2:30. On Thursday they will start at 2:00, then 2:30, then 3:00, and finally 3:30.

    Lateness on Project 1

    Project 1 won’t be released until the end of the week, but we want to let everyone know that only a maximum of 2 slip days can be applied on Project 1. In the lab following the Project 1 deadline, you will compare your project solution with other students, so you must be done with Project 1 before you attend lab during week 5. You cannot choose to take 3 slip days and “drop” Lab 5. Students will be able to attend any lab they want during the week. More information will be available leading up to week 5.

    Lab Checkoffs

    Previously, the course policies mentioned that the mandatory Project 1 peer review checkoff will occur in Lab 4. This was an error and this checkoff will take place in Lab 5.

    Lab 2 was previously set to have a mandatory checkoff. We removed this requirement, and tentatively pushed it to occur in Lab 4. So there will be a mandatory lab checkoff in week 4 after all.

    The course policies have been updated to reflect these changes.

    Summary of important dates

    • Lab 1 - due this Tuesday 1/26
    • Project 0 early deadline - due this Thursday 1/28 (using the same grader as Project 0)
    • Project 0 - due this Friday 1/29
    • Lab 2 - due this Friday 1/29
  • Welcome to CS61B!

    Welcome to CS 61B! We are excited to have you on board for a great Spring semester!

    This semester is unique as all CS 61B instruction will be delivered online. This post is long, but contains important information about how the class is going to run this semester. Bear with us - there is also an extra credit opportunity at the end!


    This semester we are using a new class forum called Ed, which you can find linked on the navbar above. We prepared a guide to help you get started with Ed and make the most of it!

    Be sure to read the Ed policies too. We will not be able to help you and may have to delete your posts if you don’t follow the guidelines listed there. You will also have to pass a quiz on these policies during lab 1.

    Discussion and Lab Sections

    This semester, CS 61B Discussion sections will be delivered on Zoom, and Lab sections will be delivered on Zoom and Discord. The first lab sections will start on Zoom.

    Discussion starts next week on Monday. We have two types of discussion sections:

    • In Standard Discussion sections, TAs will review the material and work with students through problems. These sections will be more flexible and tailored to that section’s needs.

    • Exam-Prep discussions will feature a worksheet with exam-level questions and beyond. TAs will assume that students are well familiar with the material. The focus will be on problem solving.

    Lab starts this week on Wednesday. The Lab 1 assignment will be released on Wednesday, but we may release it before. Please do not try to start reviewing the assignment from Fall 2020 in the meantime, as it has changed. Labs will always be due on Fridays, but the first lab is due on Tuesday, 01/26, 11:59 PM.

    From our course policies page: Sections are meant to provide an opportunity for students and TAs to engage in meaningful interactions, so students who attend discussion and/or lab sections will be required to have their video turned on for the entirety of the section. If your video is turned off for more than a few minutes, you will automatically be removed from the section.

    Note that section attendance is NOT mandatory, and alternate forms of help are available for all students. For lab assignments, you can always get help on Ed or in Office Hours, and worksheet video walkthroughs will be provided every week. See our Course Info page on our course website for more information.

    Today (1/19) at 7 PM, we will post on Ed a link to the sections sign up form for both lab and discussions. Section sign up is first-come-first-serve, much like CalCentral, but without enrollment priorities. Waitlisted students can sign up for sections too. The full section schedule will be posted shortly on the course website.

    Even if you are hesitant about this requirement, we encourage you to sign up as sections are a great opportunity to connect with TAs and other students.

    You will only be able to attend your assigned section, as all sections are limited by the number of students we can accommodate, to ensure fruitful discussion and engagement.

    Starting from week 4 (02/08), if you want to start attending a section, or switching from your assigned section, please email the TA whose section you want to join, and they will let you know if they have space for you.

    Course Website and Course Policies

    The course website and course policies are mostly finalized. Any incomplete information is marked with “TBD” and should be updated by Feburary 1st.

    We encourage you to start reading our course policies as soon as possible. There are a lot of them, but knowing them will make your experience in the class a lot smoother.

    To help you get familiar with the policies, we may refer you to the course policies page on our website if you ask a logistical question on Ed. Lab 1 will also include a quiz about these policies.


    Almost all lectures will be pre-recorded and posted on the course website. In fact, most of the lectures are already available there. We recommend that at the very least, you watch each lecture no later than a day after the date listed on the website for it. The course lectures are the basis for everything we do in CS 61B, and you will find it very hard to complete assignments without keeping up with lectures.

    For almost all lectures, there will be no live lecture. Instead, during our official “lecture time” of MW from 1-2 PM and F 2-3 PM, Josh Hug will host a live Zoom session with no specific pre-planned activities. This time will be used as an open Q&A, with a focus on that day’s topics.

    Lecture 1 on Wednesday, 01/20, 1-2 PM, will be a live lecture. You can find Josh Hug’s Zoom link on the course website. Some other lectures will be live as well, and we will announce them in advance on Ed.

    Office Hours

    Starting from week 2, we will hold Office Hours on Mondays, Tuesdays, and (mostly) Thursdays and Fridays. We are likely to change the Office Hours schedule based on student demand. All Office Hours will be hosted on Discord. We will announce our Office Hours schedule and policies before week 2.

    Instead of holding standard instructor office hours, Josh Hug will be hosting a live Q&A during the regular lecture time: MW, 1-2 PM, and F 2-3 PM. You’re welcome to ask any question, even if it’s not about lecture content.


    You will be using Gradescope to submit your work in this class. If you are on the official roster, you should’ve been added by now. If you haven’t been added, you can use this enrollment code to join: BP25V6

    Project 0

    We will release Project 0 on Wednesday, and it is due on 01/29. We recommend that you start as soon as possible, after you complete Lab 1. Again, please don’t attempt to get started by reviewing the Fall 2020 version of the project, as it is not the same one.

    Pre-Semester Survey

    The pre-semester survey is now available! You can earn 32 extra credit points for completing the survey by Friday, 01/22/2021, 11:59 PM. It should take you about 20 minutes to complete.


    • Section sign ups - today at 7:00 PM

    • Lecture 1 will be live on Wednesday, 01/20, 1:00 PM

    • Labs start this Wednesday, 01/20

    • Discussions and Office Hours start next week

    • Lab 1 released this Wednesday and is due 01/26, 11:59 PM

    • Project 0 released this Wednesday and is due 01/29, 11:59 PM

    • Fill out the pre-semester survey by this Friday for 32 extra credit points

    • All times mentioned are Pacific time.

    Thank you for reading this long post, and we look forward to seeing you this week!

  • Soft Launch

    This website is under construction! Calendar subject to change. Exam dates and times, and projects are all TBA.

    Course policies and other administrative stuff coming soon!

    Again, don’t trust what you see below!

Week Date Reading Lecture Discussion Lab Assignments/Exams
No Classes No discussion week 1. Setting Up Your Computer
IntelliJ Setup (due 01/26)
HW0: Basic Java Programs (optional)
Wed 01/20


1. Intro, Hello World Java
[video] ‌[slides] ‌[guide] ‌
Project 0 (due 01/29)
Fri 01/22


2. Defining and Using Classes
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Mon 01/25

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

3. Testing
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Introduction To Java
[slides] ‌[video] ‌[solution]
Scope, Pass by Value, Static (Exam Prep)
[video] ‌[solution]
Debugging (due 01/29) [Project 0 due 1/29]

Wed 01/27


4. References, Recursion, and Lists
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Fri 01/29


5. SLLists, Nested Classes, Sentinel Nodes
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Mon 02/01

2.3, 2.4

6. DLLists, Arrays
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Scope, Static, Linked Lists
[slides] ‌[video] ‌[solution]
Linked Lists Exam Prep
[video] ‌[solution]
Randomizing Testing and Timing (due 02/05) Project 1 (due 02/16)
Wed 02/03


7. ALists, Resizing, vs. SLists
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Fri 02/05


8. Inheritance, Implements
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
[Project 1 Checkpoint due 02/05]

Mon 02/08


9. Extends, Casting, Higher Order Functions
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Inheritance and Implements
[slides] ‌[video] ‌[solution]
Inheritance and Implements Exam Prep
[video] ‌[solution]
Git and Debugging (due 02/16) Midterm 1 Practice Assessment (due 02/07)
Wed 02/10


10. Subtype Polymorphism vs. HoFs
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Midterm 1 (2/10)
Fri 02/12

6.1, 6.2, 6.3, 6.4

11. Exceptions, Iterators, Object Methods
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Mon 02/15: Academic Holiday Polymorphism, Iterators, and Iterables
[slides] ‌[video] ‌[solution]
Polymorphism, Iterators, and Iterables Exam Prep
[video] ‌[solution]
Peer Code Review (due 02/19) [Project 1 due 02/16]
Wed 02/17


12. Command Line Programming, Git, Project 2 Preview
[slides] ‌[Live Lecture] ‌
Project 2 (due 04/02)
Fri 02/19

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

13. Asymptotics I
[video] ‌[slides] ‌[guide] ‌
Mon 02/22

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

14. Disjoint Sets
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Disjoint Sets and Asymptotics
[slides] ‌[video] ‌[solution]
Disjoint Sets and Asymptotics Exam Prep
[video] ‌[solution]
Project 2 Getting Started (Due 02/26) Project 2 (due 04/02)
Wed 02/24

8.3, 8.4 (extra), Algs 170-198

15. Asymptotics II
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Fri 02/26

10.1, 10.2, Algs 396-406

16. ADTs, Sets, Maps, BSTs
[video] ‌[slides] ‌[guide] ‌[live Q&A] ‌
Mon 03/01

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

17. B-Trees (2-3, 2-3-4 Trees)
[video] ‌[slides] ‌[guide] ‌[Live Lecture] ‌
ADTs and Asymptotics II
[slides] ‌[video] ‌[solution]
ADTs and Asymptotics II (Exam Prep)
[video] ‌[solution]
BSTMap (due 03/05) HW2: Conceptual Review (due 03/15)
Wed 03/03

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

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

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

19. Hashing
[video] ‌[slides] ‌[guide] ‌
Mon 03/08

13.1, 13.2, 13.3, Algs 308-320

20. Heaps and PQs
[video] ‌[slides] ‌[guide] ‌
B-Trees, Red Black Trees, and Hashing
[slides] ‌[video] ‌[solution]
B-Trees, Red Black Trees, and Hashing (Exam Prep)
[slides] ‌[video] ‌[solution]
HashMap (due 03/12) [Project 2 Checkpoint due 03/12]
Wed 03/10

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

21. Tree and Graph Traversals
[video] ‌[slides] ‌[guide] ‌
Fri 03/12

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

22. Graph Traversals and Implementations
[video] ‌[slides] ‌[guide] ‌
Mon 03/15

19.1, 19.2, 19.3, Algs 638-657

23. Shortest Paths
[video] ‌[slides] ‌[guide] ‌
Heaps and Graphs
[slides] ‌[video] ‌[solution]
Heaps and Graphs (Exam Prep)
[slides] ‌[video] ‌[solution]
Project 2 Workday [HW2 due 03/15]
Wed 03/17

20.1, 20.2, Algs 604-630

24. Minimum Spanning Trees
[video] ‌[slides] ‌[guide] ‌
Midterm 2 (03/17)
Fri 03/19

16.1, 16.2, 16.3

25. Range Searching and Multi-Dimensional Data
[video] ‌[slides] ‌[guide] ‌
Spring Break No Discussion No Lab
Spring Break
Spring Break
Mon 03/29

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

26. Prefix Operations and Tries
[video] ‌[slides] ‌[guide] ‌
Shortest Paths and MSTs
[slides] ‌[video] ‌[solution]
Shortest Paths and MSTs (Exam Prep)
[video] ‌[solution]
Project 2 Workday [Project 2 due 04/02]
Wed 03/31


27. Software Engineering I
[video] ‌[slides] ‌[guide] ‌
Fri 04/02

21.1, 21.2, 21.3, 21.4

28. Reductions and Decomposition
[video] ‌[slides] ‌[check in] ‌
Mon 04/05 29. Basic Sorts
[video] ‌[slides] ‌[guide] ‌
More Graphs and Tries
[slides] ‌[video] ‌[solution]
More Graphs and Tries (Exam Prep)
[video] ‌[solution]
Getting Started on Project 3 (due 04/09) Project 3 (due 04/27)
Wed 04/07

Algs 288-296, 302

30. Quick Sort
[video] ‌[slides] ‌[guide] ‌
Project 3 Game Sharing
Fri 04/09


31. Software Engineering II
[video] ‌[slides] ‌[guide] ‌
Mon 04/12

Algs 341-347

32. More Quick Sort, Sorting Summary
[video] ‌[slides] ‌[guide] ‌
Basic Sorts
[slides] ‌[video] ‌[solution]
Basic Sorts (Exam Prep)
[video] ‌[solution]
Interactivity in Project 3 (due 04/16) [Project 3 Phase 1 due 04/16]

Wed 04/14


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

Algs 279-28

34. Sorting and Algorithmic Bounds
[video] ‌[slides] ‌[guide] ‌[Live Lecture] ‌
Mon 04/19

Algs 702-718

35. Radix Sorts
[video] ‌[slides] ‌[guide] ‌
More Sorting
[slides] ‌[video] ‌[solution]
More Sorting Exam Prep
[video] ‌[solution]
Project 3 Work Day HW3: Conceptual Review (due 05/03)
Wed 04/21


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


37. Software Engineering IV
[video] ‌[slides] ‌[guide] ‌
Mon 04/26


38. Compression
[video] ‌[slides] ‌[guide] ‌
Goodbye, Fun BYOW Demos (due 04/30) [Project 3 Phase 2 due 04/27]
Wed 04/28


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


40. Summary, Fun
[slides] ‌[Live Lecture] ‌
RRR Week No Discussion No Lab [HW3 due 5/3]
RRR Week
RRR Week
Finals Week (May 10-14), 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: 2021-05-15 03:55 UTC