CS 61B Data Structures, Fall 2016
Instructor: Paul Hilfinger
Lecture: MWF 3-4 PM, Dwinelle 155
Announcements [Past Announcements]
Date Category Announcement
11/17 Projects Project 3 and its skeleton are now released. You should also update your copy of cs61b-software by going into that directory and issuing
    git pull --rebase
There are several project 3-related .jar files in this new version. They allow you to test parts of your code against parts of our solutions.
11/7 Projects The git-bug command (available on the instructional machines and in cs61b-software) will send us a useful bug report including 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 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.
9/9 Admin The new "Scores" tab on the toolbar at the top of this page shows you your current grades (when there are some anyway), submissions, and (where the autograder is running) links to logs produced by the grading scripts.
Calendar
Legend:
Week Date Reading Lecture Discussion Lab Assignments/Exams
1 Mon 8/22 No classes No discussion section javac, java, git HW0: A Few Java Exercises
(due 9/2)
Wed 8/24 HFJ 1-26 Intro, Hello World Java
[slides]
Fri 8/26 AJR 1.1-1.9 A Little Programming
[slides][code]
2 Mon 8/29 HFJ 50-62 Developing a Sort, Unit Testing
[slides][code]
Intro to Java
[Solution]
IntLists and GJDB HW1: JUnit testing, basic syntax, and linked lists
(due 9/9)

Miniproject 0: Cube Puzzle
(due 9/19)
Wed 8/31 HFJ 27-36. AJR Chapter 4 Values and Containers
[slides][code]
Fri 9/2 Simple Pointer Manipulation
[slides][code]
3 Mon 9/5 No classes Pointers
[Solution]
DblIntLists and Collections (+IntelliJ)
Wed 9/7 HFJ 670 Arrays
[slides][code]
Fri 9/2 HFJ 73-87 Object-Based Programming
[slides][code]
4 Mon 9/12 HFJ 168-191, 236-265, 287-293 Object-oriented Mechanisms
[slides]
More objects and arrays
[Solution]
Mostly Miniproj0 Project 1: The Enigma
(due 10/10)

HW2: Arrays and Lists of Lists
(due 9/23)
Wed 9/14 HFJ 200-229 Interfaces and Abstract Classes
[slides]
Fri 9/16 HFJ 73-87 Interfaces and Abstract Classes
[slides][code]
5 Mon 9/19 Examples: Comparable and Reader
[slides][code]
Inheritance
[Solution]
Collections, Iterators, and Iterables HW3: OOP, Interfaces, and Inheritance
(due 9/30)
Wed 9/21 HFJ 316-348 Exceptions
[slides]
Fri 9/28 HFJ 154-160, 587-593, 665-668 Packages, Access, Etc.
[slides]
6 Mon 9/26 AJR 6.3, 6.4, HFJ 274-310 Numbers
[slides]
Test review
[Solution]
Getting started on Proj1
Wed 9/28 DSIJ Chapter 1 Complexity
[slides]
Fri 9/30 Complexity
7 Mon 10/3 DSIJ Chapters 2 and 3 Collections, Amortization
[slides]
Bits and Algorithmic Analysis
[Solution]
HW4: Scanners and Patterns
(due 10/14)
Wed 10/5 DSIJ Chapter 4 Sequences, Some Design Patterns
[slides][code]
Fri 10/7 Sequences (II)
8 Mon 10/10 DSIJ Chapter 5 Trees
[slides]
More Algorithmic Analysis
[Solution]
Competition Problems Project 2: Ataxx
(due 11/10)

HW5: Bit Operations, BSTs, and Asymptotic Analysis
(due 10/21)
Wed 10/12 DSIJ Chapter 6 Tree searching
[slides][code]
Fri 10/14 Game trees
[slides]
9 Mon 10/17 DSIJ 6.4, 6.5 Priority Queues, Range Queries
[slides]
Binary Trees
[Solution]
Priority Queues and Debugging
Wed 10/19 DSIJ Chapter 7 Hashing
[slides]
Fri 10/21 AJR Chapter 10 Generics
[slides]
10 Mon 10/24 DSIJ 8 Sorting
[slides]
Hashing and Review
[Solution]
More Debugging HW6: Hashing and Ranges
(due 11/4)
Wed 10/26 Sorting (II)
[slides]
Fri 10/21 sorting demos Sorting (III)
[slides]
11 Mon 10/31 DSIJ 9
balanced-search demos
Balanced Search Structures
[slides]
Sorting
[Solution]
Testing Ataxx
Wed 11/2 Balanced Search Structures (II)
[slides]
Fri 11/04 Probablistic Search Structure
12 Mon 11/7 DSIJ 11 Pseudo-Random Sequences
[slides]
Balanced Search
[Solution]
Balanced Search Trees HW7: Sorting
(due 11/22)
Wed 11/9 DSIJ 12 Graphs, Introduction
[slides]
Fri 11/11 Veterans Day: No classes
13 Mon 11/14 Graph Traversals
[slides]
Graphs
[Solution]
Graphs Project 3: Fun with Graphs
(due 12/7)
Wed 11/16 A* Search, Minimal spanning trees, Union-find
[slides]
Fri 11/18 Dynamic Programming, Git internals
[slides]
14 Mon 11/21 Git internals A* Search
[Solution]
HW8: Graphs
(due 12/2)
Wed 11/23 No lecture
Fri 11/25 Thanksgiving Holiday
15 Mon 11/28 Slides from Josh Hug Compression
[slides]
Fun and Review
[Solution]
Wed 11/30 Garbage Collection
[slides]
Fri 12/2 Summary, HKN
[slides]

Lab/Discussion Schedule

Office Hour Schedule