Computer Science 445

Analysis of Algorithms
Fall 2010
Thomas VanDrunen



Meeting time: MWF 3:15-4:20 pm.
Meeting place: Science 181

Office hours: MWF 9:15-10:20 pm; Tu 2:15-3:45; Th 9:00-11:30 am.
Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs445


Syllabus



Final exam: Thursday, Dec 16, 10:30 am


Moon's dayWoden' s dayFrigga's day

Aug 23

NO CLASS

Aug 25

Introduction

Daily: Read Ch 2; do 2.2-(2-4), 2.3-(3&6)

Aug 27

Review of analysis and proof of correctness (CLRS 2)

Daily: Read Section 3.1; do 2-3.c, 3.1-(4 & 5)

Aug 30

Asymptotics (CLRS 3)

Daily: Read Section 3.2; do 3-1(d) and 3-4(a, b, c)

Sept 1

Asymptotics (CLRS 3)

HW: 2.3-7; 2-2; 3-1(b, e); 3-4(d-h) Due 9/10
Daily: Read Sections 4.(1 & 3)

Sept 3

Divide-and-conquer and recurrences (CLRS 4)

Daily: Read Sections 4.(4 & 5); do 4.5-1 and 4-1(a,b); for 4-1(a, b), use both the master method and the substitution method

Sept 6

NO CLASS

Sept 8

The Master Method (CLRS 4)

Daily: Read Sections 7.(1 & 2); do 7.1-(2-4) and 7.2-(3 & 4)

Sept 10

Quick sort (CLRS 7)

HW: 4-(2 & 5); 7-(1 & 4) Due 9/17
Daily: Read Sections 8.(1-4); do 8.1-(1, 3, 4)

Sept 13

Linear-time sorting (CLRS 8)

Daily: Read Section 15.1; do 15.1-(2, 4, 5)

Sept 15

Dynamic programming (CLRS 15)

Daily: Read Sections 15.(2&3); do log problem

Sept 17

NO CLASS

Sept 20

Dynamic programming (CLRS 15)

Daily: Do hero problem

Sept 22

Dynamic programming (CLRS 15)

Daily: Read Sections 16.(1&2); do 16.2-4

Sept 24

NO CLASS

Sept 27

Greedy algorithms (CLRS 16)

HW: 15-(2, 3); 16.2-5; 16-1. Due 10/6
Daily: Read 16.3; try 16.2-4 again

Sept 29

Greedy algorithms (CLRS 16)

Daily: do 16.3-(2, 4)

Oct 1

Greedy algorithms (CLRS 16)

Daily: Read 17.1-3; do 17.1-(1, 3), 17.2-2, 17.3-2

Oct 4

Amortized analysis (CLRS 17)

Daily: Read 21.(1&2); do 21.1-(2 & 3)

Oct 6

Disjoint sets (CLRS 21)

Oct 8

Disjoint sets (CLRS 21)

Oct 11

Presentation: Matrix multiplication (CLRS 28) (Kendall)

Oct 13

Presentation: Maximum flow (CLRS 26) (Ben)

Oct 15

Presentation: String matching (CLRS 32) (John Charles)

Oct 18

NO CLASS

Oct 20

Presentation: Fast Fourier Transform (CLRS 30) (Tim)

Oct 22

Presentation: Computational geometry (CLRS 33) (Lily)

Daily: Read 22.(1 & 2)

Oct 25

Introduction to graph theory; BFS and DFS (CLRS 22)

Daily: Read 22.(2&3); do 22.3-5 and 22.4-3

Oct 27

DFS and Top sort (CLRS 22)

Daily: Read 23.(1&2); do 23.1-1

Oct 29

MSTs, Kruskal's and Prim's algorithms (CLRS 23)

HW: 22.2-7, 22.4-2, 23-1; due 11/8
Daily: Read 24 intro and 24.1; Do 24.1-2

Nov 1

SSSPs, Bellman-Ford (CLRS 24)

Daily: Read 24.(2&3); do 24.2-(2 & 3) and 24.3-2

Nov 3

Dijkstra's algorithm (CLRS 24, 25)

Nov 5

Homework catch-up

Daily: Read 2.(1-4); do 2.2.(6 & 10)

Nov 8

Review finite automata (LP 2)

Daily: Read 2.4; 3.(1-5 (sections 1 & 2 are review; read section 3 carefully; get the main points of sections 4 and 5)); do 3.3.2(a,b) and 3.5.2 (c, d))

Nov 10

Review context-free languages (LP 3)

HW: CLRS 24-1 (hint), LP 3.1.10 (a & b) Due 11/17
Daily: Read 4.1; do 4.1.1

Nov 12

Finishing CFLs; Turing machines (LP 4)

Daily: Read 4.2

Nov 15

Turing machines (LP 4)

Daily: Read 4.(3&4) quickly; read 4.5 carefully; do 4.5.1

Nov 17

Non-deterministic Turing machines (LP 4)

Daily: Read 5.(1-4); determine major points of each section

Nov 19

Undecidability (LP 5)

Daily: Read 5.(6 & 7); do 5.4.2 (a & b)

Nov 22

Undecidability (LP 5)

Daily: Read all of 6; do 6.1.1

Nov 24

NO CLASS

Nov 26

NO CLASS

Nov 29

Computational complexity (LP 6)

HW: LP 5.4.2(d, e, h); due 12/1
Daily: Re-read 6.(3 & 4); read 7.1

Dec 1

Computational complexity (LP 6)

HW: LP 6.4.4
Daily: Read 7.(1-3 up to pg 320)

Dec 3

NP-completeness (LP 7)
Slides

Daily: Read 7.3 through pg 328; skim CLRS 34.5; do LP 7.3.3

Dec 6

Algorithmic approach to NP-completeness (CLRS 34)

HW: LP 7.3.4 f & h; CLRS 34.5-2. Due 12/10

Dec 8

Concluding remarks on NP-completeness

Dec 10

Review