PROGRAMMING TECHNIQUES FOR DISTRIBUTED SYSTEMS

Anno accademico 2021/2022 - 1° anno - Curriculum Communication Networks and Services
Docenti: Davide PATTI e Antonella DI STEFANO
Crediti: 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:
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.
Classi, oggetti, interfacce, ereditarietà e polimorfismo, package. Concorrenza, gestione delle eccezioni, eventi. Input/Output.

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