Anno di corso: 1

Anno di corso: 2

Crediti: 8
Crediti: 6
Crediti: 6
Crediti: 8
Crediti: 2
Tipo: A scelta dello studente
Crediti: 6
Tipo: A scelta dello studente
Crediti: 4
Tipo: A scelta dello studente
Crediti: 8
Tipo: A scelta dello studente
Crediti: 24
Tipo: Lingua/Prova Finale
Crediti: 4
Tipo: Altro

TECNOLOGIE E APPLICAZIONI DEI SISTEMI DISTRIBUITI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2018/2019
Anno di corso: 
2
Anno accademico di erogazione: 
2019/2020
Tipo di attività: 
Obbligatorio a scelta
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
57
Prerequisiti: 

E’ opportuno che lo studente possegga conoscenze di base di informatica e di funzionamento delle reti. Nella parte introduttiva del corso saranno comunque definiti i concetti e i modelli base per favorire chi non ha una formazione informatica.

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

L'esame consta di una prova scritta con domande aperte e chiuse (su argomenti di lezione e di laboratorio) del valore di punti 28.

La prova consiste in:
a) domande sulle nozioni presentate
b) domande di ragionamento e deduzione
c) risoluzione di esercizi che richiedono lo sviluppo di una soluzione ad un problema assegnato
Struttura della prova scritta:
- parte generale: 10 domande chiuse + 2 aperte [10*2+2*4=28 punti)

Chi ha frequentato i laboratori può ottenere 5 punti supplementari così assegnati:
1 punto per la frequenza (>=75%)
1 punto per la partecipazione attiva (svolgimento delle esercitazioni in aula)
3 punti per lo svolgimento dell'esercizio finale (concordato con il docente)

L'esame può essere integrato da una prova orale su richiesta del docente e/o dello studente.
La prova orale può determinare un incremento o un decremento del voto dello scritto.

Prove in itinere
La prova scritta può essere sostituita dallo svolgimento di due prove in itinere.
Ciascuna prova è composta da domande aperte e chiuse, + semplici esercizi sugli argomenti del laboratorio per complessivi 32 punti.
L'accesso alla seconda prova si ottiene con un punteggio maggiore o uguale a 18 punti nella prima prova.
Il voto della prova scritta è dato dalla media delle due prove. Non sono previste prove di recupero.

VOTO FINALE = VOTO PROVA SCRITTA + PUNTI LABORATORIO (se frequentato) + (eventuale integrazione orale)

Valutazione: 
Voto Finale

Obiettivi formativi

Lo scopo del corso è fornire allo studente gli elementi fondamentali per comprendere e progettare applicazioni Web collaborative e a servizi. Al termine del corso lo studente conoscerà i principali modelli di sistemi distribuiti basati su tecnologia Web e le caratteristiche fondamentali delle architetture e degli strumenti per la loro realizzazione.
Con questo bagaglio di conoscenze sarà in grado di analizzare sistemi esistenti e partecipare alla progettazione di sistemi innovativi.

Contenuti

Le attuali applicazioni distribuite utilizzano il Web come piattaforma di riferimento e il concetto di servizio come metafora per la realizzazione di componenti autonomi che realizzano le funzionalità necessarie. Il corso studia i principi e i modelli delle tecnologie software distribuite in relazione alla progettazione di applicazioni Web interattive.
Analizza in particolare come stanno evolvendo i paradigmi d’interazione e comunicazione negli scenari di "Cloud computing" e "Internet of Things - IoT". Il corso include una significativa parte pratica dedicata all’apprendimento dei principi base di programmazione con JavaScript e di sviluppo di applicazioni Ajax (HTML5, CSS3, JavaScript, JSON). Verranno introdotti i principali framework per lo sviluppo di interfacce e interazione in ambiente desktop e mobile.

Programma esteso

Introduzione al corso. Evoluzione di Internet e del Web: convergenza di reti, device e applicazioni. Introduzione ai concetti fondamentali di comunicazione con Internet (protocollo TCP/IP) e il Web (protocollo HTTP). Il modello architetturale REST (Web API): Web of Services, Web of Data, e Web of Things.
Sistemi service-oriented (cenni): Definizione di servizio, modelli organizzativi a servizi, architettura dei sistemi orientati ai servizi (SOA). Processi di business e servizi. Modelli e principi di cloud e fog computing e loro impatto sul piano organizzativo e di architettura delle soluzioni: i modelli di "system of records" e "system of engagement". Principi e tecnologie dei sistemi di engagement: mobilità e interfacce attive Ajax.
Scambio di informazioni: cenni di sintassi e semantica dei formati (XML, JSON, Linked Data, RDF).
Progettazione di interfacce e interazione: tecnologie Ajax (HTML5, CSS3, JavaScript). Introduzione alla programmazione in JavaScript. Realizzazione di applicazioni Ajax con framework come JQuery, Boostrap e React.

Bibliografia consigliata

Non c’è un unico testo di riferimento. Verranno indicati e/o pubblicati articoli e risorse sul sito di elearning.

Metodi didattici

Il corso prevede lezioni ed esercitazioni (laboratorio) in aula con attività di studio individuale supportate da materiali didattici in e-learning.