Syllabus and course info

Class links

Calendar, Notes, and Assignments

Date Subject Assignment
Week 1
Mon, Aug. 24 Course intro; C++ review
Wed, Aug. 26 C++ review continued
Week 2
Mon, Aug. 31 Basic algorithmic analysis
Wed, Sep. 02 Amortized analysis; vectors and push_back
Week 3
Mon, Sep. 07 Labor Day Holiday
Wed, Sep. 09 Doubly- and singly- linked lists; list algorithms and complexity
Week 4
Mon, Sep. 14 Linked lists continued
Wed, Sep. 16 Stacks and queues; deques
Week 5
Mon, Sep. 21 Midterm 1 review
Wed, Sep. 23 Midterm 1
(Lecture source code to-date)
Week 6
Mon, Sep. 28 Midterm 1 recap (may be postponed)
Wed, Sep. 30 Recursion
Week 7
Mon, Oct. 05 Sorting algorithms: quadratic and subquadratic algo.
Wed, Oct. 07 Subquadratic sorting; Maps: binary search trees
Week 8
Mon, Oct. 12 Balanced trees: AVL and splay trees
Wed, Oct. 14 More balanced trees
Week 9
Mon, Oct. 19 More balanced trees
Wed, Oct. 21 Midterm 2 review
Week 10
Mon, Oct. 26 Midterm 2
Wed, Oct. 28 Midterm 2 recap
Week 11
Mon, Nov. 02 Hashing and hash tables
Wed, Nov. 04 Hashing continued
Week 12
Mon, Nov. 09 Heaps: priority queues and heap sort
Wed, Nov. 11 Veterans' Day Holiday
Week 13
Mon, Nov. 16 Disjoint sets
Wed, Nov. 18 Midterm 3 review
Week 14
Mon, Nov. 23 Midterm 3
Wed, Nov. 25 Graphs; graph representations; directed acyclic graphs
Week 15
Mon, Nov. 30 Graph algorithms: depth-first and breadth-first search
Wed, Dec. 02 Advanced Topics: Parallelism and Multithreading
Week 16
Mon, Dec. 07 Midterm 4 Review
Wed, Dec. 09 Midterm 4/Final exam