CSCI 355: Algorithm Design and Analysis (Fall 2024)

This webpage contains archived material from a past offering of this course.
Contents may differ from the current or most recent offering of the course.

Course Description

An introduction to the design, analysis, and implementation of algorithms to solve common computational problems. Basic algorithm design techniques such as the greedy strategy, divide-and-conquer, and dynamic programming, as well as network flows, intractability, and NP-completeness will be discussed.

See the course outline for more information.

Course Details

Lecture Time/Place

Tuesday, 12:30pm–1:20pm; Thursday, 11:30am–12:20pm; Friday, 1:30pm–2:20pm

All lectures are held in Mulroney Hall, room 4032.

Textbook

J. Kleinberg and É. Tardos, Algorithm Design. Pearson Addison-Wesley, 2005.

Course notes will be provided for each lecture. The course textbook will be used as an optional supplement.

Marking Scheme

You must write the final examination in order to pass the course, even if the weighted sum of your assignment and midterm examination grades is at least 50%.

News

Lectures

Week Notes Readings
1 Introduction: stable matching, representative problems Kleinberg & Tardos, 1.1–1.2
2 Algorithm analysis Kleinberg & Tardos, 2.1–2.2, 2.4
Review of graphs (optional reading) Kleinberg & Tardos, Ch. 3
3 Greedy algorithms: coin changing, scheduling, partitioning Kleinberg & Tardos, 4.1–4.2
4 Greedy algorithms (cont’d): Dijkstra, MSTs (Prim, Kruskal, Borůvka) Kleinberg & Tardos, 4.4–4.6
5 Divide and conquer: mergesort, quicksort, median/selection Kleinberg & Tardos, 5.1–5.2, 5.4
Fall study break
6 Divide and conquer (cont’d): master theorem, integer and matrix multiplication Kleinberg & Tardos, 5.5
7 Mid-course review, midterm examination
8 Dynamic programming: scheduling, least squares Kleinberg & Tardos, 6.1–6.3
9 Dynamic programming (cont’d): knapsack problem, RNA secondary structures Kleinberg & Tardos, 6.4–6.5
10 Dynamic programming (cont’d): sequence alignment, Bellman–Ford–Moore Kleinberg & Tardos, 6.6, 6.8
11 Network flow: max-flow and min-cut, Ford–Fulkerson Kleinberg & Tardos, 7.1–7.2
12 Intractability: reductions, P vs. NP, NP-completeness Kleinberg & Tardos, 8.1–8.4

Credit. Lecture slide sources courtesy of Kevin Wayne.

Assignments

Assignments are due at the beginning of class on the due date. Late assignments will be accepted up to the beginning of the first class following the due date. Late assignments are subject to a penalty of 10% deducted from the earned mark.

Exams

Midterm

Date: Nov. 1, 2024
Time: 1:30pm–2:20pm
Place: Mulroney Hall, room 4032
Content: All material from Weeks 1 to 6

Final Exam

Date: Dec. 11, 2024
Time: 2:00pm–4:30pm
Place: Mulroney Hall, room 4032
Content: Primarily material from Weeks 7 to 12, some earlier material

Personnel

Instructor

Taylor J. Smith
Email: tjsmith [at] stfx [dot] ca
Office: Annex, Room 9A
Office hours: Monday/Tuesday/Wednesday, 10:30am–11:20am, or by appointment