CSE 431/531: Algorithm Analysis and Design (Spring 2022)

Course Information

Time: MoWeFr 9:00am~9:50am

Location: NSC 201

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/

Office Hour: Fridays, 12:00pm-1:00pm

TAs and Graders

NameEmailOffice Hours
Sean Sanders spsander[at] Mondays, 11:00am-12:00pm
Xiaoyu Zhang zhang376[at] Wednesdays, 11:00am-12:00pm
Revanth Karunakaran karunak2[at] Fridays, 3:00pm-4:00pm

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 Jan 31 Introduction syllabus
asymptotic notations (KT 2.2)
common running times (KT 2.4)
Feb 2
Feb 4
2 Feb 7
Feb 9
Feb 11 Graph Basics graph basics (KT 3.1)
connectivity and traversal (KT 3.2, 3.4)
topological order (KT 3.6)
3Feb 14
Feb 16HW1 Posted
Feb 18Greedy Algorithms interval scheduling (KT 4.1)
optimum caching (KT 4.3)
Huffman code (KT 4.8)
flow time minimization
4 Feb 21
Feb 23HW1 Due
Feb 25
5Feb 28
Mar 2
Mar 4HW2 Posted, PA1 Posted
6 Mar 7 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)
Mar 9
Mar 11HW2 Due
7 Mar 14
Mar 16
Mar 18
8 Mar 21Spring Recess
Mar 23
Mar 25HW3 Posted
9Mar 28 Dynamic Programming weighted interval scheduling (KT 6.1)
subset sums and knapsack (KT 6.4)
Sequence Alignment (KT 6.6)
Increasing Subsequence
PA1 Due
Mar 30
Apr 1Apr 4: HW3 Due
10 Apr 4
Apr 6
Apr 8
11Apr 11HW4 Posted, PA2 Posted
Apr 13 Graph 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
Apr 15
12 Apr 18
Apr 20HW4 Due
Apr 22
13Apr 25
Apr 27HW5 Posted
Apr 29 NP-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)
14May 2
May 4HW5 Due, HW6 Posted
May 6
15May 9
May 11HW Solutions and Final ReviewPA2 Due
May 13
May 18, Wed, 8:00am-11:00am: Final Exam, at NSC 201