| Lecture #1: | Algorithm analysis |
| Exercise#1 | Solution#1 |
| Lecture #2: | Recursive Algorithms |
| Exercise#2 | Solution#2 |
| Lecture #3-1: | Vectors |
| Lecture #3-2: | Sequences |
| Exercise#3 | Solution#3 |
| Lecture #4: | Trees |
| Exercise#4 | Solution#4 |
| Lecture #5-1: | Priority queues |
| Lecture #5-2: | Heaps |
| Exercise#5 | Solution#5 |
| Lecture #6-1: | Dictionaries |
| Lecture #6-2: | Hash tables |
| Exercise#6 | Solution#6 |
| Lecture #7-1: | (2,4) trees |
| Lecture #7-2: | Red-black trees |
| Exercise#7 | Solution#7 |
| Lecture #8-1: | Merge sort |
| Lecture #8-2: | Quick sort |
| Exercise#8 | Solution#8 |
| Lecture #9: | Pattern matching |
| Exercise#9 | Solution#9 |
| Lecture #10-1: | Graphs |
| Lecture #10-2: | DFS |
| Lecture #10-3: | BFS |
| Exercise#10 | Solution#10 |
| Lecture #11: | Shortest paths |
| Exercise#11 | Solution#11 |