**
RIT Department of Computer Science
**

RIT Academic Calendar

Week |
Topics |
Homework |
Reading |
Special Events and Due Dates |

1 | Introduction, asymptotic notation, analyzing running times | |||

2 | O(n) and O(n log n) algorithms: Karatsuba, mergesort | |||

3 | Introduction to recurrences, Master Theorem | Homework 1 due | ||

4 | Omega(n log n) lower bound on sorting, linear-time k-Select algorithm | |||

5 | Greedy vs (simple) dynamic programming algorithms | Homework 2 due | ||

6 | Greedy vs dynamic programming algorithms (simple and with an added variable): variants of coin changing, knapsack | |||

7 | Greedy vs dynamic programming algorithms (simple and with an added variable): sequence problems (longest increasing, longest common) | Homework 3 due | ||

8 | Greedy vs dynamic programming algorithms (subproblem defined by "from-to" indices): Huffman coding, matrix-chain multiplication | Midterm exam | ||

9 | Graphs: traversals and their applications: connected components, topological sort, etc. | |||

10 | Graphs: minimum spanning trees: Kruskal, Prim, union-find data structure | Homework 4 due | ||

11 | Graphs: shortest paths: Dijkstra, Floyd-Warshall, Bellman-Ford | |||

12 | Graphs: network flow | |||

13 | NP-completeness | Homework 5 due | ||

14 | NP-completeness continued, introduction to linear programming | Project due | ||

15 | Approximation algorithms and heuristics | Homework 6 due | ||

16 | Review, other topics, e.g., advanced data structures, pattern matching, or randomized algorithms | Final exam | ||

updated:

August 4, 2013

Sat Jan 17 16:51:54 EST 2015