I. Subprograme

1. Structura și a modul de definire al subprogramelor
• Declararea și apelul subprogramelor
• Transferul parametrilor la apel (prin valoare și prin adresă)
• Returnarea valorilor de către subprograme
• Variabile locale și globale
• Aplicaţii folosind subprograme

II. Şiruri de caractere

1. Particularităţi de memorare a șirurilor de caractere
• Subprograme predefinite de prelucrare a șirurilor de caractere

III. Structuri de date neomogene

1. Structuri de date neomogene (struct/record)
• Rezolvarea unor probleme cu caracter practic

IV. Liste

1. Liste
• Reprezentarea grafică a structurilor de tip listă
• Operaţii specifice
• Stiva și coada
• Aplicaţii cu implementare statică

V. Recursivitate

1. Definire. Exemplificare
• Mecanisme de implementare
• Aplicaţii cu subprograme recursive

VI. Metoda de programare „Divide et Impera”

1.Prezentare generală
• Aplicații

VII. Metoda de programare “Backtracking”

1. • Prezentare generală
• Implementarea iterativă sau recursivă a algoritmilor de generare a produsului cartezian, permutărilor, combinărilor, aranjamentelor, submulţimilor unei mulţimi

8. Grafuri

1. Grafuri neorientate
• Terminologie și proprietăţi (graf orientat și neorientat, adiacenţă, incidenţă, grad; lanţ, drum, ciclu, circuit; subgraf, graf parţial; conexitate, arbore, arbore parţial)
• Reprezentarea în memorie a grafurilor (matrice de adiacenta, liste de adiacenta, lista muchiilor/arcelor)

2. Grafuri neorientate
• Parcurgerea grafurilor. Aplicaţii.

3. Grafuri orientate
• Terminologie și proprietăţi (graf orientat și neorientat, adiacenţă, incidenţă, grad; lanţ, drum, ciclu, circuit; subgraf, graf parţial; conexitate, arbore, arbore parţial)
• Reprezentarea în memorie a grafurilor (matrice de adiacenta, liste de adiacenta, lista muchiilor/arcelor)
• Parcurgerea grafurilor. Aplicaţii.