CompSci 161 - Design and Analysis of Algorithms - Spring, 2024

Course staff

Class announcements

Class meetings

Syllabus

Textbook

Schedule of classes and slides

Lecture no. Topics Slides (PDF) Slides-annotated (PDF) Slides (PPT) Reading
Lecture 1 (4/2) Administrivia, Introduction L1 L1
Lecture 2 (4/4) Review of basic concepts L2 L2 L2 [GT] Sections 1.1, 1.2, 1.3, Chapter 2, Sections 3.1, 5.2.2
Lecture 3 (4/9) Divide and conquer, mergesort, counting intersections L3 L3 L3 [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4
Lecture 4 (4/11) Divide and conquer (continued) L4 L4 L4 [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4
Lecture 5 (4/16) Divide and conquer (continued) L5 L5 L5 [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4
Lecture 6 (4/18) Divide and conquer (continued) L6 L6 L6 [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4
Lecture 7 (4/23) Midterm 1
Lecture 8 (4/25) Dynamic Programming: Introduction. Memoization, Rod cutting and 0/1 Knapsack problems L8 L8 L8 [GT] Chapter 12
Lecture 9 (4/30) Dynamic Programming: 0/1 Knapsack (cont.), Bellman-Ford, Interval Scheduling L9 L9 L9 [GT] Chapter 12
Lecture 10 (5/2) Dynamic Programming (cont.)
Lecture 11 (5/7) Midterm 2

Homework Assignments