Anno di corso: 1

Crediti: 8
Crediti: 8
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

PROGRAMMAZIONE E AMMINISTRAZIONE DI SISTEMA

Scheda dell'insegnamento

Anno accademico di regolamento: 
2015/2016
Anno di corso: 
3
Anno accademico di erogazione: 
2017/2018
Tipo di attività: 
Obbligatorio a scelta
Crediti: 
8
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
80
Prerequisiti: 

Conoscenze di base di programmazione.

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

La verifica dell'apprendimento comprende una prova scritta e una discussione del risultato.

Valutazione: 
Voto Finale

Obiettivi formativi

Al termine del percorso, lo studente sarà in grado di progettare e sviluppare programmi modulari e manutenibili. Sarà inoltre in grado di applicare le moderne tecniche di programmazione C++ per sviluppare applicazioni performanti e grafiche gestendo in modo corretto e attento le risorse. Le competenze acquisite consentiranno allo studente di affrontare e comprendere le applicazioni C++ più complesse.

Contenuti

L’insegnamento si prefigge di dare allo studente le basi necessarie per affrontare lo sviluppo di applicazioni C++ in modo corretto ed attento alle problematiche di gestione delle risorse. A tal fine saranno mostrate, attraverso l'uso intensivo di casi di studio, le criticità e difficoltà inerenti al linguaggio C++ e le tecniche più adatte ad affrontarle. Sarà inoltre presentato un framework cross-platform per lo sviluppo di applicazioni C++ grafiche.

Programma esteso

Introduzione al C++.
Concetti base di programmazione C++
• tipi di dati, puntatori, reference, scoping
• casting
C++ come linguaggio ad oggetti
• classi, costruttori e distruttori, overloading, metodi friend
• inline, constness
Concetti avanzati di programmazione C++
• overloading degli operatori
• metodi virtual, abstract, polimorfismo
• ereditarietà
Programmazione generica
• Template
• Iteratori
• Funtori
La libreria Standard (STL)
• Le classi container
• Gli algoritmi
• I thread
Uso delle librerie esterne
• Librerie statiche
• Librerie dinamiche
• La libreria OpenMP
I nuovi standard C++11, C++14
Applicazioni GUI
• Ambiente di sviluppo QT Creator
• Sviluppo di interfacce grafiche
• Gestione degli eventi
• Le librerie Qt, QTWidgets

Bibliografia consigliata

* Bjarne Stroustrup, The C++ Programming Language - Special Edition, Addison Wensley. La "Special Edition" è la versione riveduta e corretta della "Third Edition".
* Bruce Eckel, Thinking in C++ vol. 1 e vol. 2, Prentice Hall
* Peter Van Weert, Marc Gregoire, C++ Standard Library Quick Reference, Apress
* Lee Zhi Eng, Qt5 C++ GUI Programming Cookbook, Packt Publishing

Metodi didattici

Lezioni ed esercitazioni in aula. Attività di laboratorio.