CS 61B Data Structures, Fall 2019
Instructor: Paul Hilfinger
Lecture: MWF 5-6PM, Wheeler 150
Announcements [Past Announcements]
Date Category Announcement
10/22 Projects Project 2 (Tablut) 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.
Calendar
Legend:
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
[slides]
Fri 8/30 AJR 1.1-1.9 A Little Programming
[slides][code]
2 Mon 9/2 No classes Intro to Java
[Solution]
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
[slides][code]
Fri 9/6 Simple Pointer Manipulation
[slides][code]
3 Mon 9/9 HFJ 670 Arrays
[slides][code]
Pointers
[Solution]
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
[slides][code]
Fri 9/13 HFJ 73-87 Object-Based Programming
[slides][code]
4 Mon 9/16 HFJ 168-191, 236-265, 287-293 Object-oriented Mechanisms
[slides]
More objects and arrays
[Solution]
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
[slides]
Fri 9/20 HFJ 73-87 Interfaces and Abstract Classes
[slides][code]
5 Mon 9/23 Examples: Comparable and Reader
[slides][code]
Inheritance
[Solution]
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
[slides]
Fri 9/27 HFJ 154-160, 587-593, 665-668 Packages, Access, Loose Ends
[slides]
6 Mon 9/30 AJR 6.3, 6.4, HFJ 274-310 Integers
[slides]
Test review
[Solution]
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
[slides]
7 Mon 10/7 DSIJ Chapters 2 and 3 Collections, Amortization
[slides]
Bits and Algorithmic Analysis
[Solution]
Asymptotic Analysis [HW4 due 10/14]
HW5: Bit Operations, Asymptotic Analysis
(due 10/23)
Wed 10/9 DSIJ Chapter 4 Sequences, Some Design Patterns
[slides][code]
Fri 10/11 Sequences (II)
8 Mon 10/14 DSIJ Chapter 5 Trees
[slides]
More Algorithmic Analysis
[Solution]
Project 1 Workday Project 2: Tablut
(due 11/15)
Project 2 milestone
(due 11/8)
Wed 10/16 DSIJ Chapter 6 Tree searching
[slides][code]
Fri 10/18 Game trees
[slides]
9 Mon 10/21 DSIJ 6.4, 6.5 Priority Queues, Range Queries
[slides]
Binary Trees
[Solution]
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
[slides]
Fri 10/25 AJR Chapter 10 Generics
[slides]
10 Mon 10/28 DSIJ 8 Sorting
[slides]
Heaps and Hashing
[Solution]
Debugging [HW6 due 10/30]
Wed 10/30 Sorting (II)
[slides]
Fri 11/1 sorting demos Sorting (III)
[slides]
11 Mon 11/4 DSIJ 9
balanced-search demos
Balanced Search Structures
[slides]
Sorting
[Solution]
Testing Project
Wed 11/6 Review
Wed 11/6 Test #2, 7-9PM
Fri 11/8 Balanced Search Structures (II)
[slides]
12 Mon 11/11 Veterans Day: No classes Balanced Search
[Solution]
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
[slides]
Fri 11/15 DSIJ 12 Graphs, Introduction, Traversals
[slides]
13 Mon 11/18 A* Search, Minimal spanning trees, Union-find
[slides]
Graphs
[Solution]
Graphs HW8: Graphs
(due 11/27)
Project 3: Gitlet
(due 12/11)
Project 3 milestone
(due 12/4)
Wed 11/20 Dynamic Programming, Git internals
[slides]
Fri 11/22 DSIJ 10, HFJ pp. 489-516 Enumeration Types, Threads (extra material; no lecture)
[slides]
14 Mon 11/25 Garbage Collection
[slides]
A* Search
[Solution]
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)
[slides]
Fun and Review
[Solution]
Proj3 Work Day [Project 3 checkpoint due 12/4]
Wed 12/4 (See 11/19 slides)
Fri 12/6 Summary, Survey
[slides]
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