This page gives the order of topics as they are covered in the DePauw course CSC 236, Algorithmic Foundations of Computation.
Note that it does not precisely follow the order in the book's table of contents, because some of the dependencies among sections cut across the chapter topics.
Week 1: Introduction. Basics of Functional Programming.
Week 2: Elementary Functional Algorithms.
Week 3: Functional Trees. Introduction to Graphs.
Week 4: Graph Algorithms.
Transitive Closure
Week 5:
Exam 1
Week 6: Recurrences. Algorithm Strategies.
Week 7: Greedy Algorithms. Dynamic Programming.
Greedy Algorithms
Dynamic Programming
Edit Distance; Longest Common Subsequence
Week 8: Advanced Algorithms.
Hashtables and Bloom Filters
Bucket, Counting, and Radix Sort
Backtracking and A* Search
Week 9: Algorithmic Complexity.
Tractability
NP Completeness
Amortized Analysis
Week 10:
Exam 2
Week 11: Regular Languages. State Machines.
Knuth-Morris-Pratt
Week 12: Context-Free Languages. Parsing.
Week 13: Turing Machines. Lambda Calculus.
Week 14: Recursive Functions. Wrap-up.
Church-Turing Thesis