Fall 2024 CS231
This is a course about algorithms; their design and analysis
The language of computer science is to a great extent the language of algorithms. Although there are many thousands of algorithms, there are relative few basic design techniques. These include: divide-and-conquer, greedy, dynamic programming, and network flow. We will illustrate these techniques by studying a few fundamental algorithms of each type. In addition to helping us understand classic solution techniques, these algorithms have proven very useful in practice. Their names and the names of the problems they solve have become a standard part of the language of computer science.
Unfortunately, there is rarely a best algorithm to solve a given problem. Each approach involves a series of tradeoffs. Therefore, we will also study methods for evaluating the usefulness of an algorithm in a given situation. Among the various competing measures, we will focus primarily on the anal- ysis of time and space complexity. However, a number of other issues will also be discussed.
Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|
Sep
3
Introduction and Review
(slides)
Reading: Course syllabus
|
4
|
5
|
6
Stable Matching (1)
(slides)
Reading: Section 1.1
|
|
9
|
10
Stable matching (2)
(Finishing up slides from lecture 2)
Reading: Section 1.1
|
11
|
12
|
13
Implementation and Analysis
(slides)
Reading: Section 2.3
Complete Quiz 1 on Gradescope before Sunday 15th at 11:59pm
|
16
|
17
Analysis and asymptotics
(slides)
Reading: Sections 2.1 and 2.2
|
18
|
19
|
20
(II) Graphs:
Definitions and representation
(slides)
Reading: Sections 3.1 and 3.2
|
23
|
24
BFS
(slides)
Reading: Sections 3.3 and 3.4
|
25
|
26
|
27
Exam 1
Covers Graph representation |
30
|
Oct
1
BFS(2)
(slides)
Section 3.4
|
2
|
3
|
4
DFS and Topological ordering
(slides)
Sections 3.5 and 3.6
|
7
|
8
Reading: Section 4.1
|
9
|
10
|
11
Scheduling and exchange argument
(slides)
Reading: Section 4.2
|
14
Fall break
|
15
Fall break
|
16
|
17
|
18
Exchange argument 2
(proof)
Reading: Section 4.2
Complete Quiz 2 on Gradescope before Sunday 20th at 11:59pm
|
21
|
22
Shortest path routing
(slides)
Reading: Section 4.4
|
23
|
24
|
25
Minimum spanning trees
(slides)
Reading: Section 4.5
|
28
|
29
Tanner Conference
|
30
|
31
|
Nov 1
Exam 2
Covers Graphs and Greedy |
4
|
5
Reading: Sections 5.1 and 5.2
|
6
|
7
|
8
Solving Recurrences
Reading: Sections 5.1 and 5.2
|
11
Project Phase 1
Complete form for team formation |
12
Counting Inversions
(slides)
Reading: Section 5.3
|
13
|
14
|
15
Reading: Sections 6.1 and 6.2
Complete Quiz 3 on Gradescope before Sunday 17th at 11:59pm
|
18
|
19
Weighted interval scheduling
(same slides as last week)
Reading: Sections 6.1 and 6.2
|
20
|
21
|
22
Knapsack
(slides)
Reading: Section 6.4
|
25
Project Phase 2
Submit list of references |
26
Shortest path revisited
( slides )
Reading: Section 6.8
|
27
Thanksgiving break
|
28
Thanksgiving break
|
29
Thanksgiving break
|
Dec 2
Complete Quiz 4 on Gradescope before Wednesday 4th at 11:59pm
|
3
(VI) Max Flow:
Max Flow problem
Reading: Section 7.1
|
4
|
5
|
6
Exam 3 in-class
Covers remaining material |
9
Project Phase 3
Submit draft and prepare presentations |
10
Paper presentations
|
11
|
12
Reading period starts
|