PROGRAMMING TECHNIQUES FOR DISTRIBUTED SYSTEMS

Anno accademico 2019/2020 - 1° anno
Docente: Davide PATTI
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:

  • Conoscere il linguaggio Java, con particolare riferimento agli strumenti per la programmazione distribuita.
  • Conoscere il linguaggio Python e le librerie per il networking e la programmazione distribuita.

Competenze:

  • Capacita’ di sviluppare applicazioni software per ambienti di esecuzione distribuiti, utilizzando linguaggi per la programmazione ad oggetti.

Modalità di svolgimento dell'insegnamento

Lezioni frontali teoriche ed esercitazioni al calcolatore.


Prerequisiti richiesti

Fondamenti di Informatica


Frequenza lezioni

Opzionale, ma fortemente consigliata


Contenuti del corso

1. La programmazione orientata agli oggetti

Definizioni, proprietà, classificazione dei linguaggi di programmazione. Programmazione orientata agli oggetti.

0.5 CFU

2. 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. Grafica di base, applet

3 CFU

3.Il linguaggio di programmazione Python

PYTHON. Introduzione al linguaggio. Variabili, espressioni ed istruzioni. Funzioni. Istruzioni condizionali, iterazione e ricorsione. Stringhe, liste, tuple e dizionari. File ed eccezioni. Classi ed oggetti. Ereditarietà. Utilizzo di librerie.

3 CFU

4.La programmazione per i sistemi distribuiti

JAVA: Concorrenza. Networking. RMI. Enterprise Java Beans.
PYTHON: Concorrenza. Networking. Internet protocols.

2.5 CFU

Testi di riferimento

Qualunque testo che tratti gli argomenti


Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Realizzazione progetto di sistema distribuito in Java/Python.

Prova orale.


Esempi di domande e/o esercizi frequenti

Disponibili su Studium