COSC 311: Algorithms
course materials for Fall 2022
Welcome to the Fall 2022 edition of COSC 311: Algorithms!. Course materials and assignments will be posted to this website. Please start by reading the course syllabus:
Final Exam
The final exam for Algorithms will be held in SCCE E110 on Friday, December 16th from 9:00 am to 12:00 pm.
Here is a Final Exam Guide including practice problems for the exam.
Meetings
- Lecture 01: MWF 11:00–11:50 Mead 115
- Lecture 02: MWF 2:00–2:50 SCCE A131
- Drop-in Office Hours
- Thursday, 11:00–12:00 in King & Wieland Quad, Tent 2
- Thursday, 2:30–3:30 in King & Wieland Quad, Tent 2
- Office Hours by Appointment (sign up here)
- Wednesday, 3:00–4:00 in SCCE C216 and on Zoom
- TBD
- Evening TA Sessions:
- Sunday, 5:00–7:00 pm in SCCE A131
- Wednesday, 7:00–9:00 pm in SCCE A131
Resources
Recommended Texts (choose one):
- Algorithms Illuminated (Volumes 1–4), Roughgarden (AI)
- Algorithm Design, Kleinberg and Tardos (KT)
- Algorithms in Action, Savvich (AA)
Additional notes and readings will be posted to this website.
Lecture Materials and Tickets
Week 01 (09/02 - 09/09)
- Lecture 01 (09/02)
- topics: course introduction, sorting
- readings: course syllabus
- lecture ticket: read the course syllabus
- lecture 01 slides (annotated PDF forthcoming)
- Lecture 02 (09/05)
- topics: sorting and induction
- readings: pseudocode (course notes)
- lecture 02 ticket (pdf format) (.tex source)
- lecture 02 slides (annotated pdf version)
- Lecture 03 (09/07)
- topics: more on induction, asymptotic notation
- readings: induction
- do lecture 02 ticket (if you haven’t already)
- lecture 03 slides (annotated pdf version)
- Lecture 04 (09/09)
- topics: sorting by divide and conquer
- readings: asymptotic analysis
- lecture 04 ticket (pdf format) (.tex source)
Week 02 (09/12 - 09/16)
- Lecture 05 (09/12)
- topics: sorting by divide and conquer
- readings: learn about MergeSort, e.g. in
- AI Sections 1.4–5
- KT Section 5.1
- lecture 05 ticket (pdf format) (.tex source)
- lecture 05 slides (annotated pdf version)
- Lecture 06 (09/14)
- topics: more sorting by divide and conquer
- readings: nothing new!
- lecture 06 ticket (pdf format) (.tex source)
- Lecture 07 (09/16)
- topics: QuickSort
- readings: nothing new!
- Assignment 01 due (no lecture ticket)
- lecture 07 slides (annotated pdf version)
Week 03 (09/19 - 09/23)
- Lecture 08 (09/19)
- topics: lower bound for sorting
- readings: nothing new!
- lecture 08 ticket (pdf format) (.tex source)
- lecture 08 slides (annotated pdf version)
- Lecture 09 (09/21)
- topics: RadixSort
- readings: Binary Representation
- lecture 09 ticket (pdf format) (.tex source)
- lecture 09 slides (annotated pdf version)
- Lecture 10 (09/23)
- topics: Multiplication by Divide and Conquer
- readings (pick one):
- AI 1.2–3 Integer Multipication and Karatsuba Multiplication
- KT 5.5 Integer Multiplication
- AA 5.2 Integer Multiplication
- lecture 10 ticket (pdf format) (.tex source)
- lecture 10 slides (annotated pdf version)
Week 04 (09/26 - 09/30)
- Lecture 11 (09/26)
- topics: Master Method and Maximization
- readings: none required; optional reading: Mathematicians Discover the Perfect Way to Multiply from Quanta Magazine
- no lecture ticket
- lecture 11 slides (annotated pdf version)
- Lecture 12 (09/28)
- topics: More Recursion Relations; Maximization
- readings: pick one
- AI 4.1–2 The Master Method
- The master method for solving recurrences from Introduction to Algorithms by Cormen et al.
- AA 5.1 Solving Divide-and-Conquer Recurrences
- lecture 12 ticket (pdf format) (.tex source)
- lecture 12 slides (annotated pdf version)
- Lecture 13 (09/30)
- topics: Graphs, Bridges of Königsberg problem, Eulerian circuits
- no lecture ticket (Assignment 02 due)
- lecture 13 slides (annotated pdf version)
Week 05 (10/03 - 10/07)
- Lecture 14 (10/03)
- topics: Graphs, Breadth-first Search, Shortest Paths
- readings: none
- no lecture ticket
- lecture 14 slides (annotated pdf version)
- Lecture 15 (10/05)
- topics: Finishing BFS
- readings:
- no lecture ticket
- lecture 15 slides (annotated pdf version)
- Midterm 1 (10/07)
- In class
- Midterm I Guide
Week 06 (10/12 - 10/14)
- Lecture 16 (10/12)
- topics: Dijkstra’s algorithm
- readings:
- AI 9.1–3 Dijkstra’s Shortest-Path Algorithm
- KT 4.4 Shortest Paths in a Graph
- AA 4.5 Shortest Path Problem
- no lecture ticket
- lecture 16 slides (annotated pdf version)
- Lecture 17 (10/14)
- topics: Efficient Dijkstra implementation; minimum spanning trees
- readings:
- AI 10 The Heap Data Structure
- KT 2.5 A More Complex Data Structure: Priority Queues
- AA 3.1 Binary Heaps
- lecture 17 ticket (pdf format) (.tex source)
- lecture 17 slides (annotated pdf version)
Week 07 (10/17 - 10/21)
- Lecture 18 (10/17)
- topics: Minimum Spanning Trees, Prim’s Algorithm
- readings:
- AI 15.1-4 Minimum Spanning Trees
- KT 4.5 The Minimum Spanning Tree Problem
- AA 4.4 Minimum Spanning Trees
- no lecture ticket
- lecture 18 slides (annotated pdf version)
- Lecture 19 (10/19)
- topics: MST, Kruskal’s Algorithm
- readings:
- AI 15.5-7 Minimum Spanning Treees
- KT 4.5 The Minimum Spanning Tree Problem
- AA 4.4 Minimum Spanning Trees
- no lecture ticket
- lecture 19 slides (annotated pdf version)
- Lecture 20 (10/21)
- topics: Interval Scheduling
- readings:
- AI 13 Introduction to Greedy Algorithms
- KT 4.1 Interval Scheduling
- AA 4.2 Scheduling Problem
- Homework 03 due today (no ticket)
- lecture 20 slides (annotated pdf version)
- lecture 20b slides (annotated pdf version)
- analysis of merging in Kurskal’s algorithm
Week 08 (10/24 - 10/28)
- Lecture 21 (10/24)
- topics: Interval Scheduling
- readings:
- AI 13 Introduction to Greedy Algorithms
- KT 4.1 Interval Scheduling
- AA 4.2 Scheduling Problem
- no lecture ticket
- lecture 21 slides (annotated pdf version)
- Lecture 22 (10/26)
- topics: Dynamic Programming Intro, Profit Maximization
- readings: none
- no lecture ticket
- lecture 22 slides (annotated pdf version)
- Lecture 23 (10/28)
- topics: Weighted Interval Scheduling
- readings:
- AI 16.1–4 Introduction ot Dynamic Programming
- KT 6.1 Weighted Interval Scheduling
- AA 6.1 Introduction to Dynamic Programming
- no lecture ticket (Assignment 04 due)
- lecture 23 slides (annotated pdf version)
Week 09 (10/31 - 11/04)
- Lecture 24 (10/31)
- topics: Weighted Knapsack Problem
- readings:
- AI 16.5 The Knapsack Problem
- KT 6.4 Subset Sums and Knapsacks
- AA 6.2 Knapsack Problem
- no lecture ticket
- lecture 24 slides (annotated pdf version)
- Lecture 25 (11/02)
- topics: Sequence Alignment/Longest Common Subsequence
- readings:
- AI 17.1 Sequence Alignment
- KT 6.6 Sequence Alignment
- lecture ticket
- lecture 25 slides (annotated pdf version)
- Lecture 26 (11/04)
- topics: Finishing Sequence Alignment
- no lecture ticket
- lecture 26 slides (annotated pdf version)
Week 10 (11/07 - 11/11)
- Lecture 27 (11/07)
- topics: Shortest Paths & Bellman-Ford
- readings:
- AI 18.1-2 Shortest Paths Revisited
- KT 6.8 Shortest Paths in a Graph
- AA 6.4 The Bellman Ford Algorithm
- lecture ticket (not to be turned in)
- lecture 27 slides (annotated pdf version)
- Lecture 28 (11/09)
- topics: Finishing Bellman-Ford, Starting Maximum Flow
- lecture 28 slides (annotated pdf version)
- Lecture 29 (11/11)
- topics: Maximum Flow
- readings:
- KT 7.1 The Maximum Flow Problem and the Ford-Fulkerson Algorithm
- AA 7.1–2 Network Flow
- lecture 29 slides (annotated pdf version)
Week 11 (11/14 - 11/18)
- Lecture 30 (11/14)
- topics: Ford-Fulkerson Correctness
- readings:
- KT 7.2 Maximum Flows and Minimum Cuts in a Network
- lecture 30 slides (annotated pdf version)
- Midterm 2 (11/16)
- Lecture 31 (11/18)
- topics: Stable Matchings
- readings:
- KT 1.1 Stable Matchings
- College Admissions and the Stability of Marriage by Gale and Shapley
- lecture 31 slides (annotated pdf version)
Week 12 (11/28 - 12/02)
- Lecture 32 (11/28)
- topics: Reductions, Maximum Bipartite Matching
- readings:
- KT 7.5 The Bipartite Matching Problem
- no lecture ticket
- lecture 32 slides (annotated pdf version)
- Lecture 33 (12/02)
- topics: Reductions and Hardness
- readings:
- KT 8.1 Polynomial Time Reductions
- no lecture ticket
- lecture 33 slides (annotated pdf version)
Week 13 (11/05 - 12/09)
- Lecture 34 (12/05)
- topics: NP Completeness
- readings:
- KT 8.3 Efficient Certification and the Definition of NP
- AA 9.1–2 NP Completeness
- AI 19 What is NP Hardness?
- lecture 34 ticket
- lecture 34 slides (annotated pdf version)
- Lecture 35 (12/07)
- topics: NP Complete Problems
- lecture 35 slides (annotated pdf version)
- Lecture 36 (12/09)
- topics: Coping with Intractability
- lecture 36 slides (annotated pdf version)
Assignments
- Assignment 01 (Due: 09/16)
- Assignment 02 (Due: 09/30)
- Assignment 03 (Due:
10/1410/23) - Assignment 04 (Due: 10/28)
- Assignment 05 (Due: 11/11)
Assignment 06 (Due: 12/09)See practice exam questions (not to be turned in)