CODICE 80302 ANNO ACCADEMICO 2016/2017 CFU 9 cfu anno 2 INFORMATICA 8759 (L-31) - SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso introduce metodologie di programmazione multithreading e multicore, ad eventi (GUI, server, dispositivi mobili, IoT) e distribuita (architetture client/server, cloud). I contenuti sono ispirati alle tematiche del Computer Science Curriculum dell'ACM/IEEE (link): Concurrency, Scheduling and Dispatch; Event-Driven and Reactive Programming; Concurrency and Parallelism: Communication and Coordination, Distributed Systems; Mobile Platforms. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Comprendere i problemi e le metodologie necessarie allo sviluppo di programmi concorrenti ed asincroni attraverso lo studio dei principi di cooperazione e sincronizzazione tra processi con memoria condivisa e tra processi distribuiti. Esercitazioni in laboratorio sull'uso di librerie per concorrenza e distribuzione in diversi linguaggi/piattaforme. MODALITA' DIDATTICHE Tradizionale: Lezioni in classe ed esercitazioni guidate in laboratorio. PROGRAMMA/CONTENUTO Teoria Problema della sezione critica Algoritmi di mutua esclusione Lock-free programming (compare and swap, test and set lock) Lock, semafori, monitor Multihreading e librerie per la concorrenza Strutture dati concorrenti Programmazione ad eventi in Java/Swing Programmazione di rete (ServerSocket e Remote Method Invocation) Transazioni Processi in Android Introduzioni ai sistemi distribuiti e algoritmi di base Laboratorio Programmazione concorrente, distribuita ed ad eventi in C e Java Progetto finale DOCENTI E COMMISSIONI GIORGIO DELZANNO Ricevimento: Orario di ricevimento: Me 14-15 Commissione d'esame GIORGIO DELZANNO (Presidente) GIOVANNI CHIOLA MARINA RIBAUDO LEZIONI Orari delle lezioni PROGRAMMAZIONE CONCORRENTE E ALGORITMI DISTRIBUITI ESAMI MODALITA' D'ESAME Prova scritta + Progetto finale + prova orale. Calendario appelli Data appello Orario Luogo Tipologia Note 16/06/2017 09:00 GENOVA Scritto 03/07/2017 09:00 GENOVA Scritto 20/07/2017 09:00 GENOVA Scritto 13/09/2017 09:00 GENOVA Scritto 27/09/2017 14:00 GENOVA Scritto