PROGRAMMING TECHNIQUES FOR DISTRIBUTED SYSTEMS
Anno accademico 2021/2022 - 1° anno - Curriculum Communication Networks and ServicesCrediti: 9
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 225 ore d'impegno totale, 146 di studio individuale, 49 di lezione frontale, 30 di esercitazione
Semestre: 2°
ENGLISH VERSION
Obiettivi formativi
Conoscenze e capacità di compresione:
- Conoscenza del linguaggio Java, con particolare riferimento agli strumenti per la programmazione distribuita.
- Capacità di integrazione delle diverse nozioni teoriche riguardo la programmazione ad oggetti al fine di strutturare l'architettura di una applicazione secondo un insime di requisiti progettuali.
Conoscenze applicate:
- Capacita’ riportare quanto appreso nella capacità di deployment di applicazioni in ambiente distribuiti di uso comune.
Modalità di svolgimento dell'insegnamento
Lezioni frontali teoriche ed esercitazioni al calcolatore.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare
il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Fondamenti di Informatica
Frequenza lezioni
Opzionale, ma fortemente consigliata
Contenuti del corso
1. Il linguaggio di programmazione Java |
JAVA. Caratteristiche generali, tipi di dato, operatori, espressioni, strutture di controllo. |
4 CFU |
2.La programmazione per i sistemi distribuiti |
JAVA: Concorrenza. Networking. Socket. RMI. |
4 CFU |
3. Sistemi decentralizzati | Sistemi decentralizzati basati su Blockchain. Proof-of-work e consenso nella rete Bitcoin. | 1 CFU |
Testi di riferimento
Java: The Complete Reference, Herbert Schildt
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Realizzazione progetto di sistema distribuito in Java
Prova orale.
Esempi di domande e/o esercizi frequenti
Disponibili su Studium