Schedule

A week-by-week breakdown of the material.

Week 1 (01/08-01/12)

Mon

Introduction to Algorithms (1.1, 1.2, 1.3)

Activity Sheet

Wed

Brief intro to Java

Lab Assignment 1

Fri

Continue Lab Assignment 1

Review of Data Structures

Week 2 (01/15-01/19)

Mon
Activity Sheet 1
Wed

Analysis Framework and Asymptotic Notation (2.1, 2.2)

Activity Sheet 2

Fri

Analysis of nonrecursive algorithms (2.3)

Activity Sheet 3

Lab Assignment 1 due

Week 3 (01/22-01/26)

Mon

Analysis of recursive algorithms (2.4)

Homework 1 Due

Wed

Brute-Force Algorithms (3.1)

Activity Sheet 4

Fri
Exhaustive Search (3.4)

Week 4 (01/29-02/02)

Mon
Depth-first search (3.5)
Wed

Depth-first search cont (3.5)

Activity Sheet 5

Lab Assignment 2: Graph search

Fri

Breadth-first search (3.5)

Decrease-by-one algorithms: Insertion Sort (4.1)

Week 5 (02/05-02/09)

Mon

Decrease-by-one algorithms: Topological Sort (4.2)

Activity Sheet 6

Homework 2 Due

Wed
Decrease-by-one algorithms: Topological Sort (4.2)
Fri

Decrease-by-constant-factor algorithms (4.4)

Activity Sheet 7

Week 6 (02/12-02/16)

Mon
Midterm 1 (Chapters 1-4)
Wed

Divide-and-conquer algorithms: Mergesort (5.1)

Activity Sheet 8

Fri

Discussion of the Master Theorem

Lab Assignment 3: Topological Sort

Week 7 (02/19-02/23)

Mon

Divide-and-conquer algorithms: Quicksort (5.2)

Activity Sheet 9

Wed

Binary Tree Traversals (5.3)

Activity Sheet 10

Fri

Instance simplification algorithms (6.1)

Activity Sheet 11

Week 8 (02/26-03/02)

Mon
BREAK
Wed
BREAK
Fri
BREAK

Week 9 (03/05-03/09)

Mon
Balanced Search Trees (6.3)
Wed

Balanced Search Trees (6.3)](notes/balanced_search_trees.md)

Activity Sheet 12

Fri

Representation change: Heaps and Heapsort (6.4)

Activity Sheet 13

Homework 3 Due

Week 10 (03/12-03/16)

Mon
Space-time tradeoffs: Hashing (7.3)
Wed

Dynamic Programming Algorithms (8.1)

Activity Sheet 14

Fri

Dynamic Programming, continued

Lab Assignment 4

Week 11 (03/19-03/23)

Mon
Dynamic Programming: Knapsack, Optimal Binary Search Trees (8.2, 8.3)
Wed
Greedy Algorithms: Prim’s Algorithm (9.1)
Fri
Midterm 2 (Chapters 5-7)

Week 12 (03/26-03/30)

Mon

Greedy Algorithms: Kruskal’s, Union-Find (9.2)

Activity Sheet 15

Wed

Greedy Algorithms: Kruskal’s, Union-Find (9.2)

Lab Assignment 4 Due

Fri
Greedy Algorithms: Dijkstra (9.3)

Week 13 (04/01-04/06)

Mon

Limitations of Algorithm Power (11.1)

Activity Sheet 16

Wed

Decision Trees (11.2)

Activity Sheet 17

Lab Assignment 5

Fri
P, NP and NP-Complete Problems (11.3)

Week 14 (04/09-04/13)

Mon
Backtracking (12.1)
Wed

Branch-and-bound(12.2)

Iterative Improvement: Maximum Bipartite Matching (10.3)

Fri

Review (Final on chapters 8,9,12)

Lab Assignment 5 Due