CS 61B Data Structures, Fall 2018
Instructor: Paul Hilfinger
Lecture: MWF 12-1PM, Wheeler 150
Announcements [Past Announcements]
Date Category Announcement
11/15 Projects Project 3 now available.
9/6 Misc Signups for CS 370 one-on-one tutoring available. See the Piazza post linked to this announcement.
9/3 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. See also the Piazza post linked to from this announcement.
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.
8/23 Admin Tests will be as follows:
  • Test #1: Thursday, 27 September 2018 7-9PM
  • Test #2: Thursday, 1 November 2018 8-10PM
  • Final: Friday, 14 December 2018 11:30AM-2:30PM
8/24 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.
8/23 Admin To join the Piazza page for CS 61B, head over to this this link. The access code is 61bfa18.
8/23 Admin The Scores tab above will show you what you have submitted and any logs produced by the autograder.
8/17 Admin You can now sign up for a lab and discussion time using this sign-up link. You can use the link now to see what times and dates will be available. Sign-ups are on a first-come-first-served basis. Waitlisted students are included, but will be dropped if they are unable to get off the lecture waitlist and enroll in the course. Students who are not able to fit into a lab or discussion can nevertheless attend, but only if there is room.
8/02 Admin You will need a CS61B Unix account to hand in your work and receive grades, among other things. You can get one by clicking here.
8/02 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/20 No classes No discussion section javac, java, git HW0: A Few Java Exercises
(due 8/31)
Wed 8/23 HFJ 1-26 Intro, Hello World Java
Fri 8/24 AJR 1.1-1.9 A Little Programming
2 Mon 8/27 HFJ 50-62 Developing a Sort, Unit Testing
Intro to Java
IntelliJ and IntLists HW1: JUnit testing, basic syntax, and linked lists
(due 9/10)
Project 0: Galaxies
(due 9/17)
Wed 8/29 HFJ 27-36. AJR Chapter 4 Values and Containers
Fri 8/31 Simple Pointer Manipulation
3 Mon 9/3 No classes Pointers
IntDLists and Debugging
Wed 9/5 HFJ 670 Arrays
Fri 9/7 HFJ 73-87 Object-Based Programming
4 Mon 9/10 HFJ 168-191, 236-265, 287-293 Object-oriented Mechanisms
More objects and arrays
Mostly Proj0 Project 1: The Enigma
(due 10/12)
HW2: Arrays and Lists of Lists
(due 9/21)
Wed 9/12 HFJ 200-229 Interfaces and Abstract Classes
Fri 9/14 HFJ 73-87 Interfaces and Abstract Classes
5 Mon 9/17 Examples: Comparable and Reader
Collections, Iterators, and Iterables HW3: OOP, Interfaces, and Inheritance
(due 10/2)
Wed 9/19 HFJ 316-348 Exceptions
Fri 9/21 HFJ 154-160, 587-593, 665-668 Packages, Access, Etc.
6 Mon 9/24 AJR 6.3, 6.4, HFJ 274-310 Integers
Test review
Office Hours
Wed 9/26 DSIJ Chapter 1 Integers
Fri 9/28 Complexity
7 Mon 10/1 DSIJ Chapters 2 and 3 Collections, Amortization
Bits and Algorithmic Analysis
Asymptotic Analysis HW4: Scanners and Patterns
(due 10/9)
Wed 10/3 DSIJ Chapter 4 Sequences, Some Design Patterns
Fri 10/5 Sequences (II)
8 Mon 10/8 DSIJ Chapter 5 Trees
More Algorithmic Analysis
Project 1 Workday Project 2: Amazons
(due 11/9)
Project 2 milestone
(due 10/30)
HW5: Bit Operations, BSTs, and Asymptotic Analysis
(due 10/22)
Wed 10/10 DSIJ Chapter 6 Tree searching
Fri 10/12 Game trees
9 Mon 10/15 DSIJ 6.4, 6.5 Priority Queues, Range Queries
Binary Trees
Heaps and Priority Queues
Wed 10/17 DSIJ Chapter 7 Hashing
Fri 10/19 AJR Chapter 10 Generics
10 Mon 10/22 DSIJ 8 Sorting
Heaps and Hashing
Debugging HW6: Hashing and Ranges
(due 10/29)
Wed 10/24 Sorting (II)
Fri 10/26 sorting demos Sorting (III)
11 Mon 10/29 DSIJ 9
balanced-search demos
Balanced Search Structures
Testing Project
Wed 10/31 Review
Fri 11/2 Balanced Search Structures (II)
12 Mon 11/5 DSIJ 11 Pseudo-Random Sequences
Balanced Search
Project Office Hours HW7: Sorting and Searching
(due 11/27)
Wed 11/7 DSIJ 12 Graphs, Introduction, Traversals
Fri 11/9 A* Search, Minimal spanning trees, Union-find
13 Mon 11/12 Veterans Day: No classes Graphs
Graphs Project 3: Fun With Graphs
(due 12/5)
Project 3 milestone
(due 11/30)
Wed 11/14 Dynamic Programming, Git internals
Fri 11/16 DSIJ 10, HFJ pp. 489-516 Enumeration Types, Threads (extra material; no lecture)
14 Mon 11/19 Garbage Collection (moved to 11/28)
A* Search
HW8: Graphs
(due 12/7)
Wed 11/21 No lecture
Fri 11/23 Thanksgiving Holiday
15 Mon 11/26 Slides from Josh Hug Compression (extra material; see 11/14 slides)
Fun and Review
Proj3 Work Day
Wed 11/28 (See 11/19 slides)
Fri 11/30 Summary, Survey

Discussion and Lab Schedule

Office Hour Schedule