1/10 | Introduction to the course, computing Fibonacci numbers, review of big Oh notation |
1/12 | Read Sections 1.1 and 1.2 Modular arithmetic Programming Assignment 1 posted on Sakai |
1/17 | Read Section 1.3 Primality testing |
1/19 | Read Section 1.4 Cryptography and RSA |
1/24 | Finish up RSA |
1/26 | Read Sections 2.1-2.2
Multiplication and recurrence relations Programming Assignment 1 Due |
1/31 | Read Sections 2.3-2.4 Mergesort and medians |
2/2 | Read Section 2.5
Matrix multiplication Quiz 1 in class |
2/7 | Read Sections 3.1-3.3 Graphs and DFS |
2/9 | Algorithms using DFS Homework 1 Due |
2/14 | Read Sections 4.1-4.2 DFS and BFS |
2/16 | Read Section 4.3-4.4
Dijkstra's Algorithm Quiz 2 in class |
2/21 | Read Section 5.1
Minimum Spanning Tree |
2/23 | Read Section 5.4
Set Cover Programming Assignment 2 Due |
2/28 | Midterm Review |
3/2 | IN-CLASS MIDTERM |
3/7 | Spring Break |
3/9 | Spring Break |
3/14 | Read Sections 6.1-6.2
Elements of DP and Longest Increasing Subsequence |
3/16 | Read Section 6.3
Edit Distance and Longest Common Subsequence Quiz 3 in class |
3/21 | Read Sections 6.4-6.5
Knapsack and Chain Matrix Multiplication |
3/23 | Read Section 6.6
Floyd-Warshall - All-Pairs Shortest Paths Homework 2 Due 3/24 |
We will be using an alternate textbook for this section: CLRS - Chapter 27
3/28 | Read Section 27.1
Parallel Random Access Machine model |
3/30 | Read Section 27.2
Multithreaded matrix multiplication Quiz 4 in class |
4/4 | Read Section 27.3
Multithreaded mergesort |
4/6 | Memory models and data movement
Programming Assignment 3 Due |
4/11 | Read Sections 8.1-8.2
P vs NP and NP-complete problems |
4/13 | Read Section 8.3
Reductions Quiz 5 in class |
4/18 | Read Section 9.1
Coping with NP-completeness |
4/20 | Read Section 9.2
Approximation algorithms Homework 3 Due |
4/25 | Final Review (last day of class) |
4/29 | FINAL EXAM (9am) |