CODICE 80302 ANNO ACCADEMICO 2026/2027 CFU 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Introduzione alla programmazione multithreaded, concorrente, ad eventi e distribuita. L'insegnamento introduce concetti di base legati ad architetture multicore, multithreading nei sistemi operativi e nella programmazione di algoritmi ed architetture di base per sistemi distribuiti. L'insegnamento ha una parte di teoria in classe e una serie di laboratori. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Comprendere i problemi e le metodologie necessarie allo sviluppo di programmi concorrenti e asincroni attraverso lo studio dei principi di comunicazione e sincronizzazione tra processi con memoria condivisa e tra processi distribuiti su linguaggi e piattaforme differenti. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine dell'insegnamento lo studente/la studentessa sarà in grado di: -Descrivere le problematiche dovuto all'esecuzione concorrente di programmi -Descrivere il problema della mutua esclusione -Descrivere le differenze fra comunicazione tramite memori condivisa e comunicazione tramite messaggi -Analizzare il comportamento di un sistema concorrente -Usare i meccanismi di sincronizzazione come mutex, semafori e variabile di condizione -Implementare in vari linguaggi dei sistemi concorrenti -Descrivere i problemi legati ai sistemi distribuiti con fallimenti PREREQUISITI Programmazione in Linguaggio Java/C Sistemi Operativi Programmazione rete Concetti di Base di Reti di Calcolatori MODALITA' DIDATTICHE Lezioni frontali di teoria Esercitazioni in classe Esercitazioni di laboratorio Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA), per disabilità o altri bisogni educativi sono invitati a contattare il docente e il referente di Scuola per la disabilità all’inizio dell’insegnamento per concordare eventuali modalità didattiche che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali. I contatti del referente di Scuola per la disabilità sono disponibili al seguente link https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita. PROGRAMMA/CONTENUTO Concorrenza nel SO e in sistemi multithreading Introduzione alla Programmazione Concorrente Introduzione pratica alla concorrenza Librerie di sincronizzazione standard come mutex e barriere Semafori e monitorss Introduzione ad Algoritmi Distribuiti Programmazione concorrente distribuita in rete TESTI/BIBLIOGRAFIA Lucidi e note del docente messe a disposizione su Aulaweb Materiale online The Art of Multiprocessing Programming. M. Herlihy and N. Shavit. Principles of Concurrent and Distributed Programming - Mordechai Ben-Ari DOCENTI E COMMISSIONI ARNAUD HENRI PAUL SANGNIER Ricevimento: Ricevimento su appuntamento via mail. LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consiste in un esame scritto di 2 ore e la consegna di alcuni laboratori fatti durante l'anno. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/8759/studenti-disabilita-dsa MODALITA' DI ACCERTAMENTO La prova scritta verifica la capacità dello studente di mettere in pratica le nozioni viste a lezione e la consegna di alcuni laboratori permette di controllare che lo studente è capace di usare i concetti visti in pratica. ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente. Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA) possono richiedere adattamenti in sede d'esame, con almeno 7 giorni di anticipo rispetto alla data dell’esame, compilando il "modulo richieste adattamenti" (dai servizi online https://modulionline.unige.it/richiesta-adattamenti#no-back) che verrà inviato in automatico dal sistema al/alla docente responsabile dell’insegnamento e al/alla docente referente per gli studenti con disabilità e con DSA della propria Scuola/Area. Lo studente riceverà una copia della sua richiesta.