Computer Science 445

Analysis of Algorithms
Fall 2012
Thomas VanDrunen



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

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
Solutions to selected exercises and other supplemental material for CLRS
Lectures from a similar class at MIT taught, in part, by Charles Leiserson


Final exam: Tuesday, Dec 18, 1:30 pm


Moon's dayWoden' s dayFrigga's day

Aug 27

NO CLASS

Aug 29

Introduction

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

Aug 31

Review of algorithm analysis and correctness proof (CLRS 2)

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

Sept 3

NO CLASS

Sept 5

Asymptotics (CLRS 3)

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

Sept 7

Asymptotics (CLRS 3)

Daily: Read Sec 4.(1-3). (No practice problems)
HW: 2.3-7; 2-2; 3-1(b, e); 3-4(d-h). Due 9/14

Sept 10

Divide and conquer (CLRS 4)

Daily: Read Sec 4.(4 & 5); do 4.5-1 and 4-1(a, b)

Sept 12

The master method (CLRS 4)

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

Sept 14

Quicksort (CLRS 7)

Daily: Read Sec 8.(1-4); do 8.1-(1, 3, 4)
HW: 4-(2 & 5); 7-(1 & 4). Due sometime between 9/21 and 9/26, inclusive

Sept 17

Linear-time sorting (CLRS 8)

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

Sept 19

Dynamic programming (CLRS 15)

Daily: Read Sec 15.(2 & 3); do given "log" problem

Sept 21

Dynamic programming (CLRS 15)

Daily: do the given "hero" problem

Sept 24

Finish dynamic programming (CLRS 15)

Daily: Read Sec 16.(1 & 2); do 16.2-4 carefully
HW: 15-(3 & 5), 16.2-5, 16-1. Due 10/1

Sept 26

Greedy algorithms (CLRS 16)

Daily: Read Sec 16.3; do 16.3-(2, 4)

Sept 28

Greedy algorithms (CLRS 16)

Daily: Read Sec 17.(1-3); do 17.1-(1 & 3), 17.2-2, 17.3-2

Oct 1

Amortized analysis (CLRS 17)

Oct 3

Review

Oct 5

TEST

Daily: Read Sec 22.(1 & 2). Summarize and explain the proof structure for propositions 22.(1-5)

Oct 8

Introductory graph theory (CLRS 22)

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

Oct 10

Introductory graph theory (CLRS 22)

Daily: Read 26.(1 & 2a), pg 708-720; do 26.1-(4 & 6).
HW: 22.2-7, 22.4-2, 15-7, 26-1. Due 10/18

Oct 12

Maximum flow (CLRS 26)

Daily: Read 26.2

Oct 15

Maximum flow (CLRS 26)

Daily: Read 19.(1 & 2); do 19.2-1

Oct 17

Fibonacci heaps (CLRS 19)

Daily: Read 19.(3 & 4)

Oct 19

Fibonacci heaps (CLRS 19)

Daily: Read 32.(1 & 2); do 32.1-(2 & 4)

Oct 22

NO CLASS

Oct 24

Homework catch up

Oct 26

String matching (CLRS 32)

Daily: Read 32.3; explain parts in your own words

Oct 29

String matching (CLRS 32)

Oct 31

Review

Nov 2

TEST

Daily: Read LP ch 2(1-4). Do 2.2.(6 & 10)

Nov 5

Review finite automata (LP 2)

Daily: Read LP 3.(1-5 (3 carefully, 4 & 5 for the main points)). Do Ex 3.3.2(a,b) and 3.5.2.

Nov 7

Review context-free languages (LP 3)

Daily: Read LP 4.1. Do Ex 4.1.1

Nov 9

Finish CFLs; Turing machines (LP 4)

Daily: Read LP 4.2
HW: LP 3.1.10 (a & b); 4.1.(8-10). Due 11/16

Nov 12

Turing machines (LP 4)

Daily: Read LP 4.(3 & 4); do 4.5.1

Nov 14

Non-deterministic Turing machines (LP 4)

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

Nov 16

Undecidability (LP 5)

Read LP 5.(6 & 7); do 5.4.2(a & b)
HW: LP 5.4.2(c-i); see email for special rules. Due 11/28

Nov 19

Undecidability (LP 5)

Daily: Read all of LP 6; do 6.1.1

Nov 21

NO CLASS

Nov 23

NO CLASS

Nov 26

Computational complexity (LP 6)

Daily: Re-read 6.(3 & 4); do 6.3.2

Nov 28

Computational complexity (LP 6)

Daily: Read LP 7.(1&2)

Nov 30

NP-completeness (LP 7)
Slides

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

Dec 3

No class---laryngitis

Dec 5

NP-completeness (LP 7)

HW: LP 6.4.4, 7.3.4 f & h; CLRS 34.5-2

Dec 7

NP-complete problems (CLRS 34 and LP 7)

Dec 10

More practice; algorithmic approach to NP-completeness (CLRS 34); approximation algorithms (CLRS 35)

Dec 12

Concluding remarks on NP-completeness

Dec 14

Review