Insegnamento
PROGRAMMAZIONE CONCORRENTE E DISTRIBUITA
SC01122886, A.A. 2016/17

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
INFORMATICA
SC1167, ordinamento 2011/12, A.A. 2016/17
1118625
Crediti formativi 6.0
Denominazione inglese CONCURRENT AND DISTRIBUTED PROGRAMMING
Sito della struttura didattica http://informatica.scienze.unipd.it/2016/laurea
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede PADOVA

Docenti
Responsabile SILVIA CRAFA INF/01

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Discipline Informatiche INF/01 6.0

Modalità di erogazione
Periodo di erogazione Primo semestre
Anno di corso III Anno
Modalità di erogazione frontale

Organizzazione della didattica
Tipo ore Crediti Ore di
Corso
Ore Studio
Individuale
Turni
ESERCITAZIONE 2.25 18 38.25 Nessun turno
LEZIONE 3.75 30 63.75 Nessun turno

Calendario
Inizio attività didattiche 01/10/2016
Fine attività didattiche 20/01/2017

Commissioni d'esame
Nessuna commissione d'esame definita

Syllabus
Prerequisiti: Conoscenze di programmazione.
E' propedeutico l'insegnamento di Programmazione ad Oggetti.
Conoscenze e abilita' da acquisire: Il corso presenta il linguaggio Java e la programmazione a diversi livelli di astrazione: la programmazione ad oggetti, la programmazione concorrente, e la programmazione distribuita.
Modalita' di esame: L'esame consiste in una prova scritta seguita opzionalmente dalla discussione orale del progetto obbligatorio. Il progetto consiste in un'applicazione distribuita.
Criteri di valutazione: La prova scritta valuta l'apprendimento del linguaggio java e la capicita' di realizzare soluzioni corrette per problemi di natura concorrente.
La prova orale valuta non solo la correttezza e la funzionalita' dell'applicazione distribuita realizzata, ma anche la capacita' dello studente di illustrare il programma e giustificarne le scelte di base.
Contenuti: 1. Programmazione ad oggetti:
- classi, oggetti, ereditarieta', polimorfismo
- organizzazione delle classi: classi astratte, interfacce, classi interne (statiche, di istanza, anonime, innestate in interfacce)
- grafica e gestione degli eventi.
2. Programmazione concorrente: thread, scheduling, accesso sincronizzato a dati condivisi, comunicazione tra thread.
3. Programmazione distribuita: stream e serializzazione, socket, RMI.
Attivita' di apprendimento previste e metodologie di insegnamento: Il corso prevede lezioni teoriche, lezioni di esercitazioni, e la realizzazione di un progetto che prevede l'uso di tutte le caratteristiche del linguaggio Java viste nel corso.
Eventuali indicazioni sui materiali di studio:
Testi di riferimento:
  • Silvia Crafa, Oggetti, Concorrenza, Distribuzione. Programmare a diversi livelli di astrazione.. --: Esculapio, 2014, 2013. Cerca nel catalogo
  • C.S. Horstmann, G.Cornell, Core Java - vol I and II. --: Prentice hall, 2013. Cerca nel catalogo