Parte I
Linguaggio C (16h)
• Tipi di base: Tipo logico (operatori booleani e bitwise), tipi numerici (Sistema aritmetico degli interi, Sistema Aritmetico Binario Floating-point Standard IEEE 754), tipo carattere e stringa.
Strutture dati dinamiche (20h)
• ADT lineari (lista, coda, pila),
• gerarchiche (alberi, alberi binari, ABR e heap),
• reticolari (grafi).
• Implementazione in C delle strutture di dati dinamiche e dei relativi algoritmi di gestione.
Funzioni ricorsive ed algoritmi ricorsivi
• Classificazione delle funzioni ricorsive e relativa analisi della profondità di ricorsione.
• Esempi di algoritmi ricorsivi in C.
Problemi di base (12h)
• Pattern Matching (algoritmo di ricerca diretta, algoritmo di Knuth-Morris-Pratt),
• algoritmi di ordinamento "Divide et Impera" ed analisi di complessità nelle relative versioni iterative e ricorsive (Mergesort, Quicksort, Heapsort).
Parte II
Linguaggio C++ (12h + 12h Lab.)
• Introduzione alla Programmazione Object Oriented
• Linguaggio C++, compilatore gcc e ambiente di sviluppo Code::Blocks
• Tipi di dati fondamentali
• Istruzioni, Operatori, Funzioni
• Strutture, Unioni ed Enumerazioni
• Namespace
• Classi ed Oggetti (Classi concrete, Classi derivate, Classi Astratte)
• Template e Contenitori