CSE 431/531 Algorithm Analysis and Design (Fall 2026)

Site Map

Announcements

Logistics

CSE431/531A Lecture Time Location Piazza
Mon & Wed & Fri, 2:00PM - 2:50PM Knox 104 https://piazza.com/buffalo/fall2026/cse431531a
CSE531B Lecture Time Location Piazza
Mon & Wed & Fri, 4:00PM - 4:50PM Clemen 120 https://piazza.com/buffalo/fall2026/cse531b

Communication Policy

UBlearns should be used only for submitting assignments, checking grades, and completing the Quiz – All other materials such as syllabus, announcements, homework, and project assignments, as well as Q&As, are handled by Piazza only.

All questions/requests to the instructor, TAs, and Graders should be sent using Piazza, and not via emails (which can be used as a secondary means if Piazza post didn't work).

Role Name Office Hours
Instructor Kelin Luo (kelinluo@buffalo.edu) Mon & Wed 12PM-12:50PM
TA Erfan Habibi Panah Fard (erfanhab@buffalo.edu) Tue 12PM-12:50PM
TA Gagan Chandan (gaganch2@buffalo.edu) Thu 12PM-12:50PM

Except for the office hours provided, you can also set up an appointment (by email) for additional office hours.

Please sign up for the course on Piazza.

Course Description

Introduces basic elements of the design and analysis of algorithms. Topics include asymptotic notations and analysis, divide and conquer, greedy algorithms, dynamic programming, fundamental graph algorithms, NP-completeness, and approximation algorithms. For each topic, beside in-depth coverage, we discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students are expected to gain substantial discrete mathematics problem solving skills essential for computer scientists and engineers.

Course Credits: 3

Learning Outcome

Master the fundamental concepts in algorithm analysis and design.

Learning Outcomes Method of Assessment
1. Proficiently understand and apply asymptotic notations and analysis Quiz, Homeworks, Task, Exam
2. Have a good overall picture of algorithm analysis and design techniques Quiz, Homeworks, Projects, Task, Exam
3. Solve simple to moderately difficult algorithmic problems arising in applications Quiz, Homeworks, Projects, Exam
4. Understand the notions of NP-completeness and approximation algorithms Quiz, Homeworks, Exam
5. Be able to demonstrate the hardness of simple NP-complete problems Homeworks, Exam

Pre-requisites

You should have taken CSE250 (data structure) or similar courses before. We expect you to have certain levels of mathematical maturity: You should have basic understanding of calculus (e.g., limit, differentiation, integration) and linear algebra (e.g., matrix, vector space, linear transformation); You should be comfortable to read and write mathematical proofs, understanding common proof strategies (e.g., proof by induction, contradiction). We also expect you to have some programming experience: know what is a computer program, and be able to read and write code.

Recommend resources

Course Information from Previous Years

There are no required textbooks, but most of the content we will discuss is covered in the following books:

Other Course References

Similar courses taught at other universities: