Syllabus Main Students/Grades Assignments/Projects Announcements Related Links Mail




             This course aims to introduce the fundamental concepts of the design and analysis of computer algorithms; 

 stressing analytical approaches.  Asymptotics, recursion relations and solution methods will be discussed, using

 examples from  among the classical algorithms of computer science. Parallel algorithms and difficult problems are 

 briefly treated.


  •   Data structures

  •   Discrete mathematics

  •   Calculus

  •   Knowledge of a structural programming language

  Main topics

 1. Introduction

2.Asymptotics, notations

3.Recursion relations, solution methods

4.Divide and Conquer methods (Quicksort and related algorithms)

5.Greedy algorithms (Graph algorithms)

6.Heaps and trees

7.Dynamic programming

8..Introduction to NP completeness

  Computer usage

  Design and test, operation counting on algorithms.


  Chapters: 1, 2, 3, 4, 7, 8, 10, 24 from: Cormen, Leiserson, Rivest;   Introduction to Algorithms, MIT Press, Mc Graw Hill 1991

Additional material will be made available.

Note that some course notes and texts are available free on several Web sites.