The grade of the course consists of the final exam (80%), homework assignment (10%) and programming projects (10%).
There will be around eight theoretical homework assignments, the grade for each is either 1 (passed) or 0 (failed).
There will be three programming projects which should be submitted in pairs.
Video Recording of previous semester can be found here.
Introduction to Algorithms, by Cormen, Leiserson and Rivest.
Data Structures and Algorithms, by Aho, Hopcroft and Ullman.
The course follows mostly the first book. Recommended purchase (to be used by other courses).
An extensive list of recommended references can be found here.