Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


APPLICAZIONI DISTRIBUITE E CLOUD COMPUTING
DISTRIBUTED APPLICATIONS AND CLOUD COMPUTING

A.A. CFU
2024/2025 9
Docente Email Ricevimento studentesse e studenti
Claudio Antares Mezzina Giovedì 11:00–13:00 su appuntamento
Didattica in lingue straniere
Insegnamento con materiali opzionali in lingua straniera Inglese
La didattica è svolta interamente in lingua italiana. I materiali di studio e l'esame possono essere in lingua straniera.

Assegnato al Corso di Studio

Informatica e Innovazione Digitale (LM-18)
Curriculum: PERCORSO COMUNE
Giorno Orario Aula
Giorno Orario Aula

Obiettivi Formativi

Lo scopo del corso è fornire allo studente i fondamenti e gli strumenti per la progettazione e implementazione di applicazioni distribuite e cloud-computing. Verranno introdotte le nozioni principali di comunicazione nei sistemi distributi (code e canali). Dopo un'introduzione teorica sulle algebre di processo per sistemi distribuiti verranno presentati due linguaggi: goLang ed Erlang.

Programma

01. Introduzione alle applicazioni distribuite e al cloud computing
01.01 Concetti principali
01.02 Linguaggi di programmazione usati

02 Algebre di processo per sistemi distribuiti
02.01 Introduzione alle algebre di processo
02.02 Comunicazione a canale e comunicazione a coda
02.03 Concetti base di teoria comportamentale

03 Programmazione base in Erlang 
03.01 Introduzione ad Erlang
03.02 Programmazione funzionale in Erlang
03.03 Programmazione procedurale in Erlang 

04 Programmazione Concorrente in Erlang
04.01 Attori, spawn e pid
04.02 Modello ad Errori di Erlang

05 Memoria persistente in Erlang
05.01 Tabelle ets e dets
05.02 Il db Mnesia

06 Il modello ad errori di Erlang
06.01 Monitoring e Supervisor Tree
06.02 Genserver e i Behaviours in Erlang
06.03 Tracing and Debugging

07 goLang e la programmazione a canali
07.01 Introduzione a goLang
07.02 Programmazione a canali
07.03 goroutines e programmazione concorrente

08 Syncrhonization Patterns
08.01 Il modello publish and subscribe
08.02 Randez-vous distribuiti

09 Altri modelli ad attori
09.01 Elixir
09.02 Attori in Java, Scala

Eventuali Propedeuticità

Sebbene non sia prevista nessuna propedeuticità è fortemente consigliato aver superato il corso di SISTEMI DISTRIBUITI

Risultati di Apprendimento (Descrittori di Dublino)

Conoscenze e comprensione: lo studente acquisirà le principali conoscenze sulla programmazione di applicazioni distribuite

Capacità di applicare conoscenze e comprensione: lo studente sarà in grado di applicare le conoscenze acquisite con l'obiettivo di progettare applicazioni distribuite. Sarà anche in grado progettare ed implementare applicazioni reali.

Autonomia di giudizio: lo studente sarà in grado programmare un'applicazione distribuita.

Abilità comunicative: Lo studente sarà in grado di usare in modo appropriato la terminologia dei sistemi distribuiti. Inoltre, lo studente sarà in grado di illustrare le caratteristiche descrittive e funzionalità di un sistema e di applicazioni distribuite.

Capacità di apprendimento: lo studente apprenderà la capacità di progettare e implementare sistemi sulla base di requisiti e specifiche descrittive che specificano la tipologia di contenuti ed operazioni necessarie alla gestione di una applicazione distribuita.

Materiale Didattico

Il materiale didattico predisposto dalla/dal docente in aggiunta ai testi consigliati (come ad esempio diapositive, dispense, esercizi, bibliografia) e le comunicazioni della/del docente specifiche per l'insegnamento sono reperibili all'interno della piattaforma Moodle › blended.uniurb.it

Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento

Modalità didattiche

Lezioni frontali ed esercitazioni di laboratorio.

Obblighi

Sebbene fortemente consigliata, la frequenza non è obbligatoria.

Testi di studio
  • Erlang Programming: A Concurrent Approach to Software Development. Francesco Cesarini & Simon Thompson
  • Programming Erlang: Software for a Concurrent World. Joe Armstrong

  •  An Introduction to Programming in Go. Caleb Doxsey

  • Designing for Scalability with Erlang/OTP Francesco Cesarini, Steve Vinoski

Modalità di
accertamento

L'esame consiste nella presentazione di un articolo scientifico ed un progetto. La presentazione dell'articolo incide del 4pt sul voto finale, la discussione del progetto 27pt.

L'articolo scientifico viene concordato col docente, mentre il progetto deve seguire le specifiche date dal docente. Il progetto è diviso in due parti: la parte essenziale, requisito minimo per passare l'esame, e la parte avanzata.

Implementare la parte essenziale incide di 22 pt sul voto finale. Implementare la parte avanzata incide di 5 pt sul voto finale.   

Disabilità e DSA

Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.

A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.

Informazioni aggiuntive per studentesse e studenti non Frequentanti

Modalità didattiche

Materiale derivante dalle lezioni frontali ed esercitazioni di laboratorio.

Obblighi

Nessuno

Testi di studio
  • Erlang Programming: A Concurrent Approach to Software Development. Francesco Cesarini & Simon Thompson
  • Programming Erlang: Software for a Concurrent World. Joe Armstrong

  •  An Introduction to Programming in Go. Caleb Doxsey

  • Designing for Scalability with Erlang/OTP Francesco Cesarini, Steve Vinoski

Modalità di
accertamento

L'esame consiste nella presentazione di un articolo scientifico ed un progetto. La presentazione dell'articolo incide del 4pt sul voto finale, la discussione del progetto 29pt.

L'articolo scientifico viene concordato col docente, mentre il progetto deve seguire le specifiche date dal docente. Il progetto è diviso in due parti: la parte essenziale, requisito minimo per passare l'esame, e la parte avanzata.

Implementare la parte essenziale incide di 24 pt sul voto finale. Implementare la parte avanzata incide di 5 pt sul voto finale.   

Disabilità e DSA

Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.

A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.

« torna indietro Ultimo aggiornamento: 24/06/2024


Il tuo feedback è importante

Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

Posta elettronica certificata

amministrazione@uniurb.legalmail.it

Social

Università degli Studi di Urbino Carlo Bo
Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
Partita IVA 00448830414 – Codice Fiscale 82002850418
2024 © Tutti i diritti sono riservati

Top