CS 61B Data Structures, Fall 2021
Instructor: Paul Hilfinger. Office hours TBD
Lecture: MWF 1-2PM, Stanley 105 as capacity allows.
Zoom Webinar Link: in @9 on Piazza

Please also check our course Piazza for more announcements.

Date Category Announcement
8/23 Lectures Because the class is bigger than Stanley will hold, and because of considerations imposed by the current pandemic, we do not require lecture attendance in person. Feel free to use the Zoom webinars, screencasts, and posted slides (linked to from the website) instead.
8/23 Admin Announcements from outside groups will be kept on Piazza in the outside_postings folder. You can narrow your view to this category using the tab on the folder bar at the top of the Piazza page.
8/23 Admin Tests will be as follows:
  • Test #1: Thursday, 30 September 2021.
  • Test #2: Wednesday, 3 November 2021
  • Final: Wednesday, Dec 15 2021, 7:00P - 10:00P
8/23 Admin To join the Piazza page for CS 61B, head over to this this link.
8/23 Admin The Scores tab above will show you what you have submitted and any logs produced by the autograder.
8/23 Admin You will need a CS61B Unix account to hand in your work, among other things. You can get one by clicking here.
Zoom Lectures: please use this link to join our lecture webinar


Week Date Reading Lecture Discussion Lab Assignments/Exams
1 Mon 8/23 No classes No discussion section javac, java, git HW0: Being a Good Classmate and A Few Java Exercises
(due 9/3)
Wed 8/25 HFJ 1-26 Intro, Hello World Java
Fri 8/27 AJR 1.1-1.9 A Little Programming
Mon 8/30 HFJ 27-36. AJR Chapter 4 Values and Containers
Intro to Java
[Video] [Slides]
IntelliJ and IntLists [HW0 due 9/3]
HW1: JUnit testing, basic syntax, and linked lists
(due 9/7)
Project 0: Flood
(due 9/17)
Wed 9/1 Simple Pointer Manipulation
Fri 9/3 HFJ 670 Arrays
Monday, 9/6 No classes Pointers
[Video] [Slides]
IntDLists and Debugging
[HW1 due 9/7]
HW2: Arrays and Lists of Lists
(due 9/14)
Wed 9/8 HFJ 50-62 Developing a Sort, Unit Testing
Fri 9/10 HFJ 73-87 Object-Based Programming
Mon 9/13 HFJ 168-191, 236-265, 287-293 Object-oriented Mechanisms
[Video] [Slides]
Exam Prep

[Video] [Slides]
Project 0 Office Hours
(No lab assignment)
[Project 0 due 9/17]
[HW2 due 9/14]
HW3: OOP, Interfaces, and Inheritance
(due 9/21)
Wed 9/15 HFJ 200-229 Interfaces and Abstract Classes
Fri 9/17 HFJ 73-87 Interfaces and Abstract Classes
5 Mon 9/20 HFJ 228-229. 250-256 Examples: Comparable and Reader, OOP Details
[Video] [Slides]
Exam Prep

[Video] [Slides]
OOP with Collections, Iterators, and Iterables [HW3 due 9/21]
Project 1
(due 10/7)
Wed 9/22 HFJ 316-348, 587-593, 665-668 Delegation, Exceptions, Assorted Features
Fri 9/24 HFJ 154-160, 667-668 Packages, Access Control
6 Mon 9/27 AJR 6.3, 6.4, HFJ 274-310 Integers
Test Review Unit Testing and Integration Testing for Enigma [Project 1: Checkpoint due 9/27]
HW4: Scanners and Patterns
(due 10/5)
Wed 9/29 DSIJ Chapter 1 Integers
Thur 9/30 Test #1, 7-9PM
Fri 10/1 Complexity
7 Mon 10/4 DSIJ Chapters 2 and 3 Collections, Amortization
Bits and Algorithmic Analysis Project 1 Office Hours
(No lab assignment)
[Project 1 due 10/7]
[HW4 due 10/5]
HW5: Bit Operations, Asymptotic Analysis
(due 10/12)
Wed 10/6 DSIJ Chapter 4 Sequences, Some Design Patterns
Fri 10/8 Sequences (II)
8 Mon 10/11 DSIJ Chapter 5 Trees
More Algorithmic Analysis
Practical Asymptotic Analysis and TreeMaps [HW5 due 10/12]
HW6: BSTs, Ranges, and Hashing
(due 10/19)
Project 2
(due 10/28)
Wed 10/13 DSIJ Chapter 6 Tree searching
Fri 10/15 Game trees
9 Mon 10/18 DSIJ 6.4, 6.5 Priority Queues, Range Queries
Binary Trees
Heaps and Priority Queues [HW6 due 10/19]
Wed 10/20 DSIJ Chapter 7 Hashing
Fri 10/22 AJR Chapter 10 Generics
10 Mon 10/25 DSIJ 8 Sorting
Heaps and Hashing
No Lab Assignment [Project 2 due 10/28]

Project 3
(due 12/2)
Wed 10/27 Sorting (II)
Fri 10/29 Sorting (III)
11 Mon 11/1 DSIJ 9
Balanced Search Structures
Files and Persistence HW 7: Sorting
(due 11/9)
Wed 11/3 Review
Wed 11/3 Test #2, 7-9PM
Fri 11/5 Balanced Search Structures (II)
12 Mon 11/8 DSIJ 11 Git Internals
Balanced Search
Software Engineering and Design
(due 4/17)
[HW7 due 11/9]
HW8: Red Black Trees
(due 11/16)
Wed 11/10 DSIJ 12 Graphs, Introduction, Traversals
Fri 11/12 A* Search, Minimal spanning trees, Union-find
13 Mon 11/15 Pseudo-Random Sequences
Union Find and MSTs [HW8 due 11/16]
HW9: Graphs
(due 11/23)
Wed 11/17 DSIJ 10, HFJ pp. 489-516 Dynamic Programming, Enumeration Types
Fri 11/19 Threads, Garbage Collection
14 Mon 11/22 Continued from Friday No discussion section No lab assignment [HW9 due 11/23]
Wed 11/24 No lecture
Fri 11/26 Thanksgiving
15 Mon 11/30 Compression
A* Search
No lab assignment [Project 3 due 12/2]
Wed 12/1 TBD
Fri 12/3 Summary, Survey
15 Mon 12/6 RRR week No discussion section No labs
Wed 12/8 RRR week
Fri 12/10 RRR week

Discussion and Lab Schedule

Section attendance is optional but highly encouraged in CS61B.

Lab and discussion will be offered both online and in-person. There will be no restrictions on the number of students permitted to attend online sections. We will release in person section signups at 5PM PT on 8/24. Until Week 4, you may only attend an in person section if you are signed up for it. Afterwards, you may attend any section.



Office Hours & Misc. Events Schedule

OH will be held online until (at least) Week 4. Office Hours begins on 8/30.

Online OH (yellow) can be accessed at oh.datastructur.es at the times listed below on the OH Discord Server.