|
|
|
Get the calendar
and the syllabus in pdf format
Course Objectives
The purpose of the course is to study some advanced data structures and
fundamental concepts of design and
analysis of algorithms. A good portion of the course is spent on presenting
problem solving techniques that includes algorithms for many different problems.
Classical sorting, search and graph algorithms are also covered in this course.
Prerequisites
It is assumed that students are familiar with the following materials:
- At least one programming language such as Pascal or C++ or Java.
- Basic data models: Linked List, Queue, Stack, Trees, and Graphs.
- Recursive methods for problem solving, basic concepts of graph theory and
their simple algorithms.
Textbooks
- T. Cormen, C. Leiserson, R. Riverst, C. Stein,
Introduction to Algorithms,
2nd edition, MIT Press, 2001.
- M. Ghodsi, Data Structures and Algorithms,
Lecture notes in Persian, Computer Engineering Department, Sharif University of Technology, 2002.
Other References
- G. Brassard, P. Bratley, Algorithmics, Theory and Practice,
Prentice-Hall, 1988.
- U. Manber, Introduction to Algorithms: A Creative Approach,
Addison-Wesley, 1989.
- R. E. Neapolitan, K. Naimipour, Foundations of Algorithms Using C++
Pseudo Code, 2nd edition, Jones and Barlett publishers, 1998.
- A. V. Aho, J. E. Hopcroft, J. D. Ullman, Data Structures and Algorithms,
Addison-Wesley, 1983.
- M. Ghodsi, M. Mahdian, Algorithmic Problems: Programming and
Theoretical, Volume I , Fatemi Publishing Co., 1999.
- (To see a descriptive list of useful references,
click here.)
Evaluation
Students' final score is computed according to the following items:
Problem Sets: |
4 Points |
7 problem sets |
Projects: |
4 Points |
3 programming projects |
Quizzes: |
6 Points |
2 Quizzes during the semester |
Final Exam: |
6 Points |
17 dey, 1381 (Jan 7, 2003) |
Teaching Assistants
|