Syllabus del corso
Obiettivi
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 applicazioni Web, con particolare riferimento alla realizzazione del front-end.
Contenuti sintetici
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) e Node.js. 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 JQuery, Boostrap e React per il front-end e Node.js per il back-end.
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.
Modalità didattica
Il corso prevede lezioni ed esercitazioni (laboratorio) in aula con attività di studio individuale supportate da materiali didattici in e-learning.
Lingua di insegnamento: italiano
Materiale didattico
Non
c’è un unico testo di riferimento. Verranno indicati e/o pubblicati articoli e risorse sul
sito di elearning.
Periodo di erogazione dell'insegnamento
Primo Semestre
Modalità di verifica del profitto e valutazione
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
- parte generale: 11 domande chiuse + 2 aperte [11*2+2*4=30 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)
Nel periodo di emergenza Covid-19 la prova scritta sarà sostituita da una prova da remoto supervisionata: una sessione con domande aperte/chiuse sul sito di e-learning con monitoraggio attivo dei docenti, e una sessione orale in teleconferenza. Le prove in itinere potrebbero non essere svolte.
Orario di ricevimento
prof. De Paoli: Mercoledì dalle 10:00 alle 12:00 o su appuntamento scrivendo a flavio.depaoli@unimib.it
Domande e discussioni sugli argomenti dell'insegnamento possono essere fatte utilizzando i forum presenti in elearning.
Aims
The goal of the course is
to provide students with fundamental elements to understand and design
collaborative and service-oriented Web applications. After the course, students
will master the most important models for distributed systems based on Web
technology, and the basic characteristics of languages and tools for their
development.
They will be able to analyze
existing systems and be part of teams that develop Web applications, with focus on front-end development.
Contents
Current
distributed applications exploits the Web as a reference platform, and the
concept of service as a metaphor for building independent components that
implement the requested functionalities. This
course studies the emerging distributed software technology principles and models with respct to design of interactive Web applications.
The evolution of
interaction and communication paradigms in current scenarios ("Cloud Computing" and "Internet of Things"
(IoT) applications) will be analyzed. The
course includes a relavant practical part devoted to learning basic programming
principles in JavaScript and development of Ajax (HTML5, CSS3,
JavaScript, JSON) and Node.js applications. The main frameworks for the development of interfaces and interaction in desktop and mobile environments will be introduced.
Detailed program
- Introduction. Evolution of the Internet and the Web: network, devices and applications convergence. Introduction to basic communication principles with Internet (TCP/IP protocol) and the Web (HTTP protocol). The REST (Web API) architectural style: Web of Services, Web of Data, and Web of Things.
- Service-oriented systems (overview): Definition of service and service model; service oriented architecture (SOA); Service Science: business processed and design alternatives; Principles and models of Cloud and Fog computing and their impact on organizations and design of business solutions: system-of-record and system-of-engagement models. Principles and technology for systems of engagement: mobility and Ajax active interfaces.
- Information exchange: overview of syntax and semantics (XML, JSON, Linked Data, RDF).
- Interface and interaction design: Ajax-related technology (HTML5, CSS3, JavaScript). Introduction to computer programming with JavaScript. Development of Ajax applications with JQuery, Boostrap and React (front-end) and Node.js (back-end).
Prerequisites
It is highly advisable that
students had already understood basic networking and distributed system
principles; anyway the introductory part of the course will recall the basic
concepts.
Teaching form
The course includes theoretical and exercise (laboratory) lectures integrated with individual study activities with e-learning support.
Teaching language: Italian
Textbook and teaching resource
There is not a single reference textbook. Articles and resources will be indicated and/or published on the e-learning site.
Semester
First semester
Assessment method
The examination consists of a written test with open-answer and multiple-choice questions (on lecture and laboratory topics) with a value of 30 points.
The test deals with:
(a) questions on the concepts presented
(b) requests for reasoning and deduction
(c) resolution of exercises that require the development of a solution to an assigned problem
Structure of the written test:
General part: 11 closed + 2 open questions (11*2 + 2*4 = 30 points)
Students that attended the laboratories can obtain 5 additional points thus awarded:
1 point for frequency (>=75%)
1 point for active participation (carrying out of classroom exercises)
3 points for the performance of the final exercise (agreed with the teacher)
The exam may be supplemented by an oral exam at the request of the teacher and/or student.
The oral test may result in an increase or decrease in the mark in the written test.
In-itinere examination
The written test may be replaced by two in-itinere tests.
Each test shall consist of open-answer and multiple-choice questions, with a value of points 32.
Access to the second test will be obtained by scoring 18 or more in the first test.
The marks in the written test are given by the average of the two tests. No recovery tests are foreseen.
FINAL MARK = WRITTEN MARKS + LABORATORY MARKS (if attended) + (possible oral integration)
In the Covid-19 emergency period the written
test will be replaced by a supervised remote test: a session with open/closed
questions on the e-learning site with active monitoring by the teachers, and an
oral session in teleconference. The in-itinere tests may not be held.
Office hours
prof. De Paoli: Wednesday from 10:00 to 12:00 or by appointment by writing to flavio.depaoli@unimib.it
Questions and discussions on teaching topics can be posed using the forums in e-learning.
Scheda del corso
Staff
-
Flavio Maria De Paoli
-
Alessandra Siano
-
Giuseppe Vizzari