Course Syllabus
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.
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
L'esame consta di una prova scritta con domande aperte e chiuse (su argomenti di lezione e di laboratorio) del valore di punti 30.
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: 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)
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 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)
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.
Key information
Staff
-
Flavio Maria De Paoli
-
Giuseppe Vizzari