CS 225J -- Algorithmic Analysis-- Winter 2010

 

Assignment Problems Due Date
1
1.1 #4;  1.2 #4, 9;  1.3 #1, 3, 10
1/15/10
2
2.1 #5, 8, 9;  2.2 #2, 3 (without proof), 4a, 5, 6b
1/22/10
3
2.3 #1, 2, 4, 5, 9
1/29/10
4
2.4 #1(find the exact solution and the big-theta class), 2, 4, 7.  Also, on #7d, write and analyze an efficient non-recursive algorithm for computing 2^n.
2/11/10
5
3.1 #1, 2, 5, 6, 9bc, 10;  3.2 #5;  4.1 #1, 3, 5, 6, 7
2/17/10
6
4.4 #1, 4, 5; 5.1 #3, 4;

2/26/10

7
5.2 #1, 2, 4, 6, 7; 5.4 #2b, 4c; 5.5 #1, 3, 7
3/10/10
8
6.1 #1, 3;  6.4 #1, 2, 3, 5, 6, 7;
3/29/10
9
8.1 #2, 3, 4;  9.1 #1, 7, 9, 10, 11;  9.2 #1, 2;  9.4 #1, 3, 4
4/15/10

 

Labs:

Handouts:

Kibler's class notes :

Final list of topics to be covered:
1.1 What is an algorithm?
1.2 Fundamentals of algorithmic problem-solving
1.3 Important problem types
2.1 Analysis framework
2.2 Asymptotic notations and basic efficiency classes
2.3 Mathematical analysis of nonrecursive algorithms
2.4 Mathematical analysis of recursive algorithms
3.1 Selection sort and bubble sort
3.2 Sequential search and brute-force string matching
4.1 Mergesort
4.3 Binary search
4.4 Binary tree traversals and related properties
5.1 Insertion sort
5.2 Depth-first search and breadth-first search
5.4 Algorithms for generating combinatorial objects
5.5 Decrease-by-a-constant-factor algorithms

6.1  Presorting
6.4 Heaps and heapsort
7.1  Sorting by counting
8.1 Computing a binomial coefficient
9.1 Prim's algorithm
9.2 Kruskal's algorithm

9.4 Huffman Trees
11.1 Lower-bound arguments
11.2 Decision trees
11.3 P, NP, and NP-complete problems