CS600 - Algorithms and Data Structures

Spring 2008

Instructor: Professor Stephan Olariu
Phone: 683-3915

Course Description: CS600 is a graduate core course in Computer Science. The main objective of this core graduate course is to present a modern introduction to the design and analysis of computer algorithms and data structures. The main thrust of the course is algorithmic; the emphasis will be placed on algorithm design and analysis. It is a fact of life that most undergraduate courses in algorithms and data structure are concerned with the worst-case performance of algorithms. While this is a perfectly reasonable approach, it turns out that most worst-case scenarios occur with low probability (if at all). As a result, worst-case analyses are unduly pessimistic and even misleading. For all these reasons, CS600 is interested almost exclusively in the average-case (expected) performance of algorithms.
We shall also take the view that one crafts data structures in support of algorithmic needs and not the other way around. The students are expected to be familiar with the data structures and algorithms studied in CS361 and with the mathematical machinery covered in CS381 (Discrete Mathematics) and STAT330 (Probability Theory and Statistics).
My long teaching experience shows that those students who have a weak background in CS381 and STAT330 tend to do poorly in CS600. The students taking CS600 are expected to be proficient in C++. Indeed, all planned programming assigments require the mastery of C++. Java programs are not acceptable.
Formal lectures by Professor Olariu will be supplemented by guest-lectures by advanced PhD students as well as by class presentations by the participants.

There will be five assignments, roughly one every three weeks. These assignments involve designing algorithms for various computational problems as well as proving mathematical statements about their performance. The students are encouraged to present their solutions to the class during problem sessions. Please note that no late assignments will be accepted.

Material: Topics to be covered include

Text: Professor Olariu will distribute in class chapters of his upcoming book. However, the students are encouraged to supplement their notes with material from other recent texts on algorithms.

Absolute prerequisite: CS361 - Advanced Data Structures and Algorithms. Please note that CS600 is NOT open to students who have not had CS361 and to those for whom CS361 had been prescribed as a remedial course.

Grading Scheme:


Please note that the final examination is cumulative covering the entire material seen

Office Hours: F 8:00am - 10:00am, to be held in E&CS room 3316


Back to Dr. Olariu's Home Page