The following gives a schedule of topics covered, readings assigned, and assignment handouts/due dates. Each topic includes several required readings that students should read before the topic is discussed in class – always look ahead a few days to see what readings you should be doing. Note that some topics, particularly weeks 1, 2, and 9, should be mostly review from earlier classes (CSC 250 and CSC 330), so we will go through these very quickly focusing primarily how this material fits in the context of general algorithm study.
The schedule in this class is flexible, and past dates will be updated to reflect what was actually covered. Future dates are always tentative and subject to change.
Reading: Perrin Number Information and Chapters 1–2
Tuesday: Class overview and syllabus review; introduction to the study of algorithms
Thursday: Basics of algorithm analysis
Handout: Syllabus
Reading: Chapter 3
Topics: Asymptotic notation and summations
Reading: (For Thursday) Sections 4.1–4.2
Tuesday: Common functions and relative growth rates
Thursday: Divide-and-conquer basics and Strassen’s algorithm
Reading: Sections 4.3–4.5 and 7.1–7.4
Tuesday: Recurrences
Thursday: Quicksort
Reading: Section 8.1, Sections 15.1 – 15.2
Tuesday: Lower bound for comparison-based sorting
Thursday: Dynamic programming, day 1
Reading: Sections 15.3 and 15.5
Topic: Dynamic programming, continued
Reading: Sections 16.1 – 16.3
Topic: Greedy algorithms
Tuesday, March 9: Midterm Exam
Thursday: Basic graph algorithms, day 1 (Sections 22.1 – 22.2)
Tuesday: Basic graph algorithms, day 2 (Chapter 22.3 – 22.4)
Thursday: Minimum spanning tree algorithms (Chapter 23)
Tuesday: Single-source Shortest Paths (Sections 24.1–24.3)
Thursday: All-pairs shortest paths (Sections 25.1–25.2)
Reading: Sections 34.1 – 34.4
Topic: NP-completeness
Reading: Sections 34.5
Topic: NP-completeness – practice and common errors
Reading: Sections 35.1 – 35.3
Topic: Coping with NP-completeness – approximation algorithms
Tuesday: Class-choice topic
Thursday: Review/Problem solving day
Tuesday, May 4, 12:00-3:00