CSE 431/531: Algorithms Analysis and Design

Spring 2007
Time:
T&R 6:30 pm - 7:50 pm, Place: 109 Knox

### Course Syllabus

```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
Email: nguyen9@buffalo.edu
Recitations: R3 (R 8:30 AM - 9:20 AM, 214 NORTON),
R4 (T 5:00 PM - 5:50 PM, 102 CLEMEN)
```

Course Description:

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.

Course Objectives:

• Have fun learning!
• 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 algorithms
• Gain substantial problem solving skills in designing algorithms and discrete mathematics

Prerequisites:

Data Structures (CSE250), Calculus II, and a course that requires formal proofs.
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 techniques
• Solve simple to moderately difficult algorithmic problems arising from practical programming situations
• Understand the notions of NP-completeness and approximation algorithms
• Be able to demonstrate simple NP-complete problems
• Love designing and analyzing algorithms

References:

• 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)
• Donald Knuth, The Art of Computer Programming Volumes 1, 2, 3, Addison Wesley.
• Alfred V. Aho John E. Hopcroft Jeffrey Ullman, Data Structures and Algorithms, 427pp. ISBN: 0201000237, Addison Wesley, January 1983.
• Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein, Introduction to Algorithms (2e), 1180pp, ISBN: 0262032937, MIT Press, September 2001.
• 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

Class homepage:

`        http://www.cse.buffalo.edu/~hungngo/classes/2007/531/`

• 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 extraordinary cases

• 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