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

HTML e CSS EAN: 9788848130363 ISBN: 8848130364 di Elizabeth Castro , Bruce Hyslop - Editore: Tecniche Nuove

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à

Non sono previste propedeuticità

Prerequisiti

Per il proficuo raggiungimento degli obiettivi formativi del corso, è auspicabile che lo studente possieda alcune conoscenze pregresse relative ai fondamenti dell'informatica e della programmazione, nonché ai principi base del ragionamento logico e ipotetico-deduttivo, che costituiscono prerequisiti essenziali per la comprensione e l'applicazione consapevole dei contenuti trattati.

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

Da concordare con il docente inviando una email a: antonino.longominnolo@uniroma5.it

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