- Basic concepts on algorithms
- Iteraction, induction, and recursion
- Algorithms analysis
- Data types and data structures
- Trees
- Hash tables
- Sets
- Graphs
- Priority queues
- Algorithms design
- "Dividi et impera"
- Dynamic programming
- Greedy and local search
- Backtrack
- Untractable problems
- Lab: the C++ programming language