CSE 431/531: Algorithms Analysis and Design
Time: MWF 09:00am--09:50am, Place: Knox 14
Instructor: Prof. Hung Q. Ngo
Office: 239 Bell Hall
Office Hours: Thursdays 1:00-3:00pm
Phone: 645-3180 x 160
Teaching Assistants: (in random order)
Mr. Yang Chen
Office: Trailer B8
Office Hours: Mondays 2:00-4:00pm
Recitations: B3, Fridays, 10:00-10:50, 422 FRNCZK
Mr. Guang Xu
Office: Trailer E12
Office Hours: Tuesdays 3:00-5:00pm
Recitations: B2, Thursdays, 15:30-16:20, 209 Norton.
B1, Mondays, 12:00-12:50, 250 Park.
This course introduces basic elements of the design and analysis of computer
algorithms. Topics include asymptotic notations and analysis, parallel
sorting networks, divide and conquer, greedy methods and matroids, 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.
- Grasp the essential ideas of algorithm analysis and design
- asymptotic notations analysis
- basic parallel sorting network design
- typical algorithm design methods: divide and conquer, greedy, 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 and discrete
Data Structures (CSE250), Calculus II, and a course that requires formal
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
- Understand the notions of NP-completeness and approximation algorithms
- Be able to demonstrate simple NP-complete problems
- Love designing and analyzing algorithms
- Required Textbooks:
- Introduction to Algorithms (2e),
1180pp, Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford
Stein, ISBN: 0262032937, MIT Press, September 2001.
- Algorithms: Sequential & Parallel,
330pp, Russ Miller and Lawrence Boxer, ISBN: 0130863734, Prentice Hall
PTR, December 1999.
- Other recommended references:
- Donald Knuth, The Art of Computer Programming Volumes 1, 2, 3, Addison
- Gilles Brassard, Paul Bratley, Fundamentals of Algorithmics, Prentice
- Alfred V. Aho John E. Hopcroft Jeffrey Ullman, Data Structures and Algorithms,
427pp. ISBN: 0201000237, Addison Wesley, January 1983.
- Plus other reading material specified on the class homepage
- Heavy! So, start early!!
- Approx. 50 pages of fairly dense reading per week
- 6 written homework assignments (to be done individually)
- 1 midterm exam
- 1 final exam
- 6 written assignments: 6% each
- Midterm: 27%
- Final: 37%
- Assignments due at the end of the lecture on the due date
- 1 day late: 10% reduction
- Each extra day late: 20% reduction
- Incomplete/make-up exams: not given, except in provably extraordinary
- 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
- See also Prof. Shapiro's page on Academic Integrity of the CSE department:
- Group study/discussion is encouraged, but the submission must be your own
- I will take cheating VERY VERY seriously. Don't waste your time
- 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.