Introduzione  

Concetti  introduttivi. Calcolatore, modello astratto.  Problema, input, output, 

specifiche, algoritmo, correttezza, programma, linguaggi di programmazione, 

compilatori, interpreti, esecuzione. 


Elementi di Base 

Elementi  di  base di  logica.  Connettivi,  tavole di  verità,  assiomi  logici, 

quantificatori, formalizzazione, variabili, espressioni. 

Elementi di base di  un linguaggio di programmazione. Tipi, valori, variabili, 

costanti,  operatori  (aritmetici,  booleani,  relazionali),  espressioni,  priorità. 

Identificatori, parole chiave. 


Laboratorio (CFU 0.25) 

Input e Output nel linguaggio di riferimento. Familiarizzando con l’ambiente di 

programmazione, l’editor, Stampare su schermo, scrittura di semplici programmi. 


Flusso del Controllo (CFU 1) 

Dichiarazioni, espressioni, assegnamento, Istruzione. Costruzione sequenziale 

di istruzioni, flusso di controllo, istruzione composta.  Istruzione condizionale, If- 

then-else. Iterazione. Pre e post condizione di una istruzione. Cenni di verifica. 

Cenni su invariante e  costruzioni di cicli a partire da invariante. Progetto di un 

ciclo. 


Laboratorio (CFU 0.25) 

Leggere dati dall’input e iterazione applicata a dati di tipo scalare. 



Procedure, Funzioni, programmazione ricorsiva (CFU 1.25) 

Funzioni, procedure, parametri attuali e formali, chiamata di funzione, passaggio 

dei parametri.Distinzione tra parametri di input e di output. Pre-condizione e 

Post-condizione di una funzione.Dichiarazione di funzione e prototipi. 

Scomposizione di un programma in più funzioni.  Visibilità delle variabili 

Funzioni di libreria. Programmazione ricorsiva



Laboratorio (CFU 0.25) 

Scomposizione di programmi in una o più funzioni, ricorsione su dati di tipo 

scalare. 


Vettori, Stringhe Puntatori (CFU 1,25) 

Array, Puntatori, array come parametri di funzione. Relazione tra array  e 

puntatori. Aritmetica dei puntatori. Schemi iterativi di scansione di un vettore. 

Schemi iterativi di ricerca in un vettore. 

Ricorsione su vettori. Array multidimensionali. Stringhe e puntatori. Funzioni di 

libreria per la gestione di stringhe. 



Laboratorio (CFU 0.25) 

Esempi di iterazione e ricorsione su vettori e stringhe. 

Primi Esempi di Algoritmi fondamentali (CFU 0.75) 

Su vettori: Ordinamenti (bubble-sort, selezione, inserzione), fusione di vettori, 

merge sort, ricerca binaria 


Laboratorio (CFU 0.25) 

Implementazione di varianti di algoritmi di ordinamento su vetto 


Gestione memoria in C e strutture dinamiche di dati (Liste) (CFU 1.25) 

Tipo enumerativi e loro uso. Strutture, unioni, Strutture autoreferenzianti. 

Allocazione dinamica della memoria. Liste concatenate lineari, doppie e circolari. 

Operazioni  fondamentali  sulle liste (inserimento,  cancellazione).  Algoritmi 

ricorsivi e iterativi su liste. 


Laboratorio (CFU 0.25) 

Implementazioni di funzioni  su liste.