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

Download syllabus (PDF)

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.