CSCI-665: Foundations of Algorithms

RIT Department of Computer Science

Syllabus ----- Schedule

CSCI-665 Foundations of Algorithms Schedule

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

August 4, 2013
Sat Jan 17 16:51:54 EST 2015