1. Introducció
1.1. Classes i abstracció de dades
1.2. Programació utilitzant classes
1.3. Memòria dinàmica i estructures enllaçades
1.4. Genèrics
1.5. Esquemes algorítmics
2. Estructures de dades lineals
2.1. Introducció
2.2. Piles
2.3. Cues
2.4. Llistes amb punt d'interès
2.5. Iteradors
3. Arbres
3.1. Introducció. Recursivitat.
3.2. Arbres binaris
3.3. Algoritmes sobre arbres
3.4. Arbres n-aris
3.5. Monticles i cues de prioritat
3.6. Particions
4. Diccionaris de dades
4.1. Introducció
4.2. Conjunts, EDFs, fitxers directes
4.3. Representacions lineals
4.4. Representacions ordenades
4.5. Arbres de cerca
4.6. Tècniques de dispersió
4.7. Fitxers relatius i directes
5. Grafs i estructures compostes
5.1. Concepte
5.2. Representació de grafs
5.3. Algoritmes bàsics sobre grafs
5.4. Relacions
5.5. Estructures compostes
6. Algoritmes voraços
6.1. Introducció
6.2. L'esquema voraç
6.3. Exemples de l'esquema voraç
6.4. Algoritmes quasi-òptims
6.5. Algoritmes voraços sobre grafs
7. Algoritmes de divideix i venç
7.1. Introducció
7.2. L'esquema de divideix i venç
7.3. Eficiència i llindar d'un algoritme
7.4. Exemples d'algoritmes de divideix i venç
8. Backtracking
8.1. Introducció
8.2. Concepte de backtracking
8.3. Variants de l'esquema
8.4. Exemples de backtracking