- Applicazioni Web:progettazione e Sviluppo
- Introduzione
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.
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
La didattica erogativa dell'insegnamento prevede 21 ore di lezioni e 36 ore di esercitazioni/laboratorio in aula per l'80% delle ore previste e un 20% di ore erogate a distanza per via telematica (registrazioni audio-video).
La didattica interattiva è prevista sotto forma di dimostrazioni o spiegazioni aggiuntive presenti sul sito web (e-learning) come web forum e faqs. Lo scopo di queste attività è di fornire supporto da parte dei docenti e degli studenti partecipanti con dimostrazioni o suggerimenti operativi su come si risolve un problema, un esercizio e similari.
L'attività di studio individuale è supportata dai materiali didattici e le attività interattive disponibili sul sito di 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)
Durante lo svolgimento dell'insegnamento verranno proposti esercizi con consegna che verranno valutati per un punteggio extra fino a 2 punti che verranno sommati alla valutazione della prova scritta.
Verrà proposto un progetto facoltativo (individuale o al più con gruppi di due persone) con una sola possibilità di consegna annuale (che verrà fissata nella parte finale del corso, e sarà indicativamente collocata nel mese febbraio) che potrà portare a dei punti extra (massimo 4), previa una discussione di quanto realizzato e documentato.
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
Didattica erogativa. The teaching form for the course includes 21 hours of lectures and 36 hours of classroom exercises/lab sessions for 80% of the scheduled hours, and 20% of the hours delivered remotely (audio-video recordings).
Didattica interattiva. Interactive teaching is provided in the form of additional demonstrations or explanations available on the website (e-learning) such as web forums and FAQs. The purpose of these activities is to provide support from teachers and participating students with demonstrations or practical advice on how to solve a problem, an exercise, and similar tasks.
Individual study activities are supported by teaching materials and Interactive activities available in the e-learning site.
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)
During the course, exercises with submission will be proposed, which will be evaluated for extra points up to 2 points that will be added to the score of the written exam.
An optional project (individual or at most with groups of two people) will be proposed with a single annual delivery option (which will be set in the final part of the course, and will be indicatively placed in February) that can lead to extra points (maximum 4), after a discussion of what has been achieved and documented.
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.