Calendar, Notes, and Assignments

Date Subject Assignment
Week 1
Mon, Jun. 06 Course Intro
(In-class notes)
Tue, Jun. 07 Asymptotic and Amortized analysis; vectors
(In-class notes)
Assignment 1: Ordered arrays
Wed, Jun. 08 Linked lists
(In-class notes)
Thu, Jun. 09 Class canceled
Week 2
Mon, Jun. 13 Doubly-linked lists; Stacks and Queues; Assignment 2: Doubly-linked lists
Tue, Jun. 14 Recursion
Midterm 1 Review
Midterm 1 Practice
(Solutions)
Wed, Jun. 15 Midterm 1
Thu, Jun. 16 Quadratic sorting
Week 3
Mon, Jun. 20 Sub-quadratic sorting
Tue, Jun. 21 Binary search trees Assignment 3: Bitonic Mergesort
Wed, Jun. 22 More search trees
Thu, Jun. 23 Splay trees Assignment 4: Splay Trees
Midterm 2 Practice
(Solutions)
Week 4
Mon, Jun. 27 Midterm 2
Tue, Jun. 28 Hashing and hash tables Assignment 5: Testing Hash Functions
Wed, Jun. 29 More trees: binary heaps and disjoint sets Assignment 6: Disjoint Sets
Midterm 3 Practice
(Solutions)
Thu, Jun. 30 Midterm 3 review
Week 5
Mon, Jul. 04 Independence Day Holiday
Tue, Jul. 05 Midterm 3
Wed, Jul. 06 Graphs
Thu, Jul. 07 Weighted graph algorithms
Midterm 4 review
Assignment 7: Graphs
Midterm 4 Practice
(Solutions)
Week 6
Mon, Jul. 11 Midterm 4