Computer Science 445

Analysis of Algorithms
Fall 2016
Thomas VanDrunen



Meeting time: MWF 12:55-2:05 pm.
Meeting place: Science 131

Office hours: MTuWF (not Th) 3:30-4:30 pm; Th 9:30-10:30 am and 1:00-3:00 pm. Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu


Syllabus
Solutions to selected exercises and other supplemental material for CLRS
Lectures from a similar class at MIT taught, in part, by Charles Leiserson
Extra information about assignments


Final exam: Wednesday, Dec 14, 10:30 am - 12:30 pm


Moon's dayWoden' s dayFrigga's day

Aug 22

NO CLASS

Aug 24

Introduction

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

Aug 26

Review of algorithmic analysis and correctness proof (CLRS 2)

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

Aug 29

More review (CLRS 2). Asymptotics (CLRS 3)

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

Aug 31

Asymptotics (CLRS 3)

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

Sept 2

Divide and conquer (CLRS 4)

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

Sept 5

NO CLASS

Sept 7

The master method (CLRS 4)

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

Sept 9

Quicksort (CLRS 7)

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

Sept 12

Limits of comparison-based sorting (CLRS 8)

Daily: Read Sec 15.1; do "hero" problem

Sept 14

Dynamic programming (CLRS 15)

Daily: Read Sec 15.3 (sections 2 and 4 optional); do "log" problem

Sept 16

Dynamic programming (CLRS 15)

Daily: Read Sec 16.(1&2); do 16.2-4
HW: 8-4, 15-(4 & 6)Due 9/26

Sept 19

Greedy algorithms (CLRS 16)

Daily: Read Section 16.3; do 16.3-(2-4). Read Section 16.4; do 16.4-1.

Sept 21

Greedy algorithms (CLRS 16)

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

Sept 23

Amortized analysis (CLRS 17)

Sept 26

Amortized analysis (CLRS 17)

Sept 28

Review

Sept 30

More review...

Oct 3

TEST

Daily: Read Chapter 18
HW: 16-2. Due 10/10

Oct 5

B-trees

Oct 7

B-trees

Daily: Read from Ch 27, pg 772-781
HW: Implement deletion from B-trees. Due 10/21

Oct 10

Multi-threaded algorithms

Daily: Read the rest of 27.1 (pg 781-791) and 27.3

Oct 12

Multi-threaded algorithms

Daily: Read Maleki et al.

Oct 14

Multi-threaded algorithms

Daily: Read 33.1

Oct 17

NO CLASS

Oct 19

NO CLASS

Oct 21

Computational geometry

Daily: Read 33.3

Oct 24

Computational geometry

Oct 26

Review

Oct 28

TEST

Daily: Review LP Ch 1 as necessary. Read 2.(1&2); do 2.2.(6 & 10)

Oct 31

Review finite automata (LP 2)

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

Nov 2

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 4

Review context-free languages (LP 3)

Daily: Read 4.1, do 4.1.1

Nov 7

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

Nov 9

Turing machines (LP 4)

Daily: Read 4.5; do 4.5.1

Nov 11

Non-deterministic Turing machines (LP 4)

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

Nov 14

Undecideability (LP 5)

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

Nov 16

Undecidability (LP 5)

Daily: Read 6.(1-4)

Nov 18

Finish undecidability; start computational complexity (LP 6)

Nov 21

Computational complexity (LP 6)

Reread 6.(3 & 4); do 6.3.2

Nov 23

NO CLASS

Nov 25

NO CLASS

Nov 28

Finish computational complexity

Daily: Read 7.(1 & 2)

Nov 30

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

Dec 2

NP-complete problems (CLRS 34 and LP 7)

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

Dec 5

Algorithmic approach to NP-completeness (CLRS 34)

Dec 7

Concluding remarks on NP-completeness

Dec 9

Review