Informazioni Generali

Risultati dell'apprendimento

Principi, metodologie e tecnologie per la progettazione ed implementazione di sistemi distribuiti moderni, inclusi i sistemi distribuiti a larga scala ed i sistemi di Cloud computing.

CFU

9 CFU, 90 ore di didattica frontale distribuite in 6 ore a settimana

Prerequisiti

Il corso presuppone una buona conoscenza dei protocolli di rete, della progettazione e programmazione di applicazioni software e di rete (linguaggi C, Python e Java), dell'organizzazione e gestione di basi di dati, dell'infrastruttura Web.

Orario delle lezioni

Orario valido dal 23/9/2019 al 17/1/2020 (primo semestre)
  • Lunedì dalle 9:30 alle 11:15, aula B9 edificio didattica
  • Mercoledì dalle 9:30 alle 11:15, aula C3 edificio didattica
  • Venerdì dalle 9:30 alle 11:15, aula C8 edificio didattica

Docenti

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (specificare [SDCC] nell'oggetto della mail)
Ufficio: stanza D1-17, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento: martedì dalle 9:00 alle 11:00 in ufficio.

Gabriele Russo Russo
Docente del corso integrativo "Hands-on Cloud Computing Services"
E-mail: img (specificare [SDCC] nell'oggetto della mail)
Ufficio: stanza D1-19, corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.

Avvisi

  • new 20 maggio 2020 - Come già comunicato via email e confermato dal decreto rettoriale n.888/2020 dell'11 maggio 2020 concernente le linee guida per gli esami di profitto on-line, gli appelli della sessione estiva si svolgeranno a distanza, usando Teams.
    La prova scritta dell'esame sarà sostituita da un'equivalente prova orale, che si svolgerà nelle date in precedenza stabilite per la prova scritta (vedi Appelli).
  • new 5 maggio 2020 - E' stata attivata la classe su Teams, nella quale sono stati inseriti gli studenti iscritti al corso.
  • 17 gennaio 2020 - Dietro richiesta degli studenti e come concordato, la data della seconda prova intermedia e del primo appello invernale è posticipata a giovedì 5 febbraio.
    Non occorre prenotazione per la seconda prova intermedia.
  • 15 gennaio 2020 - Disponibili gli esercizi sulla consistenza con relative soluzioni (Es_Consistenza.pdf).
  • 13 gennaio 2020 - Martedì 14 gennaio dalle ore 16:15 alle 17:45 in aula C12 si terrà una lezione di esercitazione.
  • 12 gennaio 2020 - E' disponibile il testo dell'esercizio facoltativo di programmazione in Go (SDCC1920_esercizioGo.pdf).
    La scadenza per la consegna è lunedì 3 febbraio 2020.
  • 7 gennaio 2020 - La lezione di recupero di oggi martedì 7 gennaio 2020 si terrà dalle ore 16:00 alle ore 17:45 in aula C6.
  • 18 dicembre 2019 - La quinta e ultima lezione del corso integrativo "Hands-on Cloud Computing Services" verterà su serverless computing e si terrà giovedì 19 dicembre dalle ore 14:00 alle ore 15:45 presso il Laboratorio di Informatica.
  • 30 novembre 2019 - Aggiunte le slide da 88 in poi in Virtualizzazione.pdf
  • 27 novembre 2019 - Dietro richiesta degli studenti, la prima prova intermedia è stata posticipata a mercoledì 4 dicembre ore 11:30, aula C6.
    Gli argomenti della prima prova includono i microservizi, fino alla lezione del 25 novembre inclusa.
  • 14 novembre 2019 - Disponibili le date degli appelli della sessione invernale (vedi Appelli).
  • 8 novembre 2019 - Giovedì 14 novembre dalle 14:00 alle 15:45 nel Laboratorio di Informatica si terrà la quarta lezione del corso integrativo "Hands-on Cloud Computing Services".
  • 6 novembre 2019 - La lezione di venerdì 8 novembre si terrà in aula B8, a causa delle riprese cinematografiche che saranno effettuate in aula C8.
  • 31 ottobre 2019 - Giovedì 7 novembre dalle 14:00 alle 15:45 nel Laboratorio di Informatica si terrà la terza lezione del corso integrativo "Hands-on Cloud Computing Services".
  • 21 ottobre 2019 - La prima prova intermedia si terrà lunedì 2 dicembre dalle ore 9:15 in aula A2 (vedi Appelli).
  • 21 ottobre 2019 - La lezione di mercoledì 23 ottobre dalle 16:00 alle 17:45 si terrà in aula C7.
  • 18 ottobre 2019 - Giovedì 24 ottobre dalle 14:00 alle 15:45 nel Laboratorio di Informatica si terrà la seconda lezione del corso integrativo "Hands-on Cloud Computing Services".
  • 18 ottobre 2019 - La lezione di lunedì 21 ottobre non si terrà come da richiesta degli studenti e sarà recuperata mercoledì 23 ottobre dalle 16:00 alle 17:45 (aula da comunicare).
  • 18 ottobre 2019 - Aggiunte le slide da 80 in poi in ArchitettureSD.pdf
  • 16 ottobre 2019 - La lezione di giovedì 17 ottobre si terrà dalle ore 14:30 nel Laboratorio di Informatica.
  • 11 ottobre 2019 - Giovedì 17 ottobre dalle 14:00 alle 15:45 (aula da comunicare) si terrà la prima lezione del corso integrativo "Hands-on Cloud Computing Services".
  • 8 ottobre 2019 - Venerdì 11 ottobre dalle ore 14:00 si terrà un workshop dal titolo Digital Transformation: A necessary technology disruption a cura di CapGemini presso la Sala del Consiglio della Facoltà di Economia.
  • 23 settembre 2019 - Per l'iscrizione al corso, usare Delphi oppure inviare una email alla docente.

Materiale Didattico

Testi consigliati

Testi "classici" sui sistemi distribuiti:

Testi che trattano in modo esteso i sistemi e le applicazioni Cloud:

Calendario e lucidi delle lezioni

Giorno Argomento Lucidi Ultima modifica
23/9/2019 Organizzazione del corso
Introduzione ai SD
Organizzazione.pdf
IntroSD.pdf
23/9/2019
26/9/2019
25/9/2019 Introduzione ai SD vedi lezione precedente
27/9/2019 Sustainable computing
Introduzione ai SD
Introduzione al Cloud computing
 
vedi lezione precedente
IntroCloud.pdf
 
 
3/10/2019
30/9/2019 Introduzione al Cloud computing vedi lezione precedente  
2/10/2019 Introduzione al Cloud computing vedi lezione precedente  
4/10/2019 Architetture dei SD: stili ArchitettureSD.pdf 16/10/2019
7/10/2019 Architetture dei SD: architetture di sistema, architetture centralizzate, reti P2P non strutturate vedi lezione precedente
9/10/2019 Architetture dei SD: reti P2P non strutturate e strutturate vedi lezione del 4/10
11/10/2019 Architetture dei SD: reti P2P strutturate e sistemi self-* vedi lezione del 4/10
14/10/2019 Architetture dei SD: sistemi self-* vedi lezione del 4/10
16/10/2019 Comunicazione nei SD: introduzione e semantica della comunicazione ComunicazioneSD_1.pdf 24/10/2019
18/10/2019 Comunicazione nei SD: RPC vedi lezione del 16/10
23/10/2019 Comunicazione nei SD: esempi SUN RPC, Java RMI vedi lezione del 16/10
23/10/2019 Esempio compute engine in Java RMI
Introduzione a Go
 
Go.pdf
 
31/10/2019
25/10/2019 Introduzione a Go e RPC in Go vedi lezione del 23/10
28/10/2019 Esempio RPC in Go
Comunicazione nei SD: MOM
vedi lezione del 23/10
ComunicazioneSD_2.pdf

6/11/2019
30/10/2019 Comunicazione nei SD: esempi di sistemi MOM, multicast di rete vedi lezione del 28/10
4/11/2019 Comunicazione nei SD: AMQP, protocolli di gossiping vedi lezione del 28/10
6/11/2019 Comunicazione nei SD: esempi di protocolli di gossiping
Virtualizzazione: introduzione, livelli
vedi lezione del 28/10
Virtualizzazione.pdf
 
30/11/2019
8/11/2019 Virtualizzazione: di sistema
Soluzione di prove d'esame passate
vedi lezione del 6/11
 
 
 
11/11/2019 Virtualizzazione: Xen, resizing e migrazione di VM vedi lezione del 6/11
13/11/2019 Virtualizzazione: a livello di sistema operativo vedi lezione del 6/11
15/11/2019 Virtualizzazione: unikernel, Docker vedi lezione del 6/11
Docker.pdf
 
18/11/2019
18/11/2019 Virtualizzazione: tool di orchestrazione (Docker Compose, Docker Swarm, Kubernetes) vedi lezioni del 6/11 e 15/11
20/11/2019 Virtualizzazione: tool di orchestazione
Microservizi e serverless: introduzione, SOA
vedi lezione del 6/11
Microservice+serverless.pdf
 
1/12/2019
22/11/2019 Lezione non tenuta causa contrattempo    
25/11/2019 Microservizi e serverless: scalabilità, design pattern, esempi di architetture a microservizi vedi lezione del 20/11
 

 
27/11/2019 Microservizi e serverless: pattern Saga, serverless computing
 
Soluzione di esercizi di prove d'esame passate
vedi lezione del 20/11
Microservice_SAGAexample.pdf
 

1/12/2019
 
29/11/2019 Sincronizzazione e coordinazione nei SD: introduzione, tempo fisico
Soluzione di prove d'esame passate
SincronizzazioneSD.pdf
 
16/12/2019
 
2/12/2019 Sincronizzazione e coordinazione nei SD: algoritmi di sincronizzazione fisica
Soluzione di prove d'esame passate
vedi lezione del 29/11
 
 
 
4/12/2019 Prima prova intermedia
6/12/2019 Sincronizzazione e coordinazione nei SD: clock logico scalare e vettoriale, multicasting totalmente ordinato vedi lezione del 29/11
 

 
9/12/2019 Lezione non tenuta causa malattia    
11/12/2019 Lezione non tenuta causa malattia    
13/12/2019 Lezione non tenuta (sospensione lezioni per maltempo)    
16/12/2019 Sincronizzazione e coordinazione nei SD: multicasting causalmente ordinato, mutua esclusione nei SD vedi lezione del 29/11
 
18/12/2019 Sincronizzazione e coordinazione nei SD: algoritmo di Maekawa, algoritmi di elezione vedi lezione del 29/11
20/12/2019 Consistenza nei SD: introduzione, modelli di consistenza, consistenza sequenziale e linearizzabile ConsistenzaSD.pdf 11/1/2020
7/1/2020 Consistenza nei SD: consistenza causale e finale, teorema CAP vedi lezione del 20/12  
8/1/2020 Consistenza nei SD: consistenza client-centrica, protocolli di consistenza vedi lezione del 20/12  
10/1/2020 Consistenza nei SD: replicazione
Tolleranza ai guasti: dependability, modelli di failure, TMR
vedi lezione del 20/12
TolleranzaSD.pdf
 
15/1/2020
13/1/2020 Tolleranza ai guasti nei SD: consenso distribuito, Paxos vedi lezione precedente
14/1/2020 Esercitazione su sincronizzazione e consistenza
15/1/2020 Tolleranza ai guasti nei SD: Raft, algoritmo dei generali bizantini vedi lezione del 10/1
17/1/2020 Tolleranza ai guasti nei SD: 2PC, 3PC, ripristino
Sistemi Web distribuiti
Sistemi Web geografici per content delivery
vedi lezione del 10/1
SistemiWeb.pdf
CDN.pdf
  20/5/2020
20/5/2020
 

Corso integrativo Hands-on Cloud Computing Services

Giorno Argomento Lucidi Ultima modifica
17/10/2019 Introduzione ad AWS. EC2, Load Balancer, Auto Scaling Appunti (.pdf)
codice (.zip)
18/10/2019
24/10/2019 AWS CLI, boto3, Ansible, Amazon S3 Appunti (.pdf)
codice (.zip)
24/10/2019
07/11/2019 Ansible+AWS, DynamoDB, CloudFront Appunti (.pdf)
codice (.zip)
07/11/2019
14/11/2019 AWS Elastic Beanstalk, Simple Queue Service slides (.pdf)
codice (.zip)
14/11/2019
19/12/2019 Serverless Computing scaletta (.pdf)
esempi (.zip)
20/12/2019

Articoli

I seguenti articoli approfondiscono ed integrano gli argomenti trattati a lezione; la loro lettura è raccomandata.

When I talk to researchers, when I talk to people wanting to engage in entrepreneurship, I tell them that if you read research papers consistently, if you seriously study half a dozen papers a week and you do that for two years, after those two years you will have learned a lot. This is a fantastic investment in your own long term development. (Andrew Ng, Inside The Mind That Built Google Brain: On Life, Creativity, And Failure)

Introduzione ai SD

  • A. Rotem-Gal-Oz, "Fallacies of distributed computing explained". (pdf)
  • M. van Steen and A.S. Tanenbaum, "A brief introduction to distributed systems", Computing, vol. 98, no. 10, pp. 967-1009, 2016. (pdf)
  • S. Vinoski, "Rediscovering distributed systems", IEEE Internet Computing, Vol. 18, No. 2, Mar.-Apr. 2014. (pdf)
  • J. Hodges, "Notes on distributed systems for young bloods", 2013. (html)

Introduzione al Cloud Computing

  • M. Armbrust et al., "Above the clouds: A Berkeley view of cloud computing", EECS Department, University of California Berkeley Technical Report No. UCB/EECS-2009-28, Feb. 2009. (pdf)
  • S.A. Baset, "Cloud SLAs: Present and future", SIGOPS Oper. Syst. Rev., Vol. 46, No. 2, pp. 57-66, July 2012. (pdf)
  • N. Herbst, R. Krebs, G. Oikonomou, G. Kousiouris, A. Evangelinou, A. Iosup, S. Kounev, "Ready for rain? A View from SPEC Research on the future of cloud metrics", SPEC Research Group - Cloud Working Group, Standard Performance Evaluation Corporation (SPEC), Technical Report SPEC-RG-2016-0, 2016. (pdf)
  • P. Mell, T. Grance, "The NIST definition of cloud computing", Sept. 2011. (pdf)

Architetture dei SD

  • P.T. Eugster, P.A. Felber, R. Guerraoui, A.-M. Kermarrec, "The many faces of publish/subscribe", ACM Computing Surveys, Vol. 35, No. 2, pp. 114-131, June 2003. (pdf)
  • H. Balakrishnan, M.F. Kaashoek, D. Karger, R. Morris, I. Stoica, "Looking up data in P2P systems", Communications of the ACM, Vol. 46, No. 2, pp. 43-48, Feb. 2003. (pdf)
  • I. Stoica, R. Morris, D. Liben-Nowell, D.R. Karger, M.F. Kaashoek, F, Dabek, H. Balakrishnan, "Chord: a scalable peer-to-peer lookup protocol for Internet applications", IEEE/ACM Trans. Netw., Vol. 11, No. 1, pp. 17-32, Feb. 2003. (pdf)
  • J.O. Kephart, D.M. Chess, "The vision of autonomic computing", IEEE Computer, Vol. 36, No. 1, Jan. 2003. (pdf)
  • D. Weyns, B. Schmerl, V. Grassi, S. Malek, R. Mirandola, C. Prehofer, J. Wuttke, J. Andersson, H. Giese, K. Göschka, "On patterns for decentralized control in self-adaptive systems", In Software Engineering for Self-Adaptive Systems II, 2013. (pdf)

Comunicazione nei SD

  • E. Petron, "Remote Procedure Calls", Linux Journal, Oct. 1997. (html)
  • Trail: RMI (The Java tutorials) (html)
  • T. Treat, "You cannot have exactly-once delivery", 2015. (html)
    Follow-up: "You cannot have exactly-once delivery redux", 2017. (html)
  • A. A. Donovan, B. W. Kernighan, ch. 1 of "The Go Programming Language", Addison-Wesley, 2015. (pdf)
  • Application-level multicast

  • K.P. Birman, M. Hayden, O. Ozkasap, Z. Xiao, M. Budiu, Y. Minsky, "Bimodal multicast", ACM Trans. Comput. Syst., Vol. 17, No. 2, pp. 41-88, May 1999. (pdf)
  • M. Castro, P. Druschel, A-M. Kermarrec, A. Rowstron, "Scribe: A large-scale and decentralised application-level multicast infrastructure", IEEE Journal on Selected Areas in Communications, Oct. 2002. (pdf)
  • P. Th. Eugster, R. Guerraoui, A.-M. Kermarrec, L. Massoulie, "From epidemics to distributed computing", IEEE Computer, Vol. 37, No. 5, pp. 60-67, May 2004. (pdf)
  • M. Jelasity, "Gossip", In Self-Organising Software: From Natural to Artificial Adaptation, Springer, pp. 139-162, 2011. (pdf)
  • A.-M. Kermarrec, M. van Steen, "Gossiping in distributed systems", ACM Operating System Review, Vol. 41, No. 5, Oct. 2007. (pdf)
  • M. Portmann, A. Seneviratne, "The cost of application-level broadcast in a fully decentralized peer-to-peer network", Proc. of ISCC 2002, 2002. (pdf)

Virtualizzazione

  • K. Hwang, J. Dongarra, G.C. Fox, "Virtual machines and virtualization of clusters and data centers", chapter 3 of Distributed and Cloud Computing, Morgan Kaufmann, 2011. (pdf)
  • J.E. Smith, R. Nair, "The architecture of virtual machines", IEEE Computer, pp. 32-38, May 2005. (pdf)
  • OS-level virtualization

  • D. Bernstein, "Containers and cloud: from LXC to Docker to Kubernetes", IEEE Cloud Computing, Vol. 1, No. 3, pp. 81-84, Sept. 2014. (pdf)
  • C. Pahl, "Containerisation and the PaaS Cloud", IEEE Cloud Computing, Vol. 2, No. 3, pp. 24-31, May 2015. (pdf)
  • S. Yegulalp, "What is Docker? The spark for the container revolution", InfoWorld, 2019. (html)
  • J. Guo, "Demystifying container vs VM-based security: Security in plaintext", Google Cloud blog, 2017. (html)
  • Performance of hypervisors, containers, and LV approaches

  • J. Hwang, S. Zeng, F. Wu, T. Wood, "A component based performance comparison of four hypervisors", Proc. of IFIP/IEEE Integrated Network Management Symposium (IM 2013), May 2013. (pdf)
  • J. Li, Q. Wang, D. Jayasinghe, J. Park, T. Zhu, C. Pu, "Performance overhead among three hypervisors: an experimental study using Hadoop benchmarks", Proc. of IEEE Big Data, 2013. (pdf)
  • B. Xavier, T. Ferreto, L. Jersak, "Time provisioning evaluation of KVM, Docker and unikernels in a cloud platform", Proc. of IEEE/ACM CCGrid '16, 2016. (pdf)
  • F. Manco, C. Lupu, F. Schmidt, J. Mendes, S. Kuenzer, S. Sati, K. Yasukata, C. Raiciu, F. Huici, "My VM is lighter (and safer) than your container", Proc. of SOSP '17, 2017. (pdf)

Architetture a microservizi e serverless

  • J. Lewis, M. Fowler, "Microservices", 2014. (html)
  • P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis and S. Tilkov, "Microservices: The Journey So Far and Challenges Ahead", IEEE Software, Vol. 35, No. 3, 2018. (pdf)
  • M. Roberts, "Serverless Architectures", 2018. (html)
  • E. Jonas et al., "Cloud Programming Simplified: A Berkeley View on Serverless Computing", Technical Report No. UCB/EECS-2019-3, Feb. 2019. (pdf)

Sincronizzazione nei SD

  • L. Lamport, "Time, clocks and the ordering of events in a distributed system", ACM Communications, Vol. 21, No. 7, pp. 558-565, July 1978. (pdf)
  • M. Raynal, M. Singhal, "Logical time: Capturing causality in distributed systems", IEEE Computer, Feb. 1996. (pdf)
  • C. Baquero, N. Preguiça, "Why logical clocks are easy", ACM Queue, Jan. 2016. (pdf)

Consistenza e replicazione nei SD

  • E. Brewer, "CAP twelve years later: how the "rules" have changed", IEEE Computer, Feb. 2012. (pdf)
  • D.K. Gifford, "Weighted voting for replicated data", Proc. of the 7th ACM Symposium on Operating Systems Principles, Dec. 1979. (pdf)
  • W. LLoyd, M. Freedman, M. Kaminsky, D. Andersen, "A short primer on causal consistency", USENIX; login, 2013. (pdf)
  • D.B. Terry, A.J. Demers, K. Petersen, M.J. Spreitzer, M.M Theimer, B.B. Welch, "Session guarantees for weakly consistent replicated data", Proc. of the 3rd Int'l Conference on Parallel and Distributed information Systems, pp. 140-150, 1994. (pdf)
  • W. Vogels, "Eventually consistent", Communications of the ACM, Vol. 52, No. 1, pp. 40-44, Jan. 2009. (pdf)
  • F. Dabek, R. Cox, F. Kaashoek, R. Morris "Vivaldi: A decentralized network coordinate system", Proc. of ACM SIGCOMM '04, 2004. (pdf)
  • The Paper Trail, "The CAP FAQ", 2015. (html)

Tolleranza ai guasti nei SD

  • A. Avizienis, J.-C. Laprie, B. Randell, C. Landwehr, "Basic concepts and taxonomy of dependable and secure computing", IEEE Trans. on Dependable and Secure Computing, 2004. (pdf)
  • L. Lamport, "Paxos made simple", ACM SIGACT News, Vol. 32, No. 4, Dec. 2001. (pdf)
  • D. Ongaro and J. Ousterhout, "In search of an understandable consensus algorithm", Proc. of USENIX Annual Technical Conference 2014, 2014. (pdf)
  • The Paper Trail, "Consensus Protocols: Paxos", 2009. (html)

Video

Video di presentazioni utili per approfondire alcuni argomenti avanzati del corso.

Programmazione RPC

Esempi SUN RPC

Square, echo, average, remote directory listing: rpc-sun.zip

Esempi Java RMI

Argomento Codice
Echo
echo_rmi.zip
Compute engine
http://docs.oracle.com/javase/tutorial/rmi

Esempi RPC in Go

Altri link utili

I seguenti link forniscono delle fonti per approfondimenti.


Programma provvisorio

Introduzione ai sistemi distribuiti
Introduzione al Cloud computing
Architetture per sistemi distribuiti
Comunicazione nei sistemi distribuiti
Introduzione alla programmazione in Go
Virtualizzazione
Architetture a microservizi e serverless
Coordinazione e sincronizzazione nei sistemi distribuiti
Consistenza e replicazione nei sistemi distribuiti
Tolleranza ai guasti nei sistemi distribuiti
Sistemi e servizi per content delivery
Data storage nel Cloud
Amazon Web Services
Esempi di sistemi e servizi distribuiti e Cloud

Esami

Modalità di esame

L'esame si compone di:

  • Prova scritta;
  • Progetto e relativa discussione;
  • Prova orale facoltativa.
Prova scritta

La prova scritta verte sugli argomenti dell'intero corso e prevede domande a risposta aperta ed esercizi. Si raccomanda di sostenere la prova scritta prima del progetto.

In alternativa alla prova scritta, si terranno due prove scritte intermedie. Tali prove intermedie possono essere sostenute soltanto dagli studenti immatricolati al primo anno della Laurea Magistrale nell'A.A. 2019/20 e dagli studenti immatricolati in anni precedenti e che optano per il programma dell'A.A. 2019/20.
Se entrambe le prove intermedie saranno superate positivamente, verrà proposto un voto finale per la prova scritta. Non è possibile recuperare le prove intermedie in modo parziale.
Non ci sono vincoli sulla partecipazione alle prove (eccetto la prenotazione obbligatoria per le prove scritte).
Tuttavia, la partecipazione ad una prova scritta comporta la rinuncia automatica ad un voto sufficiente conseguito in una prova scritta precedente.
Gli studenti immatricolati in anni precedenti all'A.A. 2018/19 e che intendono sostenere le prove intermedie devono comunicarlo alla docente.

Prova orale facoltativa

La prova orale è facoltativa e verte su tutto il programma del corso. E' possibile sostenere la prova orale facoltativa in un appello diverso da quello in cui si è sostenuto la prova scritta, purchè nella stessa sessione.
E' possibile sostenere la prova scritta e l'eventuale prova orale in una stessa sessione e posticipare la discussione del progetto ad un'altra sessione.

Progetto

Le tracce dei progetti sono suddivise in due modalità, corrispondenti a due diversi pesi del progetto nella valutazione finale e a due differenti composizioni dei gruppi:

  • tipo A: 50% prova scritta, 50% progetto (2-4 studenti per gruppo);
  • tipo B: 75% prova scritta, 25% progetto individuale.
Le informazioni relative ai progetti sono state comunicate via email agli studenti iscritti al corso.
Eventuali modifiche nella scelta del progetto devono essere tempestivamente comunicate alla docente e con lei concordate. Non è possibile cambiare la tipologia del progetto (da A a B o viceversa).

Il progetto è valido solo per l'A.A. 2019/20 e e deve essere consegnato improrogabilmente entro il 19/9/2020. Per la validità del progetto, la prova d’esame scritta deve essere superata entro la sessione autunnale 2019/2020.

Per la realizzazione del progetto, è possibile usufruire del grant offerto da Amazon Web Service tramite il programma AWS Educate, a cui l'Università di Roma "Tor Vergata" ha aderito nel 2015. Per l'iscrizione in qualità di studente al programma AWS Educate, si raccomanda di seguire le istruzioni fornite a lezione ed inviate via email agli studenti iscritti al corso.

Acknowledgment: We thank Amazon for the AWS in Education grant and the AWS Classrom which give students taking this course access to their cloud infrastructure.

La consegna del progetto deve avvenire una settimana prima della data (da concordare con la docente) in cui si intende sostenere la discussione del progetto.
Ciascuno studente esporrà una presentazione individuale tramite slide di una parte del progetto (max 10 minuti per studente).
Tutti i componenti del gruppo devono sostenere la presentazione del progetto nella stessa data.

Negli anni passati alcuni gruppi di studenti hanno svolto il loro progetto partecipando a competizioni internazionali o nazionali, tra cui:

Slide della presentazione dei progetti tenuta il 5 febbraio 2020: Projects.pdf

Progetto A1: An Edge/Fog Application for Tourism

Progetto A2: Your Own Fog Application with IoT Devices

Progetto A3: Context-aware Message Queue System in Go

Progetto B1: Your Own Serverless Computing Application

Progetto B2: Your Own Microservice Application

Prove scritte di anni precedenti

Appelli

  • I prova intermedia
    Mercoledì 4 dicembre 2019, ore 11:30 aula C6 edificio Didattica.
    Per la prenotazione, usare il servizio di prenotazione su Delphi entro sabato 30 novembre.
    In caso di problemi con il servizio, inviarmi una e-mail entro il 30 novembre, indicando nel subject [SDCC prenotazione I intermedia] e nel testo cognome, nome e numero di matricola.
    Testo
  • II prova intermedia
    Mercoledì 5 febbraio 2020, ore 9:30 aula C11 edificio Didattica.
    Testo
  • I appello sessione invernale
    Prova scritta: mercoledì 5 febbraio 2020, ore 9:30 aula C11 edificio Didattica.
  • II appello sessione invernale
    Prova scritta: lunedì 24 febbraio 2020, ore 9:30 aula B9 edificio Didattica.
  • I appello sessione estiva
    Prova scritta orale online: venerdì 19 giugno 2020, ore 9:00 su Teams.
  • II appello sessione estiva
    Prova scritta orale online: lunedì 6 luglio 2020, ore 9:00 su Teams.
  • I appello sessione autunnale
  • II appello sessione autunnale