Advanced computer programming
A.A. 2019/2020
Obiettivi formativi
La programmazione è un campo trasversale in Informatica: essere in grado di sviluppare e comprendere codice utilizzando tecnologie avanzate è di importanza fondamentale sia per gestire che per contribuire ad ogni attività di sviluppo di progetti software.
L'insegnamento ha obiettivi sia metodologici che applicativi, al fine di fornire sia una comprensione teorica che abilità pratiche per programmare in modo efficace nei vari domini dell'Informatica.
Dal punto di vista metodologico, l'insegnamento intende rendere gli studenti in grado di
- comprendere meglio gli ambiti applicativi del calcolo
- scegliere i paradigmi di programmazione più appropriati per ogni ambito applicativo
- valutare e migliorare la robustezza del codice rispetto ai bug
- migliorare le abilità di fattorizzazione e strutturazione del codice
- sfruttare maggiormente le capacità di calcolo di hardware specializzato
Dal punto di vista applicativo, l'insegnamento fornisce abilità pratiche
- nello sviluppo di applicazioni che utilizzino programmazione orientata agli oggetti e linguaggi di scripting
- nella programmazione a basso livello di dispositivi specializzati e sistemi embedded
- nella programmazione ad alto livello di architetture orientate ai servizi
L'insegnamento ha obiettivi sia metodologici che applicativi, al fine di fornire sia una comprensione teorica che abilità pratiche per programmare in modo efficace nei vari domini dell'Informatica.
Dal punto di vista metodologico, l'insegnamento intende rendere gli studenti in grado di
- comprendere meglio gli ambiti applicativi del calcolo
- scegliere i paradigmi di programmazione più appropriati per ogni ambito applicativo
- valutare e migliorare la robustezza del codice rispetto ai bug
- migliorare le abilità di fattorizzazione e strutturazione del codice
- sfruttare maggiormente le capacità di calcolo di hardware specializzato
Dal punto di vista applicativo, l'insegnamento fornisce abilità pratiche
- nello sviluppo di applicazioni che utilizzino programmazione orientata agli oggetti e linguaggi di scripting
- nella programmazione a basso livello di dispositivi specializzati e sistemi embedded
- nella programmazione ad alto livello di architetture orientate ai servizi
Risultati apprendimento attesi
- capacità di utilizzare linguaggi per programmazione orientata agli oggetti, generic programming e meta programming;
- capacità di utilizzare linguaggi per programmazione data-driven;
- capacità di sviluppare software per dispositivi mobili (es. Android) e sistemi embedded
- capacità di utilizzare linguaggi per programmazione data-driven;
- capacità di sviluppare software per dispositivi mobili (es. Android) e sistemi embedded
Periodo: Primo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Periodo
Primo semestre
Programma
Il programma è condiviso con i seguenti insegnamenti:
- [F2Y-44](https://www.unimi.it/it/ugov/of/af20200000f2y-44)
- [F2Y-44](https://www.unimi.it/it/ugov/of/af20200000f2y-44)
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente:
Ceselli Alberto
Turni:
-
Docente:
Ceselli AlbertoSiti didattici
Docente/i
Ricevimento:
Su appuntamento tramite email
Dipartimento di Informatica - Via Celoria 18 - Stanza 3015