CSE 431/531: Algorithms Analysis and Design
Time: T&R 6:30 pm - 7:50 pm, Place:
Instructor: Dr. Hung Q. Ngo
Office: 238 Bell Hall
Office Hours: Tuesdays 1:00-3:00pm
Phone: 645-3180 x 160
Email: hungngo (at) cse.buffalo.edu
Teaching Assistants: (in random order)
Mr. Yang Wang
Office: Trailer B14
Office Hours: Fridays 11:00am--01:00pm
Email: yw43 (at) buffalo.edu
Recitations: R1 (M 1:00 PM - 1:50 PM, 250 PARK),
R2 (W 9:00 AM - 9:50 AM, 106 TALBRT)
Ms. Thanh-Nhan Nguyen
Office: Trailer B15
Office Hours: Tuesdays 8:30am-10:30am
Recitations: R3 (R 8:30 AM - 9:20 AM, 214 NORTON),
R4 (T 5:00 PM - 5:50 PM, 102 CLEMEN)
This course introduces basic tools and techniques for the design and
analysis of computer algorithms. Topics include asymptotic notations and
analysis, greedy algorithms, divide and conquer, dynamic programming,
network flows, NP-completeness, approximation algorithms, and randomized
algorithms. 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.
- Grasp the essential ideas of algorithm analysis and design
- asymptotic notations analysis
- typical algorithm design methods: divide and conquer, greedy, dynamic
programming, network flows
- basic graph algorithms: BFS, DFS, MST, ...
- the notions of NP-completeness, approximation algorithms, and randomized
- Gain substantial problem solving skills in designing algorithms
and discrete mathematics
Data Structures (CSE250), Calculus II, and a course that requires
The desire and ability to learn new ideas quickly.
At the end of this course, each student should be able to:
- Have a good overall picture of algorithm analysis and design
- Solve simple to moderately difficult algorithmic problems arising
from practical programming situations
- Understand the notions of NP-completeness and approximation
- Be able to demonstrate simple NP-complete problems
- Love designing and analyzing algorithms
- Required Textbook:
- Jon Kleinberg, Éva Tardos, Algorithm
Design, 864 pages, Addison Wesley, ISBN-10: 0321295358, ISBN-13:
978-0321295354, March 16, 2005.
- Other references: (Helpful but not required)
Knuth, The Art of Computer Programming Volumes 1, 2, 3, Addison
- Alfred V. Aho John E. Hopcroft Jeffrey Ullman, Data Structures and
Algorithms, 427pp. ISBN: 0201000237, Addison Wesley, January 1983.
- Thomas H.
E. Leiserson, Ronald
Rivest, and Clifford
Stein, Introduction to Algorithms (2e), 1180pp, ISBN: 0262032937,
MIT Press, September
- Vijay Vazirani, Approximation Algorithms, Springer-Verlag, 397
pages hardcover, ISBN: 3-540-65367-8, published 2001.
- Rajeev Motwani and Prabhakar Raghavan, Randomized Algorithms,
492 pages, Cambridge University Press (August 25, 1995), ISBN: 0521474655
- Michael R. Garey and David S. Johnson, Computers and Intractability:
A Guide to the Theory of NP-Completeness, 338pp. ISBN: 0716710455,
W. H. Freeman Company, November 1990.
- Plus other reading material specified on the class homepage
- Heavy! So, start early!!
- Approx. 30 pages of fairly dense reading per week
- 5 written homework assignments (to be done individually)
- 1 midterm exam
- 1 final exam
- 5 written assignments: 8% each (I reserve my right to add or
reduce the number of assignments)
- Midterm: 25%
- Final: 35%
- Assignments due at the end of the lecture on the due date
- 1 day (up to 24 hours) late: 20% reduction
- Each extra (24 hours) day late: 40% reduction (which means you don't
have to bother submit your assignment if it's more than 2 days late)
- Incomplete/make-up exams: NOT GIVEN, except in provably
- No tolerance on plagiarism:
- 0 on the particular assignment/exam for first attempt
- Fail the course on the second
- Consult the University Code of Conduct for details on
consequences of academic misconduct
- See also Prof. Shapiro's page on Academic Integrity of the
- Group study/discussion is encouraged, but the submission must be
your own work
- I will take cheating VERY VERY seriously. Don't waste your
time begging !!
- Students are encouraged to discuss homework problems with
classmates, but the version submitted must be written on your
own, in your own words.
- Absolutely no lame excuses please, such as "I have
to go home early, allow me to take the test on Dec 1", or "I had a
fight with my girlfriend, which effects my performance", blah blah
blah. Even when they are true, they are still lame.
- No extra work in the next semester given to improve your grade.