The grade of the course consists of the final exam (80%), homework assignment (10%) and programming projects (10%).
There will be around ten theoretical homework assignments, the grade for each question is 2, 1 or 0.
There will be two programming projects which should be submitted in pairs.
Video Recording of previous semester can be found here.
Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein.
Data Structures and Algorithms, by Aho, Hopcroft and Ullman.
The course follows mostly the first book. Recommended purchase (to be used by other courses).
See also the extensive list of recommended references
Here are two animated demonstrations of different dictionary implementations.
They both require Java.
We found them on the internet and we cannot guarantee that they are implement exactly as we saw in class, however they do demonstrate the basic principles.