Calendar, Notes, and Assignments

Date Subject Assignment
Week 1
Tue, Jan. 24 Course intro; C++ review
Thu, Jan. 26 C++ review continued
Week 2
Tue, Jan. 31 Basic algorithmic analysis Assignment 1
Due Feb 14
Thu, Feb. 02 Amortized analysis; vectors and push_back
Week 3
Tue, Feb. 07 Doubly- and singly- linked lists; list algorithms and complexity
Thu, Feb. 09 Linked lists continued
Week 4
Tue, Feb. 14 Linked lists continued Assignment 2
Due Feb 28
Thu, Feb. 16 Stacks and queues; deques
Week 5
Tue, Feb. 21 Midterm 1 review Midterm 1 Practice Test
(Solutions)
Thu, Feb. 23 Midterm 1
(Lecture source code to-date)
Week 6
Tue, Feb. 28 Midterm 1 recap (may be postponed)
Thu, Mar. 02 Recursion
Week 7
Tue, Mar. 07 Sorting algorithms: quadratic and subquadratic algo.
Thu, Mar. 09 Subquadratic sorting; Maps: binary search trees
Week 8
Tue, Mar. 14 Balanced trees: AVL and splay trees
Thu, Mar. 16 More balanced trees Assignment 3
Due Mar 30
Week 9
March 20 — 24 Spring Recess
March 20 — 24 Spring Recess
Week 10
Tue, Mar. 28 More balanced trees
Thu, Mar. 30 Midterm 2 review
Week 11
Tue, Apr. 04 Midterm 2 Assignment 4 Due Apr 18
Midterm 2 Practice Test
(Solutions)
Thu, Apr. 06 Midterm 2 recap
Week 12
Tue, Apr. 11 Hashing and hash tables
Thu, Apr. 13 Hashing continued
Week 13
Tue, Apr. 18 Heaps: priority queues and heap sort
Thu, Apr. 20 Disjoint sets Assignment 5
Due May 4
Week 14
Tue, Apr. 25 Midterm 3 review
Thu, Apr. 27 Midterm 3 Assignment 6 Due May 11
Midterm 3 Practice Test (Solutions)
Week 15
Tue, May. 02 Midterm 3 recap
Thu, May. 04 Graphs; graph representations; directed acyclic graphs
Week 16
Tue, May. 09 Graph algorithms: depth-first and breadth-first search
Thu, May. 11 Advanced Topics: Parallelism and Multithreading
Week 17
Tue, May. 16 Midterm 4 Review Assignment 7 Due May 19
Midterm 4 Practice Test (Solutions)
Thu, May. 18 Midterm 4/Final exam