Midterm I (recurrences, sorting, selection)
Midterm II (graph algorithms, string matching, dynamic programming)
Final Exam (recurrences, average case analysis, spreadsheet application, computational geometry, approximation algorithms, NP-completeness).
Midterm I (recurrences, sorting, selection, arithmetic)
Midterm II (graph algorithms, string matching, dynamic programming)
Final Exam (recurrences, sorting, graph algorithms, dynamic programming, computational geometry, approximation algorithms, NP-completeness).
Midterm I (data structures and sorting)
Midterm II (arithmetic, graph algorithms)
Final Exam (data structures, median-finding, arithmetic, graph algorithms, dynamic programming, approximation algorithms, computational geometry).