431/531 Analysis of Algorithms
Professor-in-charge: Dr. Jinhui Xu
Office: 315 Davis Hall
Regular office hours: Fri.
1:00 - 1:50pm
Phone: (716) 645-4734
Teaching Assistants :
Office hours: Mon. Wed.
10:00 - 10:50am
Office hours: Tue. Thu.
1:00 - 1:50pm
Lecture: MWF, 9:00-9:50pm, Knox 109,
Course web site: http://www.cse.buffalo.edu/~jinhui/courses/cse531
- 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
Prerequisites: CSE 250, Caculus II, a course that requires
- 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.
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.
At the end of this course, each student should be able to:
- 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
- Solve simple to moderately difficult algorithmic problems arising
- Understand the notions of NP-completeness and approximation algorithms
- Be able to demonstrate the hardness of simple NP-complete problems
Note: Each component will receive a numerical score. The course grade will
be based on the weighted total of all components and the class curve.
- Class Participation
5% in total
- Homeworks (6 problem sets)
25% in total
- Final Exam
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
Policy (page 35 of the graduate handbook) will be taken against them.