Fondamenti di informatica
Numero di crediti ECTS: 12
SSD di riferimento: INF/01
Docente: S. Perri
Prerequisiti
Nessuno.
Obiettivi
Obiettivo primario del corso è quello di fornire un'adeguata conoscenza dei principi fondamentali della programmazione e degli algoritmi. Lo studente acquisirà anche una buona padronanza di un concreto strumento per la programmazione dei calcolatori elettronici: il Linguaggio C++. Viene trattata la programmazione strutturata in C++ e viene introdotta la programmazione orientata agli oggetti, che sarà oggetto di un corso successivo. Il corso prevede un'ampia attività di laboratorio, in cui lo studente familiarizzerà con ambienti di programmazione C++.
Programma
- Rappresentazione dell’informazione
- Rappresentazione di numeri naturali; Cenni di aritmetica binaria; Rappresentazione di informazione non numerica (caratteri, immagini, ecc.).
- Calcolo proposizionale.
- Architettura del calcolatore
- Processore, memoria centrale, memoria di massa, memoria cache, periferiche.
- Algoritmi
- Definizione di algoritmo; Risoluzione algoritmica dei problemi.
- Linguaggi di Programmazione
- Definizione informale di un linguaggio di programmazione, Linguaggi a basso e ad alto livello, Interpreti e Compilatori, Diagrammi di flusso e pseudo-codice, Ambienti integrati di programmazione, Gli ambienti visuali.
- Programmazione in C++ - Primi Passi
- Struttura di un programma; La funzione main; Librerie e namespace; Operazioni di ingresso/uscita: la libreria iostream; Concetto di variabile; Inizializzazione e assegnamento; Costanti; Espressioni aritmetiche e booleane; Priorità degli operatori.
- Ambienti di sviluppo
- Compilatore, linker e debugger; Definizione dello spazio di lavoro e di un progetto; L'Editor; Compilazione, esecuzione e debugging di un programma.
- Tipi Primitivi
- Tipi interi, tipi reali, tipo char, tipo bool; Conversioni di tipo e operazioni di cast.
- Strutture di Controllo
- Istruzioni semplici e composte, definizione di blocco di istruzioni, visibilità delle variabili; L'istruzione IF; L'istruzione WHILE; L'istruzione FOR; L'istruzione DO-WHILE; L'istruzione SWITCH; L’istruzione BREAK; Istruzioni innestate.
- Funzioni
- Dichiarazione; Parametri formali e valore di ritorno; Passaggio per valore e passaggio per riferimento; Concetto di ricorsione; Funzioni ricorsive; Cenni all’overloading delle funzioni.
- Array
- Dichiarazione, inizializzazione, manipolazione e passaggio come parametri a funzioni; Array multidimensionali.
- Puntatori e riferimenti
- Riferimento e indirizzamento indiretto; Puntatori; Array e puntatori; Array di puntatori e puntatori ad array; Allocazione dinamica della memoria; Array dinamici.
- Array di caratteri e stringhe
- Concetti fondamentali; Funzioni di libreria.
- Introduzione alla Programmazione Orientata Agli Oggetti
Bibliografia
- Harvey M. Deitel, Paul J. Deitel, "C++ Fondamenti di programmazione" - APOGEO
- Stanley B. Lippman, Josée Lajoie, Barbara E. Moo, "C++-primer" - Pearson
Tipologia di attività didattiche
Lezioni, esercitazioni in aula, esercitazioni guidate in laboratorio.
Metodi di valutazione
Prova di Laboratorio e Prova scritta.