Scheda programma d'esame
CONCURRENT AND DISTRIBUTED SYSTEMS
ALESSIO BECHINI
Anno accademico2018/19
CdSCOMPUTER ENGINEERING
Codice589II
CFU9
PeriodoPrimo semestre
LinguaInglese

ModuliSettore/iTipoOreDocente/i
CONCURRENT DISTRIBUTED SYSTEMSING-INF/05LEZIONI90
ALESSIO BECHINI unimap
GIUSEPPE LETTIERI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Il corso ha lo scopo di fornire agli studenti una visione organica delle basi della programmazione concorrente e distribuita. Le lezioni si focalizzano su modelli di sistemi e su vari tipi di framework a supporto dello sviluppo di sistemi concorrenti, a diversi livelli di astrazione e su differenti piattaforme.

Knowledge

The course is aimed at providing students with a comprehensive vision of the foundations of concurrent and distributed programming. The main focus of the lectures is on system models and on different types of frameworks intended to support the development of concurrent systems at different abstraction levels and on different underlying platforms. 

 

 

Modalità di verifica delle conoscenze

La conoscenza delle basi teoriche e degli aspetti tecnologici di alto livello verrà verificata in sede di esame orale. Lo studente è chiamato a fornire risposte utilizzando un linguaggio appropriato e tecnicamente corretto.

Assessment criteria of knowledge

The knowledge of the basic theoretical foundations and the high-level technological aspects will be assessed in during the oral exam. The student is expected to answer all the questions using a proper and technically sound language.

Capacità

Ci si aspetta che lo studente diventi in grado di affrontare problemi di coordinazione in applicazioni software concorrenti e distribuite, sviluppando soluzioni efficaci. Particolare importanza riveste la conoscenza delle caratteristiche concorrenti del linguaggio Java.

Gli studenti dovranno acquisire le capacità fondamentali per partecipare al progetto, sviluppo e integrazione di sistemi software concorrenti e distribuiti, eventualmente costituiti da moduli eterogenei.

Skills

The student is expected to become able to tackle coordination problems in concurrent and distributed software applications, developing effective solutions. Particular emphasys is given to the concurrent features of the Java programming language.

Students will acquire the basic skills to participate in the design, implementation and integration of concurrent and distributed software systems, possibly made of heterogeneous components.

Modalità di verifica delle capacità

La capacità dello studente di progettare e sviluppare software concorrente e distribuito nelle loro varie forme verrà verificata tramite i risultati conseguiti nel progetto assegnato. Tale progetto darà allo studente la possibilità di mostrare il livello raggiunto nella progettazione e nella programmazione.

Assessment criteria of skills

The student's ability in designing and developing concurrent and distributed software in their different forms will be assessed through the results obtained in developing an assigned project. Such a project will give the student the opportunity to show his/her proficiency in design and coding.

 

Comportamenti

Lo studente svilupperà la sua sensibilità nell'individuare, all'interno di sistemi software, problemi molto sottili legati alla loro natura concorrente.

Behaviors

The student will develop his/her awareness in spotting out subtle problems in software systems whose origin can be related to inherent concurrency issues.

Modalità di verifica dei comportamenti

La sensibilità nell'individuare problematiche concorrenti è verificata nel progetto finale, nonché attraverso opportune domande in sede di orale.

Assessment criteria of behaviors

The developed ability to spot out concurrent problems will be assessed in the final project, as well as through specific questions in the oral exam.

Prerequisiti (conoscenze iniziali)

Nozioni di architettura dei calcolatori e di sistemi operativi. Padronanza dei principali costrutti dei linguaggi di programmazione Java e C.

Prerequisites

Notions of computer architecture and operating systems. Mastering of the basic constructs of the Java and C programming languages.

Indicazioni metodologiche

Tipo di lezione: frontale

Attività di apprendimento:

  • frequenza delle lezioni
  • studio individuale
  • lavoro di gruppo
  • àttività di laboratorio

Frequenza: Consigliata

Metodi d'insegnamento:

  • Lezioni
  • Laboratori
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study
  • group work
  • Laboratory work

Attendance: Advised

Teaching methods:

  • Lectures
  • laboratory
Programma (contenuti dell'insegnamento)

Nozioni di concorrenza, gestione di tasks/threads, paradigmi/modelli di concorrenza.

Modello a memoria condivisa, mutua esclusione, costrutti e tecniche di sincronizzazione, modelli di consistenza.

Modello a scambio di messaggi, sistemi asincroni e sincroni, precedenza e causalità, algoritmi distribuiti fondamentali, guasti distribuiti.

Paradigmi di comunicazione (diretta/indiretta), RPC, RMI, Message-Oriented Messaging.

Framework paralleli/distribuiti: pattern, applicazioni web, component-based enterprise applications.

Tecnologie per Cloud Computing: virtualizzazione, paravirtualizzazione, file system distribuiti, containers, live migration.

 

Consultare il sito web del corso per qualsiasi ulteriore dettaglio sul programma.

Syllabus

Notion of concurrency, management of tasks/threads, concurrent models/paradigms.

Shared memory model, mutual exclusion, synchronisation constructs and techniques, consistency models.

Message passing model, asynchronous vs. synchronous systems, precedence and causality, basic distributed algorithms, distributed faults.

Communication paradigms (direct vs. indirect), RPC, RMI, Message-Oriented Messaging.

Parallel/distributed frameworks: patterns, web applications, component-based enterprise applications.

 

Technologies for Cloud Computing: virtualization, paravirtualization, distributed file systems, containers, live migration.

 

Please refer to the course website for any further detail on the syllabus.

Bibliografia e materiale didattico

Il materiale didattico, nonchè letture o libri consigliati, è indicato (e continuamente aggiornato) sul sito del corso. Il docente è disponibile riguardo a qualsiasi richiesta inerente al materiale didattico da usare.

Bibliography

Learning material, as well as recommended readings/books, are listed and continuously updated on the course website. The teacher is available to discuss any issue around learning material, if any, with the interested students.

Indicazioni per non frequentanti

Gli studenti non frequentanti sono invitati a contattare il docente per discutere riguardo al migliore approccio per arrivare a sostenere l'esame.

Non-attending students info

Students that cannot attend lectures are invited to contact the teacher to find the better way to study the course subjects and pass the final exam.

Modalità d'esame

L'esame finale è organizzato com segue:

a) sviluppo di un progetto, in gruppi di studenti

b) prova orale (eventualmente anche con esercizi da svolgere alla lavagna).

Il tema del progetto è proposto dal gruppo di studenti, e le relative specifiche sono definite insieme al docente. Dopo aver svolto il progetto, il gruppo deve formalmente presentare al docente il lavoro svolto, per averne la valutazione. La prova orale può essere sostenuta soltanto previo giudizio positivo sulla presentazione del progetto.

Durante la prova orale, lo studente deve rispondere a varie domande relative all'intero programma del corso.

Assessment methods

The final test is organized as follows:

a) development of a project, in groups of students

b) oral exam (possibly with written exercises).

The project theme is proposed by groups of students, and the specifications are refined together with the teacher. After the project development, the group must present the complete work to the teacher for its assessment. Admission to the oral exam is granted upon the positive assessment of the project work.

During the oral exams, the student is asked to answer multiple questions on topics in the whole course syllabus.

Altri riferimenti web

Vedi sito web del corso.

Additional web pages

See the course website.

Note

Nessuna.

Notes

None.

Ultimo aggiornamento 25/09/2018 22:40