Advanced computer programming

A.A. 2014/2015
Insegnamento per
6
Crediti massimi
48
Ore totali
Lingua
Inglese

Struttura insegnamento e programma

Linea Crema
Edizione attiva
Responsabile
Programma
A) Paradigmi di programmazione avanzata
- functional e data-driven programming
- astrazione di dati e di processo; object oriented, parametric e generic programming
- reflection, reification, decorators, metaclasses ed annotation
- programmazione concorrente, distribuita, event-driven; GPU programming
B) Low level programming
C) Mobile, component-based ed aspect-oriented programming

Durante lezioni di laboratorio vengono discussi esempi e proposti esercizi utilizzando i linguaggi di programmazione Python, Java, C e C++.
Informazioni sul programma
La programmazione e` un campo trasversale in Informatica: essere in grado di sviluppare e comprendere codice utilizzando tecnologie avanzate e` di importanza fondamentale sia per gestire che per contribuire ad ogni attivita` di sviluppo di progetti software.

Il corso ha obiettivi sia metodologici che applicativi, al fine di fornire sia una comprensione teorica che abilita` pratiche per programmare in modo efficace nei vari domini dell'Informatica.

Dal punto di vista metodologico, il corso intende rendere gli studenti in grado di
- comprendere meglio gli ambiti applicativi del calcolo
- scegliere i paradigmi di programmazione piu` appropriati per ogni ambito applicativo
- valutare e migliorare la robustezza del codice rispetto ai bug
- migliorare le abilita` di fattorizzazione e strutturazione del codice
- sfruttare maggiormente le capacita` di calcolo di hardware specializzato

Dal punto di vista applicativo, il corso fornisce abilita` 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 programazione ad alto livello di architetture orientate ai servizi
Propedeuticità
Computer Programming (Programmazione)
Prerequisiti e modalità di esame
Progetto e prova orale
Metodi didattici
Lezioni frontali
Materiale didattico e bibliografia
Handouts, slides and tutorials given by the teachers during the course (dispense, slides e tutorial forniti dai docenti durante il corso)
Periodo
Primo semestre
Periodo
Primo semestre
Modalità di valutazione
Esame
Giudizio di valutazione
voto verbalizzato in trentesimi
Docente/i
Ricevimento:
Su appuntamento tramite email
Dipartimento di Informatica - Via Celoria 18 - Stanza 3015
Ricevimento:
su appuntamento
S202 - DTI - Via Bramante 65, Crema
Ricevimento:
Su appuntamento (concordato per email o telefono)
Dipartimento di Informatica, via Celoria 18, stanza 6004 (6 piano, ala Ovest), Milano o Polo didattico di Crema (CR)