Principi e concetti fondamentali dell'informatica e di un linguaggio di programmazione. Rappresentazione dei dati e delle istruzioni. Utilizzo del linguaggio C. Strutture dati e algoritmi elementari
S. Berretti, L. Carnevali, E. Vicario, "Fondamenti di Programmazione: linguaggio c, strutture dati e algoritmi elementari, c++", Società Editrice Esculapio, Bologna, 2017
Obiettivi Formativi
- Comprensione e conoscenza dei concetti base dell’informatica.
- Comprensione e conoscenza dei principi fondamentali di un linguaggio di programmazione.
- Analisi e risoluzione di problemi attraverso l’implementazione di algoritmi.
- Comprensione e conoscenza del linguaggio C e delle strutture dati in esso utilizzate.
- Capacità di scrivere, compilare, eseguire ed effettuare il debug di un programma scritto in linguaggio C.
- Capacità di valutare e formalizzare la complessità di algoritmi.
Metodi Didattici
Lezioni frontali alla lavagna con l'ausilio di slide
Modalità di verifica apprendimento
L'esame prevede una prova scritta ed una prova orale
Programma del corso
- Rappresentazione dei dati: numeri, codifica posizionale; conversione della base di rappresentazione; interi con e senza segno; numeri in virgola mobile; caratteri.
- Rappresentazione delle istruzioni: linguaggio Assembly e linguaggio macchina;
principi di funzionamento ed esecuzione delle istruzioni su un processore;
definizione di un linguaggio di programmazione: grammatica, sintassi e semantica; metalinguaggio BNF.
- Il linguaggio C: tipi, variabili e costanti; operatori ed espressioni; puntatori; array ed allocazione dinamica; istruzioni; funzioni; dati strutturati.
- Strutture dati: liste, alberi; algoritmi di ricerca; algoritmi di ordinamento; costo di esecuzione e complessità di un algoritmo; complessità minima di un problema.