CSC 411 Analysis of Algorithms
Official Course Description
This course presents the fundamental techniques for designing efficient computer algorithms, providing correctness, and analyzing the complexity of algorithms. General topics include methods for expressing and comparing the complexity of algorithms: worst and average cases, sorting, selection, graph algorithms, and basic algorithm design techniques such as divide-and-conquer, greedy method, backtracking, and dynamic programming.
Syllabus
Time and Place
Classroom: McCort Ward 209
Day/Time: Tue/Thu 2:10 PM - 3:25 PM
Schedule
| Week | Topic | Class 1 | Class 2 | Resources |
|---|---|---|---|---|
| 1 | Algorithmic Problem Solving and Common Problem Types | |||
| 2 | Fundamentals of Algorithm Analysis | |||
| 3 | Asymptotic Analysis and Math Review | |||
| 4 | Exhaustive Search | |||
| 5 | Recursive Problems and Solutions | |||
| 6 | Divide and Conquer | |||
| 7 | Transformations and Reductions | |||
| 8 | Midterm exam | |||
| 9 | Spring Break | |||
| 10 | Tradeoffs Between Space and Time Complexity | |||
| 11 | Dynamic Programming | |||
| 12 | Dynamic Programming | |||
| 13 | Greedy Algorithms | |||
| 14 | Complexity Lower Bounds | |||
| 15 | Approximation Algorithms | |||
| 16 | Final Exam Review |
Additional Resources
Additional resources will be posted here.