#acl SUAGroup:read,write,admin,delete,revert All:read == 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.