- Docente: Paolo Bellavista
- Crediti formativi: 9
- Lingua di insegnamento: Italiano
- Moduli: Paolo Bellavista (Modulo 1) Giuseppe Di Modica (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
-
Corso:
Laurea in
Ingegneria informatica (cod. 9254)
Valido anche per Laurea in Ingegneria informatica (cod. 9254)
Conoscenze e abilità da conseguire
Conoscenza e capacità di applicazione dei principali modelli e strumenti per il progetto e lo sviluppo di sistemi ed applicazioni basati sul Web.
Contenuti
- L'iniziale modello statico del Web
Breve introduzione storica
Modello originale del World Wide Web
Elementi del modello: protocollo HTTP e URI
Linguaggi di descrizione della pagina: HTML e CSS
- Evoluzione del modello Web
Verso un approccio dinamico: personalizzazione, stato, sessioni e conversazioni
Gestione dello stato
Programmazione Server Side: Servlet, JSP
Programmazione Client Side: Javascript e Ajax
- Verso ambienti server-side di tipo Enterprise
Architetture multilivello: distribuzione orizzontale e verticale, separazione di business logic, modelli componente-container
Cenni di Model View Controller per Web e Java Model 2
Enterprise Java Beans come esempio di tecnologia conforme al modello a container pesante
Spring come esempio di tecnologia conforme al modello a container leggero
- Tecnologie emergenti client-side: single page application, react.js e direzioni di evoluzione per front-end
- Tecnologie emergenti server-side: modello orientato agli eventi e stateless, node.js, gestione asincrona I/O
- Upgrading verso HTTP2/0: motivazioni e meccanismo delle Websocket in Javascript (client-side) e Java (server-side)
Per informazioni sui contenuti e sul materiale didattico dell'anno accademico corrente, si veda:
http://lia.disi.unibo.it/Courses/twt2223-info/
Per eventuali informazioni sui contenuti e sul materiale didattico dell'anno accademico precedente si faccia anche riferimento a:
http://lia.disi.unibo.it/Courses/twt2122-info/
Testi/Bibliografia
Fonte primaria di materiale, informazioni ed esercizi: lucidi delle lezioni disponibili sul sito Web del corso
Generali
V. Della Mea, L. Di Gaspero, I. Scagnetto, Programmazione Web Lato Server, 2a edizione, Apogeo, 2011
V. Roberto, M. Frailis, A. Gugliotta, P. Omero, Introduzione alle Tecnologie Web, McGraw-Hill, 2010
W3C, HTML, CSS, javascript
World Wide Web Consortium: http://www.w3.org [http://www.w3.org/]
HTML 4.01 Specifications: http://www.w3.org/TR/html4/
World Wide Web Consortium CSS Reference: http://www.w3.org/Style/CSS/
World Wide Web Consortium CSS2 Specifications: http://www.w3.org/TR/REC-CSS2/
Client-Side JavaScript Guide: http://www.w3schools.com/js/default.asp
Architetture Enterprise
A.L. Rubinger, B. Burke, Enterprise JavaBeans 3.1, 6th ed., O’Reilly, 2010
C. Walls, Spring in Action, 3rd ed., Manning, 2011
Spring: http://www.springsource.org/
Trend di evoluzione client-side e server-side
A. Banks, Learning React: Functional Web Development With React and Redux, O’Reilly, 2017
S. Powers, Node: Moving to the Server Side, O’Reilly, 2016
A. Lombardi, WebSocket: Lightweight Client-Server Communications, O’Reilly, 2014
React: https://reactjs.org/docs/getting-started.html
Node: https://nodejs.org/en/ §Websocket: https://javascript.info/websocket
Metodi didattici
Il corso viene erogato in aula mediante proiezione di slide (disponibili sul sito Web del corso). Le lezioni sono integrate da esercitazioni pratiche guidate dai docenti in laboratorio (circa il 30% delle ore). Ogni esercitazione in laboratorio affronta uno specifico argomento trattato a lezione proponendo esercizi concreti (richiedendo l'utilizzo di IDE e tool di programmazione specifici).
Tutte le lezioni sono tenute in italiano. È quindi necessaria la comprensione della lingua italiana per seguire con profitto il corso e per poter utilizzare il materiale didattico fornito.
In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://elearning-sicurezza.unibo.it/] in modalità e-learning.
Modalità di verifica e valutazione dell'apprendimento
La verifica dell’apprendimento avviene attraverso un esame finale che accerta l’acquisizione delle conoscenze e delle abilità attese tramite lo svolgimento di una prova pratica svolta in laboratorio della durata di 3 ore (con possibilità di accesso ad appunti, libri e codice software), seguita da un colloquio orale, per i soli studenti che hanno superato la parte pratica.
La prova pratica di programmazione consiste di norma di 3 esercizi (11 punti ciascuno). Per poter partecipare alla prova pratica è necessario iscriversi alla lista dell'appello tramite l'applicativo AlmaEsami.
Per superare la prova pratica di laboratorio ed essere ammessi all’orale, è necessario totalizzare almeno 18 punti (su un totale disponibile di 33), equamente distribuiti sui tre esercizi, ovvero almeno 6 punti sul primo esercizio, 6 punti sul secondo esercizio e 6 punti sul terzo esercizio.
Il colloquio orale consiste di norma di veloci domande relative all'intero programma del corso e fornisce un punteggio che varia da +4 punti a -4 punti rispetto al punteggio acquisito nella prova pratica.
Nel colloquio orale il massimo punteggio sarà garantito agli studenti che dimostreranno di aver compreso ed essere capaci di utilizzare tutti i contenuti dell'insegnamento, illustrandoli con capacità di linguaggio, e risolvendo problemi anche complessi non necessariamente incontrati a lezione. L'attribuzione del punteggio minimo potrà essere dovuta all'insufficiente conoscenza dei concetti chiave, alla mancata padronanza del linguaggio tecnico, alla mancata o insufficiente capacità di astrazione dei concetti.
Strumenti a supporto della didattica
In aula si usano slide (disponibili sul sito Web del corso). In laboratorio sono presenti strumenti di sviluppo e di supporto alla esecuzione delle esercitazioni (es. Eclipse, Tomcat, Chrome Developer Tools, node.js). Gli studenti sono invitati a familiarizzare con questi o altri strumenti di uso personale.
Link ad altre eventuali informazioni
http://lia.disi.unibo.it/Courses/twt2223-info/
Orario di ricevimento
Consulta il sito web di Paolo Bellavista
Consulta il sito web di Giuseppe Di Modica
SDGs
L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.