Computer Science 445
Analysis of Algorithms
Fall 2004
Thomas VanDrunen
Meeting time: MWF 2:00-3:05
pm.
Meeting place: Amerding 123.
Final: Friday, Dec 15, 10:30
am.
Office hours: Tuesday and
Thursday 1:30-3 pm or whenever my door is open.
Contact: 112 Amerding; 752-5692; Thomas.VanDrunen@wheaton.edu
http://cslab.wheaton.edu/~tvandrun/previous/fall04/cs445
Syllabus: [ps][pdf]
Solution to extra dynamic programming example.
Assignments:
All assignments are due at the beginning of class unless
otherwise noted. Remember, exercises are formatted chapter.section.exercise,
and problems are formatted chapter.problem. If I
assign more than one exercise from a section or more than one problem from a
chapter, I will parenthesize it. 2.1-3 means exercise 3 of section 1 of chapter
2. 2.3.(3-5) means exercises 3 through 5 of section 3
of chapter 2. 2-3 means problem 3 of chapter 2. 3-(1&2) means problems 1
and 2 of chapter 3.
- Small
sorting assignment. Due: Mon, Aug 30.
- Exercises 2.1-3 (pg 21),
2.2-3 (pg 27), 2.3-(3-5) (pg 36). Problem 2-3 (pg 39). Due: Wed, Sep 1.
- Exercises 3.1-(2-5) (pg 50).
Problems 3-(1&2) (pg 57). Due: Wed, Sep 8.
- Exercises 4.1-(1,2,5,6) (pg 67), 4.3-1 (pg 75). Problems 4-(3.a, 6) (pg
85). Due: Mon, Sep 13.
- Exercises 7.1-(2-4) (pg 148),
7.2-(3&4) (pg 153). Problems 7-(1.b-d, 3). Exercises 8.2-4 (pg 170),
8.3-3. Due: Wed, Sep 21
Notes on
assignment: 7.2-3: show only O(n); 7.2-4: compare also
with bubble sort.
- Exercises 27.1-(3,6) (pg 708), 27.2-1 (pg 711), 27.3-2 (pg 716), 27.5-1
(pg 719). Problem 27-3 (a, b) (pg 722). Due: Wed, Sep 29.
Note on
assignment: For 27.5-1, finding big Oh rather than an exact number is
sufficient.
- Exercises 6.5-(5,6, & 8) (pg 142). Problem 6-1 (pg 142). Due: Mon,
Oct 4.
Note on
assignment: For 6-1, finding big Oh rather than big theta is sufficient.
- Exercises 12.2-(5,9) (pg 260), 12.3-5 (pg 264), 13.1-5 (pg 277),
13.2-(2,4) (pg 278).
- Exercises 16.2-(2,3,5)(pg 384). Due: Fri, Nov 5.
- Exercises 22.1-(3)(pg 530),
22.2-(3,6) (pg 539), 22.3-(4,7,8) (pg 548), 22.4-3 (pg 552).
Problem 22-2(a,b,e,f,g) (pg 558). Due: Wed, Nov 17.
- Exercises 23.2-(4,5) (pg 574), 24.3-3 (pg 600), 26.2-4 (pg 663). Due: Mon, Nov 22
- Exercises 34.5-(1, 7) (pg 1017). Due: Wed, Dec 8.
Projects:
Big
sorting project. Due: Wed, Oct 6.
Experimental guidelines.
Big graph project
. Due: Wed, Dec 1.
Course schedule:
(This schedule is approximate and subject to change… I
intend to keep it updated, but it is non-binding. If information on
assignments, especially due dates, conflicts with the list of assignments
above, go with what’s above.)
Monday
|
Wednesday
|
Friday
|
|
Aug 25
|
Prologue:
Sorting exercise
|
|
|
|
Aug 27
|
Intro:
What are algorithms?
|
Read ch
1 and 2, small sorting implementation
|
|
Aug 30
|
First attempt at analysis
|
Assign 1 (ch 2), skim appendices
|
|
Sep 1
|
Math stuff:
Divide and conquer, review math preliminaries
|
Read ch
3
|
|
Sep 3
|
Asymptotics
|
Assign 2 (ch3)
|
|
|
Sep 8
|
Recurrences
|
Assign 3 (ch 3 and 4)
|
|
Sep 10
|
More recurrences; the master method
|
Read pt 2 intro
|
|
Sep 13
|
Sorting:
Sorting intro; shell sort, merge sort.
|
Read ch
7
|
|
Sep 15
|
Quicksort
|
Read ch
8
|
|
Sep 17
|
Linear sort: radix and bucket
|
Assign 4 (ch 7 and 8)
|
|
Sep 20
|
Big sorting project explained; sorting networks
|
Big sort project, due Oct
6
|
|
Sep 21
|
More sorting networks
|
Read ch
6
|
|
Sep 22
|
Finish sorting networks
|
Assign 5 (ch 6); skim ch 10
|
|
Sep 27
|
Data structures:
Heaps and heapsort
|
|
|
Sep 29
|
Priority queues
|
Assign 6 (ch 6)
|
|
Oct 1
|
NO
CLASS
|
Read ch
12
|
|
Oct 4
|
Intro to trees
|
Big sort project due next
|
|
|
Oct 8
|
Red/black trees
|
Assign 7 (ch 12 and 13)
|
|
|
|
|
|
Oct 20
|
Analysis
techniques: Analysis tech overview
|
Read ch
15
|
|
Oct 22
|
Dynamic programming
|
|
|
Oct 25
|
More dynamic programming
|
Read ch
16
|
|
Oct 27
|
Dynamic programming and greedy algorithms
|
Read ch
16
|
|
|
Nov 1
|
More greedy algorithms
|
Read ch
17
|
|
Nov 3
|
Amortized analysis
|
Assign 8 (ch 16)
|
|
Nov 5
|
Graph Algorithms:
Intro, terms, representation, BFS
|
Read ch
22
|
|
Nov 8
|
BFS results; theorems and proofs and such
|
|
|
Nov 10
|
DFS and its applications: Topological sort and SCCs
|
Assign 9 (ch 22); read ch 23
|
|
Nov 12
|
Minimum spanning trees
|
Read ch
24; big graph proj assigned, due Dec 1
|
|
Nov 15
|
Single-source shortest paths
|
Assign 10 (ch 24)
|
|
Nov 17
|
More SSSP
|
Read ch
26
|
|
Nov 19
|
Max flow
|
Assign 11 (ch 24 and 26)
|
|
Nov 22
|
Graph applications
|
Reach ch
34 intro, 34.1 and 34.2
|
|
|
|
Nov 29
|
NP Completeness: Intro,
polynomial time
|
Read 34.3, big graph
project due next
|
|
Dec 1
|
Reductions; big graph project due
|
Read ch
34.4
|
|
Dec 3
|
NP completeness proofs
|
Assign 12 (ch 34), read ch 34.5
|
|
Dec 6
|
NP-complete problems
|
Read ch
35
|
|
Dec 8
|
Approximation algorithms
|
|
|
|
|
|
|