Syllabus and course info

Class links

Calendar, Notes, and Assignments

Date Subject Assignment
Week 1
Mon, Jul. 06 Course Intro; C++ review 'Assignment 0' — General notes on all assignments
Tue, Jul. 07 Asymptotic and Amortized analysis; vectors Assignment 1 — Ordered Arrays
Wed, Jul. 08 Linked lists and other seq. structures
Thu, Jul. 09 Doubly-linked lists; Stacks and Queues;
Week 2
Mon, Jul. 13 Midterm 1 Review Assignment 2 — Doubly-linked lists
Tue, Jul. 14 Midterm 1
Wed, Jul. 15 Recursion Midterm 1 Practice Test
(Solutions)
Thu, Jul. 16 Quadratic sorting
Week 3
Mon, Jul. 20 Sub-quadratic sorting
Tue, Jul. 21 Binary search trees
Wed, Jul. 22 More search trees
Thu, Jul. 23 Splay trees Assignment 3 — Mergesort on linked lists
Week 4
Mon, Jul. 27 Midterm 2
Tue, Jul. 28 Hashing and hash tables
Wed, Jul. 29 More trees: binary heaps and disjoint sets Assignment 4 — AVL trees
Midterm 2 Practice Test
(Solutions)
Thu, Jul. 30 Midterm 3 review
Week 5
Mon, Aug. 03 Midterm 3 Assignment 5 — Testing hash functions
Tue, Aug. 04 Graphs Assignment 6 — Disjoint Sets
Midterm 3/4 Practice Test
(Solutions)
Wed, Aug. 05 Weighted graph algorithms
Midterm 4 review
Thu, Aug. 06 Midterm 4