Computer Science 445

Analysis of Algorithms
Fall 2014
Thomas VanDrunen



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

Office hours: MTuWThF 9:00-10:00 am; Th 1:30-3:30 pm.
Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu
http://cs.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: Thursday, Dec 18, 10:30 am


Moon's dayWoden' s dayFrigga's day

Aug 26

NO CLASS

Aug 28

Introduction

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

Aug 29

Review of algorithm analysis and correctness proof (CLRS 2)

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

Sept 1

NO CLASS

Sept 3

Review of algorithm analysis and correctness proof (CLRS 2)

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

Sept 5

Asymptotics (CLRS 3)

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

Sept 8

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/17

Sept 10

Divide and conquer (CLRS 4)

Daily: Read sections 4.(4&5), do 4.5-1, 4-1

Sept 12

The master method (CLRS 4)

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

Sept 15

Quicksort (CLRS 7)

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

Sept 17

Linear-time sorting (CLRS 8)

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

Sept 19

Dynamic programming (CLRS 15)

Sept 22

Go over homework

Sept 24

Dynamic programming (CLRS 15): Finish introduction; "Log" problem

HW: "Hero" problem, 15-4. Due 9/30

Sept 26

Dynamic programming (CLRS 15): Principles; Best clustering

Daily: Do 15-2, read 15-5

Sept 29

Dynamic programming (CLRS 15): Longest palindrome subsequence; edit distance

Oct 1

Review

Oct 3

TEST

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

Oct 6

Elementary graph algorithms (CLRS 22)

Daily: Read Sec 22.(3 & 4). Do 22.3-5 and 22.4-3

Oct 8

Elementary graph algorithms (CLRS 22)

Daily: Read Sec 16.(1 & 2). Do 16.2-4 carefully.
HW: 22.2-7, 22.4-2, 15-7. Due 10/16
Notes on CLRS 15-7

Oct 10

Greedy algorithms (CLRS 16)

Daily: Read Sec 16.3. Do 16.3-(2,4)

Oct 13

Greedy algorithms (CLRS 16)

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

Oct 15

Amortized analysis (CLRS 17)

Daily: Read Sec 18.(1 & 2)
HW: 16-1. Due 10/23

Oct 17

B-trees (CLRS 18)

Daily: Read Sec 18.3

Oct 20

NO CLASS

Oct 22

B-trees (CLRS 18)

Daily: Read 32.(1 & 2); do 32.1-(2 & 4)
HW: Implement delete. Due 10/29

Oct 24

String matching (CLRS 32)

Daily: Read 32.3. Explain parts in your own words.

Oct 27

String matching (CLRS 32)

Oct 29

Review

Oct 31

TEST

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

Nov 3

Review finite automata (LP 2)

Daily: Read 2.(3 & 4), 3.(1 & 2)

Nov 5

Finite automata and regular expressions (LP 2); begin context-free languages (LP 3)

Daily: Reread 3.(1&2) as necessary; read 3.3 carefully; get the main points of 3.(4 & 5); do 3.3.2 (a, b)

Nov 7

Review context-free languages (LP 3)

Daily: Read 4.1, do 4.1.1

Nov 10

Finish CFLs; Turing matchines (LP 4)

Daily: Read 4.2 carefully. Also read 4.(3 & 4)
HW: 3.1.10.(a & b). 4.1.(8-10). Due 11/17

Nov 12

Turing machines (LP 4)

Daily: Read 4.5; do 4.5.1

Nov 14

Non-deterministic Turing machines (LP 4)

Daily: Read 5.(1-4); determine the main point for every section

Nov 17

Undecideability (LP 5)

Daily: Read 5.(6 & 7). Do 5.4.2(a & b)
HW: 5.3.2.(c-i). Due 12/2

Nov 19

Undecidability (LP 5)

Daily: Read 6.(1-4)

Nov 21

Finish undecidability; start computational complexity (LP 6)

Nov 24

Computational complexity (LP 6)

Reread 6.(3 & 4); do 6.3.2

Nov 26

NO CLASS

Nov 28

NO CLASS

Dec 1

Finish computational complexity

Daily: Read 7.(1 & 2)

Dec 3

NP-completeness (LP 7)
Slides

Daily: Read 7.3 through pg 328; skim CLRS 34.5; do 7.3.3
HW: LP 7.3.4 f & h; CLRS 34.5-2. Due 12/10

Dec 5

NP-complete problems (CLRS 34 and LP 7)

Daily: Do 7.3.4 (a, b, & c)

Dec 8

Algorithmic approach to NP-completeness (CLRS 34)

Dec 10

Concluding remarks on NP-completeness

Dec 12

Review