FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE (1° MODULO) ( cod. 1004157)
Insegnamento di INGEGNERIA INFORMATICA, ELETTRONICA E DELLE TELECOMUNICAZIONI (Corsi di Laurea)
Facoltà di Corsi di Laurea triennale (D.M. 270/04)
TIPOLOGIA DELL'INSEGNAMENTO: ATTIVITÀ FORMATIVE DI BASE
Lingua Insegnamento:
Italiano
FREQUENZA FACOLTATIVA
Obiettivi
Apprendere i concetti di base dell'informatica e saper sviluppare semplici programmi per calcolatori elettronici, secondo il paradigma ad oggetti. Come linguaggio di programmazione principale viene usato il C++.
Prerequisiti
Nessuna propedeuticità. Si suppone comunque che lo studente conosca le basi dell'uso del computer e di Internet - l'equivalente dei moduli 1, 2, 3 e 7 del Syllabus ECDL (European Computer Driving Licence).
Contenuti dell'insegnamento
Introduzione all'informatica, rappresentazione dei dati, linguaggi e macchine astratte, sistemi informatici, sviluppo del software. Linguaggio C++, collezioni e flussi di dati, funzioni, classi ed oggetti, interfacce grafiche, gestione della memoria.
Programma esteso
Introduzione all'informatica (26 ore, in aula)
1. Introduzione: informatica, problemi, algoritmi, sistemi ad oggetti.
2. Rappresentazione dei dati: numeri in complemento a due ed in virgola mobile, algebra booleana, rappresentazione del testo, codifica ASCII ed Unicode, HTML e CSS, rappresentazione di immagini e suoni.
3. Linguaggi e macchine astratte: automi a stati finiti, espressioni regolari, macchina di Touring, architettura di von Neumann, linguaggi e paradigmi di programmazione, complessità computazionale, algoritmi di ricerca e di ordinamento.
4. Sistemi informatici: sistemi operativi, basi di dati relazionali, SQL, reti di calcolatori, World Wide Web, HTTP, PHP, Javascript, AJAX.
5. Sviluppo del software: metodologie di sviluppo e qualità del software, ricerca degli errori, gestione delle versioni, contratti, asserzioni, eccezioni, collaudo.
Programmazione ad oggetti in C++ (22 ore, in aula)
1. Il linguaggio C++: struttura di un programma, tipi di dati, costanti, variabili, espressioni, condizioni, cicli, annidamento.
2. Collezioni e flussi di dati: vettori, matrici, mappe, lettura e scrittura dati, console, file, stringhe.
3. Funzioni: ambito degli identificatori, modalità di passaggio dei parametri, stack e record di attivazione, ricorsione.
4. Classi ed oggetti: incapsulamento, allocazione dinamica di oggetti, associazioni tra classi, ereditarietà e polimorfismo.
5. Interfacce grafiche: librerie Qt, disposizione degli elementi, bottoni, menu, meccanismi di segnalazione, eventi, timer, scene con elementi animati.
6. Gestione della memoria: iteratori, puntatori, array ed array di caratteri, gestione dinamica della memoria.
Bibliografia Consigliata
D. Mandrioli, S. Ceri et al.: Informatica arte e mestiere. McGraw-Hill (2008).
B. Eckel: Thinking in C++. Prentice-Hall (2000).
A. Koenig, B.E. Moo: Accelerated C++: Practical Programming by Example. Addison-Wesley (2000).
Docenti
Anno accademico:
2012
Anno di corso:
1
Semestre:
1
Numero CFU:
6
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Ambito:
Matematica, informatica e statistica
Ore di attivita frontale:
42
Ore studio individuale:
135 






