FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE (2° MODULO)
cod. 1004158

Anno accademico 2012/13
1° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Abilità informatiche e telematiche
Tipologia attività formativa
Altro
21 ore
di attività frontali
3 crediti
sede: -
insegnamento
in - - -

Modulo dell'insegnamento integrato: FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE

Obiettivi formativi

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

Linguaggio C++, collezioni e flussi di dati, funzioni, classi ed oggetti, interfacce grafiche, gestione della memoria.

Programma esteso

Le esercitazioni in laboratorio sono centrali per il corso. Gli esercizi proposti vertono sugli stessi argomenti generali delle lezioni in aula. L'obiettivo è di introdurre i principi della programmazione orientata agli oggetti, guidando lo studente alla soluzione di problemi con un livello di complessità crescente.

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

B. Stroustrup: Programming: Principles and Practice Using C++ - Addison-Wesley (2009) - 978-0321543721
B. Eckel: Thinking in C++. Prentice-Hall (2000).
A. Koenig, B.E. Moo: Accelerated C++: Practical Programming by Example. Addison-Wesley (2000).

Metodi didattici

Esercizi di programmazione in laboratorio.

Modalità verifica apprendimento

L'esame consiste di una prova di teoria (brevi esercizi e quiz, a cui rispondere in circa mezz'ora), una prova di programmazione (un programma ad oggetti in C++, da sviluppare in circa 3 ore) e un colloquio. La partecipazione continua e particolarmente proficua alle esercitazioni potrebbe esonerare dalla prova di programmazione finale.

Altre informazioni

Testi alternativi
J.G. Brookshear: Informatica. Una panoramica generale. Pearson (2012).
U. Avalle, L. Console, M. Ribaudo. Introduzione all'informatica. UTET (2010).

E. Clementini: Fondamenti di Informatica – Programmazione strutturata in C++. Carocci (2006).
B. Stroustrup: Programming: Principles and Practice Using C++. Addison-Wesley (2008).
H. Schildt: C++: A Beginner's Guide. McGraw-Hill (2003).
S. Prata: C++ Primer Plus. Addison-Wesley (2011).
L.J. Aguilar: Fondamenti di programmazione in C++. McGraw-Hill (2008).