Obiettivi Formativi
Il Corso ha lo scopo di illustrare i principi di base, le tecniche e gli strumenti della programmazione di applicazioni informatiche, attraverso la presentazione dei concetti tipici della programmazione procedurale.
Programma
01. Introduzione alla programmazione degli elaboratori:
01.01 Definizioni di base dell'informatica.
01.02 Cenni di storia dell'informatica.
01.03 Architettura degli elaboratori.
01.04 Sistemi operativi.
01.05 Linguaggi di programmazione e compilatori.
01.06 Una metodologia di sviluppo software "in the small".
02. Introduzione al linguaggio ANSI C:
02.01 Cenni di storia del C.
02.02 Formato di un programma con una singola funzione.
02.03 Inclusione di libreria.
02.04 Funzione main.
02.05 Identificatori.
02.06 Tipi di dati predefiniti: int, double, char.
02.07 Funzioni di libreria per l'input/output interattivo.
02.08 Funzioni di libreria per l'input/output tramite file.
03. Costanti, variabili ed espressioni:
03.01 Definizione di costante simbolica.
03.02 Dichiarazione di variabile.
03.03 Operatori aritmetici.
03.04 Operatori relazionali.
03.05 Operatori logici.
03.06 Operatore condizionale.
03.07 Operatori di assegnamento.
03.08 Operatori di incremento/decremento.
03.09 Operatore virgola.
03.10 Espressioni aritmetico-logiche.
03.11 Precedenza e associativit? degli operatori.
04. Istruzioni:
04.01 Istruzione di assegnamento.
04.02 Istruzione composta.
04.03 Istruzioni di selezione: if, switch.
04.04 Istruzioni di ripetizione: while, for, do-while.
04.05 Istruzione goto.
04.06 Teorema fondamentale della programmazione strutturata.
05. Funzioni:
05.01 Formato di un programma con pi? funzioni su singolo file.
05.02 Dichiarazione di funzione.
05.03 Definizione di funzione e parametri formali.
05.04 Invocazione di funzione e parametri effettivi.
05.05 Istruzione return.
05.06 Parametri e risultato della funzione main.
05.07 Passaggio di parametri per valore e per indirizzo.
05.08 Funzioni ricorsive.
05.09 Modello di esecuzione a pila.
05.10 Formato di un programma con pi? funzioni su pi? file.
05.11 Visibilit? degli identificatori locali e non locali.
06. Tipi di dati:
06.01 Classificazione dei tipi di dati e operatore sizeof.
06.02 Tipo int: rappresentazione e varianti.
06.03 Tipo double: rappresentazione e varianti.
06.04 Funzioni di libreria matematica.
06.05 Tipo char: rappresentazione e funzioni di libreria.
06.06 Tipi enumerati.
06.07 Conversioni di tipo e operatore di cast.
06.08 Array: rappresentazione e operatore di indicizzazione.
06.09 Stringhe: rappresentazione e funzioni di libreria.
06.10 Strutture e unioni: rappresentazione e operatore punto.
06.11 Puntatori: operatori e funzioni di libreria.
07. Attivit? di laboratorio:
07.01 Sessione di lavoro in Linux.
07.02 Accesso ad Internet in Linux.
07.03 Gestione dei file in Linux.
07.04 L'editor gvim.
07.05 Il compilatore gcc.
07.06 L'utility di manutenzione make.
07.07 Implementazione dei programmi introdotti a lezione.
07.08 Il debugger gdb.
07.09 Sviluppo guidato di ulteriori programmi.