| CSE
431/531 Analysis of Algorithms |
Syllabus
Professor-in-charge: Dr. Jinhui Xu
Office: 315 Davis Hall
Regular office hours: Fri.
11:00 - 11:50am
Phone: (716) 645-4734
E-mail: jinhui@buffalo.edu
Teaching Assistants :
Minghua Wang
Office hours: Mon. Wed.
11:00 - 11:50am
E-mail: minghuaw@buffalo.edu
Lecture: MWF, 9:10-10:00pm, online
Course web site: http://www.cse.buffalo.edu/~jinhui/courses/cse531
Course forum: piazza
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
Recommended Texts:
- 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.
Prerequisites: CSE 250, Caculus II, a course that requires
formal proofs.
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 of 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
At the end of this course, each student should be able to:
- 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%
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 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.