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.

      Notes on assignment: 7.2-3: show only O(n); 7.2-4: compare also with bubble sort.

      Note on assignment: For 27.5-1, finding big Oh rather than an exact number is sufficient.

      Note on assignment: For 6-1, finding big Oh rather than big theta is sufficient.

 

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 23

NO

CLASS

 

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 6

NO

CLASS

Read ch 4

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 6

BSTs

Read ch 13

Oct 8

Red/black trees

Assign 7 (ch 12 and 13)

Oct 11

B-trees

 

Oct 13

Review

 

Oct 15

MIDTERM

 

Oct 18

NO

CLASS

 

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

Oct 29

Greedy algorithms

 

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 24

NO

CLASS

 

Nov 26

NO

CLASS

 

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

 

Dec 10

Review

 

Dec 13

NO

CLASS

 

Dec 15

FINAL

 

Dec 17

NO
CLASS