CS 61B Data Structures, Spring 2015
Instructor: Josh Hug
Lecture 1: MWF, 2-3 PM, 1 Pimentel
Lecture 2: MWF, 11-12 PM, 150 Wheeler
Announcements
Date Announcement
4/6 Office hours on 4/6 will be held in 310 Soda until 5pm. They will be back in Bechtel from 5-6pm.
4/3 Midterm 2 is on Fri 4/3, 7-9 PM. You are allowed two double-sided crib sheets.
Your exam room is based on your Tele-BEARS enrolled lab section: 1 Pimentel (Labs 11-24), 155 Dwinelle (Labs 25-38), 145 Dwinelle (Labs 39-44).
4/2-4/3 April 2 & 3 labs are special midterm 2 themed office hours. There are also special project 2 help labs which will be prioritizing project 2 questions.
Check this Piazza post for more details on topics and lab schedules.
Calendar
Week Date Readings Lectures Discussions Labs Homework/Projects Exams
1 Mon 1/19 Academic Holiday Midterm 1:
Wed 2/18,
7-9 PM
(150 Wheeler, 1 Pimentel)
Wed 1/21 HFJ 1-26 Intro, Hello World Java
[video] [slides] [code]
Intro to Java javac, java, Git HW0: Optional Java Exercises
Fri 1/23 HFJ 27-36, 50-62, 72-79, 83-86 Defining and using classes
[video] [slides] [code]
2 Mon 1/26 HFJ 80-82, 9.2.2 and 9.2.3 References, Linked Lists
[video] [slides] [code]
Diagramming, Iterative vs. Recursive JUnit Testing
Wed 1/28 TDD is dead. Long live testing. Testing
[video] [slides] [code]
HW 1: NBody Simulation
Fri 1/30 AJR Section 6.3, HFJ pg. 660 Binary and Bits, A 61C Preview
[video] [slides] [code]
3 Mon 2/2 JRS notes Node lists, sentinel nodes.
[videos:(p1), (p2)] [slides] [code]
Arrays vs. Linked Lists Debugging, Doubly-Linked Lists
Wed 2/4 HFJ 670, 59-61, 83, 114-116 Arrays, For Loops
[video] [slides] [code]
HW 2: Bitwise Operators, Pointers, Linked Lists
Fri 2/6 wiki Resizing Arrays, Lists vs. Arrays
[video] [slides] [code]
4 Mon 2/9 HFJ 168-191, 208-218 Inheritance, Subtype Polymorphism
[video] [slides] [code]
Inheritance Project 0 Work Day
Wed 2/11 HFJ 197-207, 219-227 Abstract Classes, Interfaces
[video] [slides] [code]
Fri 2/13 Passably useful read Higher-Order Functions, Callbacks, Comparators/Comparables
[video] [slides] [code]
proj0
5 Mon 2/16 Academic Holiday
Wed 2/18 None Midterm 1 Review
[slides] [code]
Midterm 1 Review WeirdLists & OOP HW 3: Inheritance, HoF, Callbacks
Fri 2/20 HFJ Chapter 5, 6, esp 154-160, HFJ 587-590 Environment Variables, Packages, Java Libraries
[video] [slides] [code]
Midterm 2:
Fri 4/3,
7-9 PM
(1 Pimentel, 145/155 Dwinelle)
6 Mon 2/23 HFJ 131-137, 287-293, 529-550, 568-575 Generics, Conversion, Promotion
[video] [slides] [code]
Selecting ADTs HugLife
Wed 2/25 HFJ 319-337, JRS notes Exceptions, Iterator and Iterable
[video] [slides] [code]
HW 4: Packages
Fri 2/27 Revised JRS notes Java Loose Ends
[video] [slides] [code]
7 Mon 3/2 Algs 28-29, 64, 96-101, 105-106, 126-127 Encapsulation, Delegation vs. Extension
[video] [slides] [code]
Exceptions, Mutability, Design Project 1 Work Day
Wed 3/4 Algs 170-198 (top paragraph) Asymptotics I
[video] [slides] [guide]
HW 5: Generics
Fri 3/6 Algs 216-233 Disjoint Sets
[video] [slides] [guide]
8 Mon 3/9 Algs 170-198 Asymptotics II
[video] [slides] [guide]
Asymptotics Asymptotics
Wed 3/11 Algs 170-198 Asymptotics III
[video] [slides] [guide]
proj1
Fri 3/13 396-406 Binary Search Trees
[video] [slides] [guide]
9 Mon 3/16 424-431,
432-448 (extra)
Balanced BSTs
[video] [slides] [guide]
Trees, BSTs Project 2 Design Workshop
Wed 3/18 Algs 458-468, 478-479, 468-475 (extra) Hashing
[video] [slides] [guide]
HW 6: BSTs and Asymptotics
Fri 3/20 N/A Trees
[video] [slides] [guide]
Spring Break (March 23-27)
10 Mon 3/30 Algs 308-320 Heaps
[video, video (hug)] [slides] [guide]
Heaps & Hashing Debugging, Project 2 Work Day
Wed 4/1 Algs 244-250, 270-275, 323-327 Selection Sort, Heapsort
[video] [slides] [guide]
HW 7: Hashing
Fri 4/3 N/A
Midterm Review
[morning slides] [afternoon slides] [video]
11 Mon 4/6 Algs 250-263 Insertion Sort, Shell's Sort, Implementations
[video] [slides] [guide]
Sorting Project 2 Work Day Final Exam:
Tue 5/12,
11:30-2:30 PM or 7-10 PM
(Locations TBA)
Wed 4/8 Algs 288-302 Quicksort [video] [slides] [guide]
Fri 4/10 Algs 279-283, 341-344 Sorting Tradeoffs & Algorithmic Bounds
[video] [slides] [guide]
12 Mon 4/13 Algs 702-718 Radix Sorts
[video] [slides] [guide]
Bounds, Comparing Algorithms Sounds of Sorting proj2
Wed 4/15 Algs 730-752 Tries
[video] [slides] [guide]
Fri 4/17 Algs 515-537 Graphs Intro
[video] [slides] [guide]
13 Mon 4/20 Algs 538-542, 566-583 Graph Traversals
[video] [slides] [guide]
Graphs Graphs
Wed 4/22 Algs 638-657 DFS vs. BFS, Shortest Paths
[video] [slides] [guide]
Fri 4/24 Algs 604-630 Minimum Spanning Trees
[video] [slides] [guide]
HW 8: Sorting
14 Mon 4/27 N/A Compression
[video] [slides]
Fun Puzzles Project 3 Work Day
Wed 4/29 N/A Impossible and Intractable Problems
[slides] [video]
Fri 5/1 N/A Summary & Fun [slides] proj3
RRR Week (May 4-8)
Finals Week (May 11-15)
Lab/Discussion Schedule
Office Hour Schedule
Note: There are two standard locatons for office hours, both in Becthel (see map). When possible, we will use 240 Bechtel, but when that room is not available, we will use the Garbarini Lounge.
Office hours will be in 240 Bechtel on Monday 11-3 PM, Tuesday 11-4 PM, and Wednesday 11-5 PM. At all other times, it will be in the Garbarini Lounge.