CS 61B Data Structures, Fall 2019
Instructor: Paul Hilfinger
Lecture: MWF 5-6PM, Wheeler 150
Announcements [Past Announcements]
Date Category Announcement
11/18 Projects Project 3 (Gitlet) 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.
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, Ranges, and 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]
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
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: Sorting and Searching
(due 11/20)
[Project 2 checkpoint due 11/11]
[Project 2 (Tablut) due 11/15]
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 HW8: Graphs
(due 11/27)
Project 3: Gitlet
(due 12/11)
Project 3 milestone
(due 12/4)
Wed 11/20 Git internals
Fri 11/22 DSIJ 10, HFJ pp. 489-516 Dynamic Programming, Enumeration Types
14 Mon 11/25 Threads, Garbage Collection
A* Search
No labs [HW8 due 11/27]
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