Ingegneria Informatica e Intelligenza artificiale L-8
Ingegneria del Web
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 (IINF-05/A) | 6 | -- Nessun gestore -- |
Obiettivi Formativi
L'insegnamento si propone di fornire agli studenti le nozioni fondamentali dell'ingegneria del Web, con particolare riferimento all'architettura delle reti, ai protocolli di comunicazione e alle tecnologie di progettazione e sviluppo di applicazioni e siti Web.
Vengono trattati i concetti di base della comunicazione in rete e dei modelli di riferimento (OSI e TCP/IP), il protocollo HTTP/HTTPS e la gestione dello stato tramite cookie, il modello client-server e i servizi Web (API, SOAP, REST) con i relativi formati di scambio dati (XML e JSON). Particolare attenzione è dedicata alle tecnologie di front-end per la realizzazione delle pagine Web (HTML e CSS), con numerose attività laboratoriali svolte tramite strumenti come Cisco Packet Tracer e Replit.
Al termine del corso lo studente avrà acquisito:
- Comprensione dei principi fondamentali delle reti e del Web: capacità di analizzare i modelli di comunicazione (OSI, TCP/IP), gli apparati di rete e i protocolli applicativi (HTTP, HTTPS).
- Padronanza delle tecnologie e dei formati del Web: conoscenza del modello client-server, dei servizi (API, SOAP, REST) e dei formati di scambio dati (XML, JSON).
- Capacità di progettazione e sviluppo front-end: comprensione e utilizzo di HTML e CSS per la realizzazione di pagine e applicazioni Web.
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione
Lo studente dovrà aver acquisito conoscenza e capacità di comprensione:
- dei principi fondamentali della comunicazione in rete, dei modelli OSI e TCP/IP, degli apparati di rete e dell'evoluzione del Web (dal Web 1.0 al Web 4.0).
- dei protocolli applicativi del Web (HTTP e HTTPS), della gestione dello stato tramite cookie e dei meccanismi di sicurezza e autenticazione.
- del modello client-server, dei servizi Web (API, SOAP, REST), dei formati di scambio dati (XML e JSON) e delle tecnologie di sviluppo front-end (HTML e CSS).
Capacità di applicare conoscenza e comprensione
Lo studente dovrà sviluppare la capacità di applicare le conoscenze acquisite, con particolare riferimento:
- all'analisi del funzionamento di una rete e alla simulazione di scenari di comunicazione, anche mediante strumenti quali Cisco Packet Tracer.
- all'analisi delle richieste e delle risposte HTTP e all'utilizzo dei servizi Web e dei formati XML e JSON per lo scambio di dati tra applicazioni.
- alla progettazione e alla realizzazione di pagine e siti Web mediante HTML e CSS, utilizzando ambienti di sviluppo online come Replit.
Abilità di giudizio
Lo studente dovrà aver sviluppato capacità di giudizio critico nell'analisi e nell'applicazione dei concetti affrontati. In particolare, dovrà essere in grado di:
- valutare la correttezza e l'efficacia delle soluzioni adottate nella progettazione di una pagina o applicazione Web, identificando eventuali errori e proponendo alternative più appropriate.
- interpretare criticamente il traffico di rete e le interazioni client-server, verificandone la coerenza con le specifiche dei protocolli.
- scegliere le tecnologie, i protocolli e i formati di scambio dati più idonei in funzione delle caratteristiche del problema (SOAP o REST, XML o JSON).
Abilità di comunicare
Lo studente svilupperà, anche attraverso l'interazione con i docenti, la capacità di:
- esprimere in modo chiaro e rigoroso concetti e procedure relativi all'architettura delle reti e allo sviluppo di applicazioni Web, utilizzando la terminologia tecnica appropriata.
- redigere documentazione tecnica su esercitazioni, progetti e analisi di applicazioni Web, presentando codice e risultati in forma comprensibile e strutturata.
- comunicare efficacemente con interlocutori tecnici e non tecnici, spiegando i principi fondamentali e le applicazioni pratiche delle tecnologie Web.
- utilizzare strumenti informatici e di simulazione per rappresentare architetture di rete e soluzioni Web, facilitando la comprensione dei fenomeni studiati.
Capacità di apprendimento
Lo studente dovrà aver acquisito le basi necessarie per:
- saper individuare autonomamente fonti di approfondimento (libri, articoli, documentazione ufficiale, risorse digitali) per consolidare e ampliare le conoscenze sulle tecnologie Web.
- essere in grado di aggiornare le proprie competenze in relazione all'evoluzione dei linguaggi, dei protocolli e delle tecnologie di sviluppo Web.
- applicare metodi di studio e di problem solving per affrontare nuovi problemi legati alla progettazione e allo sviluppo di applicazioni Web.
- collegare le conoscenze acquisite con altre discipline informatiche, favorendo un apprendimento interdisciplinare e continuo.
Programma del Corso
Modulo 1 – Introduzione al Web e alla comunicazione
- Introduzione al Web: dal Web 1.0 al Web 4.0.
- Dato e informazione; informazione e comunicazione; la comunicazione in rete.
- Requisiti della comunicazione in rete: il concetto di protocollo e di servizio, con esempi di vita reale.
Modulo 2 – Modelli di rete e apparati
- Reti di calcolatori e il modello OSI; la Protocol Data Unit.
- Il modello TCP/IP e il confronto tra OSI e TCP/IP.
- Apparati di rete e network troubleshooting.
- Attività laboratoriale con Cisco Packet Tracer: introduzione, dispositivi, LAN, configurazione di un Web server e analisi del traffico.
Modulo 3 – Il protocollo HTTP
- L'evoluzione del Web e le tecnologie nelle sue diverse fasi.
- Il protocollo HTTP: request e response, versioni del protocollo.
- La connessione HTTP e la connessione TCP sottostante.
- Risorse nel Web e metodi HTTP; attività laboratoriale (HTTP Lab).
Modulo 4 – Sicurezza e gestione dello stato
- HTTP ed HTTPS: crittografia, SSL e TLS.
- Comunicazione stateless e stateful; i cookie e la loro sicurezza.
- Struttura e implementazione di un cookie.
- Attività laboratoriale con Replit (Online IDE): creazione di un sito Web.
Modulo 5 – Modello client-server e servizi Web
- Il sistema client-server e le API (Application Programming Interface).
- Servizi Web: SOAP e REST; la popolarità di REST.
- Il formato XML: struttura e dettaglio.
- Il formato JSON e il confronto XML vs JSON; attività laboratoriale (XML - JSON Lab).
Modulo 6 – HTML
- Evoluzione di HTML e struttura di base; codifica e DOM.
- Struttura e intestazione di un documento HTML; il corpo (body) e le novità di HTML5.
- Autenticazione nelle applicazioni Web e in HTTP; altri metodi di autenticazione.
- Form HTML: interazioni con il Web, form input e invio dei dati; attività laboratoriale (HTML Forms Lab).
Modulo 7 – CSS
- Introduzione ai CSS: storia e meccanismo del cascading.
- Regole CSS e associazione dei fogli di stile.
- Il box model e il posizionamento: display, float e position.
- Attività laboratoriali di livello base e avanzato (CSS Lab).
Testi consigliati
Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente
L'acquisizione dei risultati di apprendimento previsti viene accertata attraverso: le attività di autovalutazione associate ad ogni video-lezione, i test associati alla didattica sincrona, la prova intermedia online e la prova finale in presenza.
Test di autovalutazione: i test di autovalutazione permettono allo studente di monitorare la comprensione degli argomenti somministrati ed eventualmente di attivarsi per colmare le lacune.
Test post-didattica sincrona: I test successivi alla didattica sincrona verificano l’applicazione delle conoscenze in situazione guidata e la capacità di apprendimento autonomo. Consentono di osservare l’uso operativo dei saperi e la capacità di trasferimento.
La prova intermedia online e la prova finale in presenza: consente una verifica sistematica e standardizzata delle conoscenze disciplinari e della comprensione concettuale e permette di valutare l’autonomia di giudizio, ovvero la capacità di formulare valutazioni motivate e sostenere argomentazioni critiche.
Modalità di esame
La valutazione finale avverrà nelle date d’appello previste dall’Ateneo e pubblicate in piattaforma, in modalità scritta online, scritta strutturata in presenza e/o orale.
Propedeuticità
Prerequisiti
Organizzazione didattica
Modalità di erogazione del corso
Sono comprese videolezioni e attività di didattica sincrona.
I contenuti delle videolezioni sono parte integrante del programma d'esame, ma per numerosi argomenti sono necessari ulteriori approfondimenti ed è raccomandata la consultazione dei libri di testo indicati dai docenti.
Attività didattiche previste
Le attività di didattica, suddivise tra didattica erogativa (DE) e didattica sincrona (DS), saranno costituite da 7 ore per CFU e ripartite secondo una struttura di almeno 2,5 ore di DE (5 ore, tenuta in considerazione la necessità di riascolto) e di 2 ore di DS per ciascun CFU.
Attività didattica erogativa (30 ore)
- 30 lezioni frontali, videoregistrate, della durata di circa 30 minuti ciascuna, sempre disponibili in piattaforma didattica (ogni videolezione corrisponde a 1 ora di didattica erogativa considerando la necessità di riascolto).
Attività didattica sincrona (12 ore)
- Le 12 ore in forma di esercitazioni interattive in aula virtuale, svolte in modalità sincrona, organizzate in date e orari concordati e su tematiche specifiche del programma per gli studenti che preparano l'esame.
- Forum di approfondimento tematici: ha lo scopo di approfondire gli argomenti del corso che risultano di difficile comprensione per gli studenti o che interessano maggiormente. Si tratta di uno strumento che dà a ciascun studente la possibilità di aggiungere un argomento di discussione che verrà successivamente approfondito insieme al docente.
Attività di autoapprendimento
- Test di autovalutazione con domande a scelta multipla, alla fine di ogni lezione.
- Materiale di studio ed esempi di codice inerenti ai contenuti del corso sono disponibili in piattaforma per l'approfondimento degli argomenti trattati da parte degli studenti.
L'articolazione tra DE e DS, per ciascun modulo, sarà organizzata coerentemente con gli obiettivi formativi specifici dell'insegnamento.
Ricevimento studenti
Calendario
Lezioni
Introduzione al web
La comunicazione
Protocollo e servizio
Il modello OSI
Il modello TCP-IP
Apparati di rete
CISCO Packet Tracer - Introduzione
CISCO Packet Tracer - Web Server
L'evoluzione del WEB
Il protocollo HTTP
La connessione HTTP
Risorse nel web
HTTP lab
HTTPS
Cookies
Cookies - Implementazione
Replit - online IDE
Il modello Client Server
XML
JSON
XML - JSON lab
HTML - evoluzione
HTML
HTML - struttura ed intestazione
HTML - corpo
HTML - Authentication
HTML - Forms
HTML - forms - lab
CSS - introduzione
CSS
CSS - Box model
CSS - Display
CSS - Posizionamento
CSS - Lab base
CSS - Lab advanced