CS 61B Data Structures, Fall 2019
Instructor: Paul Hilfinger
Lecture: MWF 5-6PM, Wheeler 150
Announcements [Past Announcements]
Date Category Announcement
10/15 Projects Due date of Project 1 postponed to Monday, 10/21.
10/12 Projects Due dates of HW4, Lab 7, and Project 1 checkpoint postponed to Monday, 10/14.
9/23 Projects Project 1 (Enigma) has been released.
8/28 Lectures Because the class is bigger than Wheeler will hold, we do not require lecture attendance. Feel free to use the screencasts and posted slides (linked to from the website) instead. After the first few sessions, enough people will use these resources exclusively that there will be room in Wheeler for all who prefer to attend in person.
8/28 Labs Labs begin after lecture on 8/28. Discussion sections start Tuesday, 3 September. Those of you whose discussion sections are canceled due to the Labor Day holiday should try to infiltrate another section for next week only.
8/28 Admin You may now sign up for Lab and Discussion sections! You should sign up for no more than one Discussion slot and one Lab slot. When you sign up for your sections, make sure that you select one of each, and then select a quantity of 1. If you attempt to sign up for more than one Discussion, more than one Lab, or sign up with a quantity greater than 1, your name will be removed from the section sign up and you will have to sign up again in order to be guaranteed a spot. As a reminder, sign ups are located here and the list of TAs for each section time is located @23. If you cannot find a slot, try to find an "unofficial" lab and discussion where there is room for the time being (you won't, however, have priority for that section).
6/29 Misc The git-bug command (available on the instructional machines and in cs61b-software) will send us a useful bug report that includes all your code and a message about what problem you are having with it. It requires that you commit and push your work (as you should be doing anyway) and that you provide a text file (which you don't have to commit) containing a description of the problem you are seeing. Please use this instead of screenshots, emails of code snippets, etc., which are almost never sufficient for debugging purposes. You can find some additional documentation here..
8/28 Admin Announcements from outside groups will now 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.
6/29 Admin Tests will be as follows:
  • Test #1: Thursday, 3 October 2019 7-9PM
  • Test #2: Wednesday 6 November 2019 7-9PM
  • Final: Friday, 20 December 2019 3:00PM-6PM
6/29 Admin For those of you with conflicts with tests #1 or #2, we will be addressing this issue closer to the time of the exams. Please do not mail us with conflicts at this time, but watch for further announcements. We do not offer accommodation to those with conflicting finals as a result of taking two courses with the same lecture time.
6/29 Admin To join the Piazza page for CS 61B, head over to this this link. The access code is 61bfa19.
6/29 Admin The Scores tab above will show you what you have submitted and any logs produced by the autograder.
6/29 Lectures Lectures are screencast (with audio) and all slides are online. Attendance is not mandatory. In fact, we do not all fit into Wheeler, so I recommend that those of you who are so inclined stay home and watch them. Experience indicates that after the initial week or so, there will be plenty of space in lecture for those who prefer live attendance.
Week Date Reading Lecture Discussion Lab Assignments/Exams
1 Mon 8/26 No classes No discussion section javac, java, git HW0: A Few Java Exercises
(due 9/6)
Wed 8/28 HFJ 1-26 Intro, Hello World Java
Fri 8/30 AJR 1.1-1.9 A Little Programming
2 Mon 9/2 No classes Intro to Java
IntelliJ and IntLists [HW0 due 9/6]
HW1: JUnit testing, basic syntax, and linked lists
(due 9/11)
Project 0: Signpost
(due 9/23)
Wed 9/4 HFJ 27-36. AJR Chapter 4 Values and Containers
Fri 9/6 Simple Pointer Manipulation
3 Mon 9/9 HFJ 670 Arrays
IntDLists and Debugging [HW1 due 9/11]
HW2: Arrays and Lists of Lists
(due 9/18)
Wed 9/11 HFJ 50-62 Developing a Sort, Unit Testing
Fri 9/13 HFJ 73-87 Object-Based Programming
4 Mon 9/16 HFJ 168-191, 236-265, 287-293 Object-oriented Mechanisms
More objects and arrays
Mostly Proj0 [HW2 due 9/18]
Project 1: The Enigma
(due 10/21)
HW3: OOP, Interfaces, and Inheritance
(due 9/27)
Wed 9/18 HFJ 200-229 Interfaces and Abstract Classes
Fri 9/20 HFJ 73-87 Interfaces and Abstract Classes
5 Mon 9/23 Examples: Comparable and Reader
Collections, Iterators, and Iterables [Project 0 (Signpost) due 9/23]
[HW3 due 9/27]
Wed 9/25 HFJ 228-229. 250-256, 316-348 Additional OOP Details, Exceptions
Fri 9/27 HFJ 154-160, 587-593, 665-668 Packages, Access, Loose Ends
6 Mon 9/30 AJR 6.3, 6.4, HFJ 274-310 Integers
Test review
Office Hours HW4: Scanners and Patterns
(due 10/14)
Wed 10/2 DSIJ Chapter 1 Integers
Thur 10/3 Test #1, 7-9PM
Fri 10/4 Complexity
7 Mon 10/7 DSIJ Chapters 2 and 3 Collections, Amortization
Bits and Algorithmic Analysis
Asymptotic Analysis [HW4 due 10/14]
HW5: Bit Operations, Asymptotic Analysis
(due 10/23)
Wed 10/9 DSIJ Chapter 4 Sequences, Some Design Patterns
Fri 10/11 Sequences (II)
8 Mon 10/14 DSIJ Chapter 5 Trees
More Algorithmic Analysis
Project 1 Workday Project 2: Tablut
(due 11/15)
Project 2 milestone
(due 11/8)
Wed 10/16 DSIJ Chapter 6 Tree searching
Fri 10/18 Game trees
9 Mon 10/21 DSIJ 6.4, 6.5 Priority Queues, Range Queries
Binary Trees
Heaps and Priority Queues [Project 1 (Enigma) due 10/21]
[HW5 due 10/23]
HW6: Searching: BSTs, Hashing
(due 10/30)
Wed 10/23 DSIJ Chapter 7 Hashing
Fri 10/25 AJR Chapter 10 Generics
10 Mon 10/28 DSIJ 8 Sorting
Heaps and Hashing
Debugging [HW6 due 10/30]
HW7: Sorting and Searching
(due 11/12)
Wed 10/30 Sorting (II)
Fri 11/1 sorting demos Sorting (III)
11 Mon 11/4 DSIJ 9
balanced-search demos
Balanced Search Structures
Testing Project [Project 2 checkpoint due 11/8]
Wed 11/6 Review
Wed 11/6 Test #2, 7-9PM
Fri 11/8 Balanced Search Structures (II)
12 Mon 11/11 Veterans Day: No classes Balanced Search
Project Office Hours [HW7 due 11/12]
[Project 2 (Tablut) due 11/15]
HW8: Graphs
(due 11/26)
Wed 11/13 DSIJ 11 Pseudo-Random Sequences
Fri 11/15 DSIJ 12 Graphs, Introduction, Traversals
13 Mon 11/18 A* Search, Minimal spanning trees, Union-find
Graphs Project 3: Gitlet
(due 12/11)
Project 3 milestone
(due 12/4)
Wed 11/20 Dynamic Programming, Git internals
Fri 11/22 DSIJ 10, HFJ pp. 489-516 Enumeration Types, Threads (extra material; no lecture)
14 Mon 11/25 Garbage Collection
A* Search
No labs [HW8 due 10/26]
Wed 11/27 No lecture
Fri 11/29 Thanksgiving Holiday
15 Mon 12/2 Slides from Josh Hug Compression (extra material; see 11/14 slides)
Fun and Review
Proj3 Work Day [Project 3 checkpoint due 12/4]
Wed 12/4 (See 11/19 slides)
Fri 12/6 Summary, Survey
16 Mon 12/9 RRR week No discussion section No labs [Project 3 (Gitlet) due 12/11]
Mon 12/11 RRR week
Mon 12/13 RRR week

Discussion and Lab Schedule

    Professor Hilfinger's office hours are in 787 Soda Hall. Feel free to drop by whenever the door is open. All other office hours are located in 109 Morgan.

Office Hour Schedule