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

Altro

 

Modalità di accertamento dei risultati di apprendimento acquisiti dallo studente

L'acquisizione dei risultati di apprendimento previsti viene accertata attraverso la verifica del completamento delle attività di autovalutazione presenti alla fine di ogni sezione dell'insegnamento e attraverso la prova di esame. I test di autovalutazione permettono allo studente di monitorare la propria comprensione degli argomenti somministrati e, nel caso ci siano delle difficoltà, di attivarsi per colmare le lacune o chiedere ulteriori spiegazioni al docente tramite incontri di didattica interattiva. Tutti i contenuti trattati nell'ambito dell'insegnamento costituiscono oggetto di valutazione. La valutazione delle competenze acquisite dallo studente avverrà in forma scritta nelle date d'appello previste dall'Ateneo e pubblicate in piattaforma. La valutazione prevede l'identificazione del raggiungimento degli obiettivi previsti ed in particolare, per ogni argomento, saranno valutati:

  • Il grado di acquisizione della conoscenza degli argomenti trattati (50% del punteggio).
  • La capacità di sintesi e correlazione tra i vari argomenti, oltre a una corretta terminologia (25% del punteggio).
  • La comprensione e la capacità di interpretazione delle architetture di rete e delle soluzioni Web implementate (25% del punteggio).

Modalità di esame

 

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 interattiva.

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 interattiva (DI), 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 DI 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 interattiva (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 DI, 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

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