CSE 431/531: Algorithm Analysis and Design (Spring 2018)
Announcements
Please sign up the course on Piazza.
We will have the first in-class exam on Friday, Mar 16!
Course Information
Time: MoWeFr 9:00~9:50am
Location: Talbert 107
Credits: 3
Instructor
Shi Li
Office: 328 Davis Hall
Email: [first name][last name initial][at][buffalo][dot][edu]
Homepage: http://www.cse.buffalo.edu/~shil/
Office Hours: Mondays and Wednesdays, 11:00am-12:00pm, at Davis 328.
TAs
Zhongjie Ba (zba2)
Office Hours: Tuesdays 10:00am - 11:00am, at Davis 302 (TA office room).
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:
- Jon Kleinberg and Eva Tardos Algorithm Design. 1st Edition, 2005, Pearson.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Introduction To Algorithms 3rd Edition, 2009, MIT Press.
Grading
Your final grade will be computed as follows:
- Homeworks: 40%. There are 6 homeworks, and each of the first 5 homeworks will contain a programming problem.
- In-class exams. There are 2 in-class exams, each worth 15 points.
- Final exam.
- The two in-class exams and the final exam contribute to 60% of the final score. Your score for exams is computed as follows:
max{E1 × 5% + F × 25%, E1 × 15% + F × 15%} + max{E2 × 5% + F × 25%, E2 × 15% + F × 15%},
where E1, E2 and F are your scores for exam 1, exam 2 and final exam respectively (each score is a number from 0 to 100).
Policies
- Late policy You have one late credit. If you use the credit, you can submit a homework or a project 3 days late. No other late submissions will be accepted.
- Collaboration policy For homework problems, you are allowed to discuss with classmates. However, it is highly recommended that you first think about each problem for enough time before the discussion. You must write your solutions by yourself, in your own words. You need to write down the names of the students you collaborated with. For the programming problems, you must implement the algorithms by yourself.
If we found you copying solutions or codes from other students or the internet, you will get an "F" for the course, and the case will be reported to the department.
- The 2 in-class exams and the final exam are all closed-book, but you can bring an A4 paper, with both sides handwritten (a "cheat sheet").
Homeworks
Tentative Schedule
- Introduction, 3 lectures, slides(with animation, without animation), last updated: 08/04/19 00:14
- syllabus
- asymptotic notations (KT 2.2)
- common running times (KT 2.4)
- Graph Algorithms, 3 lectures, slides(with animation, without animation), last updated: 08/04/19 00:14
- graph basics (KT 3.1)
- connectivity and traversal (KT 3.2, 3.4)
- topological order (KT 3.6)
- Greedy Algorihtms, 7 lectures (include 1 recitation), slides(with animation, without animation), last updated: 08/04/19 00:14
- interval scheduling (KT 4.1)
- Kruskal's and Prim's algorithm for minimum spanning tree (KT 4.5, 4.6)
- Dijkstra's algorithm for shortest path (KT 4.4)
- Huffman code (KT 4.8)
- Divide and Conquer, 6 lectures (include recitation), slides(with animation, without animation), last updated: 08/04/19 00:14
- merge sort and counting inversions (KT 5.1, 5.3)
- quicksort and selection (KT 13.5)
- polynomial and matrix multiplications (KT 5.5)
- solving recurrences (KT 5.2)
- In-Class Exam #1, Mar 16, 2018
- Dynamic Programming, 7 lectures (include recitation), slides(with animation, without animation), last updated: 08/04/19 00:14
- weighted interval scheduling (KT 6.1)
- subset sums and knapsack (KT 6.4)
- sequence alignment (KT 6.6)
- shortest path with negative weights and Bellman-Ford (KT 6.8)
- all-pair shortest paths (KT 6.9)
- NP-Completeness 7 lectures (include recitation), slides(with animation, without animation), last updated: 08/04/19 00:14
- P, NP, Co-NP, P=NP?, NPC (KT 8.1-8.4)
- circuit-SAT, 3-SAT (KT 8.5)
- independent set, vertex cover, Halmitonion Cycle (KT 8.5)
- 3-coloring (KT 8.7)
- In-Class Exam #2, Apr 27, 2018
- Linear Programming, 4 lectures, slides(with animation, without animation), last updated: 08/04/19 00:14
- linear programming and simplex method
- formulating problems using linear programming
- duality
- Final Review, 1 lecture
- Final Exam May 16, 2018, Wed, 8:00AM - 11:00AM
Exercise Problems will be posted before a recitation lecture. Try to solve them before coming the class.
Academic Integrity
Departmental Policy of Academic Integrity Violations.