CS 61B Data Structures, Spring 2017
Instructor: Josh Hug
Lecture: MW 3-4 PM, Pauley Ballroom; F 3-4 PM, 320 Hertz Hall
Did you find a typo or bug in a lab, homework, or project? Was there something that was confusing or unclear? Let us know how we can improve our assignments by submitting suggestions. We also welcome positive feedback. Let us know if you particularly liked something.
Quick Navigation
Number Title Concepts Due
1 javac, java, Git Compilation, version control systems, Git, submission process Fri 1/27, 5:00 PM
Setting Up Your Computer Installing Java, setting PATH variable N/A
2 IDEs IntelliJ, debuggers, pass-by-value, IntLists, destructive vs. non-destructive Fri 1/27, 5:00 PM
IntelliJ Home Setup IntelliJ, setting up projects N/A
3 Testing, Debugging JUnit, unit testing, debugging, style checker Fri 2/3, 5:00 PM
4 Peer Code Review Project 1A peer code review Fri 2/10, 5:00 PM
5 Getting Started: Proj 2 Giving you tips and ideas for tackling proj2 Fri 2/19, 5:00 PM
6 Project 2 Design Review Design review for proj2 Fri 2/26, 5:00 PM
7 Project 2 Work Day N/A N/A
8 Tree Maps BST's, Maps Fri 3/10, 5:00 PM
9 Hash Maps Hashing, Hash Maps Fri 3/17, 5:00 PM
10 Heap Min PQ Heaps, Priority Queues Fri 3/24, 5:00 PM
11 Midterm 2 Reviews N/A N/A
12 Merge and Quick Sort Merge sort, Quicksort Fri 4/14, 5:00 PM
13 Radix Sort Radix sort Fri 4/21, 5:00 PM
14 Fractal Sound Make music with bitwise operations Fri 4/28, 5:00 PM
15 Hug Life Ecosystem simulation Fri 5/5, 5:00 PM
Number Title Concepts Due Date
0 A Java Crash Course (Optional) Java practice N/A
1 Java Syntax and Sound Synthesis Java practice Wed 2/22, 11:59 PM
2 Percolation Disjoint sets Wed 3/15, 11:59 PM
3 8 Puzzle A* Search Thur 3/23, 11:59 PM
4 Hashing Priority queues Mon 4/6, 11:59 PM
5 Seam Carving Dynamic Programming Wed 4/26 11:59 PM
6 Boggle Tries, Search Sat 5/6, 11:59 PM
7 Compression Tries, Compression Sat 5/6, 11:59 PM
Number Title Creators Category Weight Due Date
0 NBody Josh Hug Final 25 Points Fri 1/27, 11:59 PM
1 Data Structures Josh Hug Part 1A: Data Structures 40 Points Fri 2/3, 11:59 PM
Part 1B: Testing Fri 2/10, 11:59 PM
2 Database Matt Mussomele Final 100 Points Mon 3/6, 11:59 PM
3 BearMaps Alan Yao Final 75 Points Wed 4/19, 11:59 PM
Discussion Handouts
Number Title Concepts Solutions
1 Intro, Code Translation Intro to Java Solution
2 Scope, Pass-by-Value, Static Pass by value, Static methods and fields, Linked lists, Destructive/Non-Destructive operations Solution
3 Linked Lists and Arrays Linked Lists, Arrays Solution
4 Inheritance Inheritance, Static vs. Dynamic Type, Overriding Methods, Dynamic Method Lookup Solution
Exam Prep 4 Linked Lists, Inheritance, Static vs. Dynamic Type, Casting Solution
5 Midterm 1 Review N/A N/A
6 Selecting ADTs Using and Implementing Abstract Data Types Solution
Exam Prep 6 TBA Solution
7 Asymptotic Analysis I
Intro to big theta, O, and omega, Analyzing runtime in loops, Interview questions Solution
Exam Prep 7 TBA Solution
8 Asymptotic Analysis II Analyzing recursive code Solution
Exam Prep 8 TBA Solution
9 Hashing Asymptotic analysis (II), Analyzing Runtime Solution
Exam Prep 9 TBA Solution
10 Heaps and Graphs Basic heap operations, Graph representation, Bipartite graphs Solution
Exam Prep 10 TBA Solution
11 Graphs DFS, BFS, Topological sort, Regex Solution
Exam Prep 11 TBA Solution
12 Graphs, Sorting Disjkstra's algorithm, A*, MST, Insertion sort, Selection sort, Merge sort, Heapsort Solution
Exam Prep 12 TBA Solution
13 More Sorting Quicksort, Comparing different sorts Solution
Exam Prep 13 TBA Solution
Guerrilla Sections
Title Concepts Solutions
Section 1 Java Syntax, Pass-By-Value, Linked Lists, Arrays Solution
Section 2 ALists, OOP, Abstract Classes, Interfaces, HOF Solution
Section 3 ADTs, Iterators, Exceptions, Delegation vs. Extension, Generics Solution
Section 4 Asymptotic Analysis, Disjoint Sets, Trees Solution
Section 5 Hashing, Heaps, More Trees Solution
Section 6 Sorting and Graphs Solution
Section 7 Final Review Solution
Group Tutoring Sections
Title Concepts Solutions
Week 3 (Alternate) Arrays, Recursion, Pointers Solution (Alternate)
Week 4 Reference, Polymorphism Solution
Week 5 Abstract Classes, Interfaces Solution
Week 6 Problem Solving with ADTs Solution
Week 7 Exceptions, Iterators Solution
Week 8 Asymptotic Analysis Solution
Week 9 Binary Trees Solution
Week 10 Hashing, Heaps Solution
Week 11 Graphs, Searches Solution
Week 12 MSTs, Graph Algorithsm Solution
Week 13 Sorting Algorithms Solution
Week 14 Counting Sorts, Tries Solution
Exam Concepts Solutions
Midterm 1 Java syntax, Array, Linked list, OOP, Inheritance, Dynamic method lookup, Interface Solution
Midterm 2 Hash Maps, Heaps, Disjoint Sets, Asymptotics, Trees, Data Structure and Algorithm Selection and Design, Regex Solution
Past Exams
Exam Instructor Concepts Solutions
Fall 2016 Midterm 1 Paul Hilfinger IntLists, Arrays, Testing, Interface, Inheritance Solution
Spring 2016 Midterm 1 Josh Hug IntLists, Static Keyword, Pointers, Inheritance, SLists, Bits, Higher Order Functions, Arrays Solution
Fall 2015 Midterm 1 Paul Hilfinger IntLists, Arrays, Bits, Regex, Interface, Inheritance Solution
Spring 2015 Midterm 1 Josh Hug IntLists, Debugging, SSList, Bits, Higher Oder Functions, Interface, Inheritance, Static Solution
Fall 2016 Midterm 2 Paul Hilfinger Asymptotic Analysis, Minimax, Alpha-Beta Pruning, BST, Hash table, Regex, Bitwise Operations, Interface Solution
Spring 2016 Midterm 2 Josh Hug BST, Hash Table, Union-Find, Exceptions, Asymptotic Analysis, Balanced Trees Solution
Fall 2015 Midterm 2 Paul Hilfinger TBA Solution
Spring 2015 Midterm 2 Josh Hug BST, Heap, Hashing, Asymptotic Analysis, Exceptions, Red Black Trees Solution
Spring 2016 Final Josh Hug Graph, Sorting, Asymptotic Analysis, Trees, Dijkstra's Algorithm, Heap, JUnit Testing, Dynamic Programming, Tries Solution
Spring 2015 Final Josh Hug Kruskal's Algorithm, Asymptotic Analysis, Compare Data Structures, Sorting, A*, Hashing, Radix and bits Solution