CSE 431/531: Algorithm Analysis and Design (Fall 2021)

Course Information

Time: TuTh 5:30pm~6:45pm

Location: Davis 101, and Remote

Credits: 3

Please sign up for the course on Piazza.

Instructor

Shi Li

Email: [first name][last name initial][at][buffalo][dot][edu]

Homepage: http://www.cse.buffalo.edu/~shil/

TAs

NameEmailOffice Hours
Xiaoyu Zhang zhang376[at]
Charles Wiechec cwiechec[at]
Yunus Esencayi yunusese[at]

Overview

Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study of optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer, dynamic programming, and linear programming, and the NP-completeness theory.

Textbook

There is no required text book for the class, but it is recommended that you have one of the following books:

Grading

Your final grade will be computed as follows:

Policies

Slides

NA stands for "no animation".

Syllabus & Tentative Schedule


WeekDateTopicContentsOther Notes
1 Aug 31 Introduction syllabus
asymptotic notations (KT 2.2)
common running times (KT 2.4)
Sep 2
2 Sep 7
Sep 9Graph Basics graph basics (KT 3.1)
connectivity and traversal (KT 3.2, 3.4)
topological order (KT 3.6)
3Sep 14HW1 Posted
Sep 16Greedy Algorithms interval scheduling (KT 4.1)
optimum caching (KT 4.3)
Huffman code (KT 4.8)
flow time minimization
4 Sep 21
Sep 23
5Sep 28HW1 Due
Sep 30HW2 Posted, PA1 Posted
6 Oct 5 Divide and Conquer merge sort and counting inversions (KT 5.1, 5.3)
quicksort, median-finder, selection (KT 13.5)
polynomial and matrix multiplications (KT 5.5)
solving recurrences (KT 5.2)
Oct 7
7 Oct 12
Oct 14Oct 17: HW2 Due
8 Oct 19
Oct 21Dynamic Programming weighted interval scheduling (KT 6.1)
subset sums and knapsack (KT 6.4)
Sequence Alignment (KT 6.6)
Increasing Subsequence
HW3 Posted
9Oct 26
Oct 28PA1 Due
10 Nov 2
Nov 4HW3 Due, HW4 Posted, PA2 Posted
11 Nov 9Graph Algorithms Kruskal's and Prim's algorithm for MST (KT 4.5, 4.6)
Dijkstra's algorithm for shortest path (KT 4.4)
shortest path with negative weights and Bellman-Ford (KT 6.8)
Floyd-Warshall
Nov 11
12 Nov 16
Nov 18HW4 Due
13Nov 23HW5 Posted
Nov 25Fall Recess
14Nov 30NP-Completeness P, NP, Co-NP, P=NP?, NPC (KT 8.1-8.4)
circuit-SAT, 3-SAT (KT 8.5)
independent set (KT 8.5)
Dec 2
15Dec 7HW5 Due, HW6 Posted
Dec 9HW Solutions and Final ReviewPA2 Due
Dec 14, Tue, 7:15pm-10:15pm: Final Exam