CSE
431/531 Analysis of Algorithms |

** Office:** 315 Davis Hall

** Regular office hours: ** Fri.
1:00 - 1:50pm

** Phone:** (716) 645-4734

** E-mail:** jinhui@buffalo.edu

** Teaching Assistants :**

** Jiayi Xian **

** Office hours: **Tue. 4:00-4:50pm Fri.
2:00 - 2:50pm

** E-mail:** jxian@buffalo.edu

**Lecture:** MWF, 9:00-9:50pm, Hoch 114,

**Course web site:** http://www.cse.buffalo.edu/~jinhui/courses/cse531

**Required Texts:**

- Introduction to Algorithms (3e), Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein, MIT Press, 2001
- Algorithms: Sequential & Parallel, Russ Miller and Lawrence Boxer, Prentice Hall PTR,1999

- Michael Goodrich and Roberto Tamassia, Algorithm Design: Foundations,Analysis, and Internet Examples, John Wiley & Sons, 2002
- Network Flows, Theory, Algorithms, and Applications, R. K. Ahuja, T.L. Magnanti, and J. B. Orlin, Prentice Hall, 1993.

**Course Description:**

This course introduces basic elements of the
design and analysis of computer algorithms. Topics include

asymptotic notations and analysis,
divide and conquer, greedy methods and

dynamic programming, basic graph
algorithms, NP-completeness, approximation algorithms, and

network flows analysis. For each topic, beside
in-depth coverage, one or more representative problems and

their algorithms shall be discussed.

In addition to the design and analysis
of algorithms, students are expected to gain substantial discrete

mathematics problem solving skills essential
for computer engineers.

**Main Objective:**

- Grasp the essential ideas algorithm analysis and design
- asymptotic notations analysis
- typical algorithm design methodologies: divide-and-conquer, greedy algorithms, dynamic programming, network flow analysis
- basic graph algorithms: BFS, DFS, MST, ...
- the notions of NP-completeness and approximation algorithms
- Gain substantial problem solving skills in designing algorithms

- Have a good overall picture of algorithm analysis and design techniques
- Solve simple to moderately difficult algorithmic problems arising in applications
- Understand the notions of NP-completeness and approximation algorithms
- Be able to demonstrate the hardness of simple NP-complete problems

- Class Participation 5% in total
- Homeworks (6 problem sets) 25% in total
- Midterm 20%
- Final Exam 50%

Class participation includes attendance, participation in class discussions, and general interest towards the course material.

The exams will be closed-book, and closed-notes.

**Academic Integrity Policy:**

No collaboration, cheating, and plagiarism is allowed in homeworks, and
exams. Those found violating academic integrity will get an *immediate
F* in the course, and further actions, consistent with the Department's
Academic Integrity
Policy (page 35 of the graduate handbook) will be taken against them.