Course Topics

WeekLecture Topics and Assignments
1Introduction., Review syllabus and expectations., Why study algorithms?
Algorithm Analysis Framework, Order of growth, Coding contest 1 assigned
Order of growth, Review coding contest
2Labor Day – No class
Analysis of non-recursive algorithms
Recursion and analysis of recursive algorithms
3Quiz 1
Brute Force – selection sort, Coding contest 2 assigned, Coding contest 1 due
Brute force, exhaustive search
4Depth first search and breadth first search graph traversals
Depth first search and breadth first search graph traversals
Decrease and Conquer, topological sort
5Quiz 2
Decrease and Conquer, Insertion sort, permutations
Decrease and Conquer, binary search, Russian peasant multiplication, fake coin problem, Coding contest 3 assigned., Coding contest 2 due
6Mergesort
Quicksort
Quicksort
7Review for midterm
Midterm
Work on coding contest 3, Coding contest 3 due
FALL BREAK
8Quickselect
Multiplication of large integers, binary tree algorithms
Binary tree algorithms, presorting, Coding contest 4 assigned
9Transform and Conquer, Balanced Search Trees
Transform and Conquer, Heapsort
Transform and Conquer, Heapsort
10Quiz 3
Space and time tradeoffs, string matching – Horspools algorithm
Space and time tradeoffs, string matching – Boyer-Moore algorithm
11Space and time tradeoffs, Hashing
Dynamic Programming intro, Coin-row problem, knapsack problem, Coding contest 4 due
Dynamic Programming, Floyd-Warshall algorithm, Coding contest 5 assigned
12Dynamic Programming, Floyd-Warshall algorithm
Quiz 4
Greedy – Prims, Kruskall’s algorithm
13Work on coding contest 5
Greedy – Dijsktra, Huffman Trees
P, NP, NP-Complete
14P, NP, NP-Complete
Quiz 5
Work on sample final, Coding contest 5 due
15Last day of class, Office hours