TECNOLOGIE E SISTEMI WEB Canale unico
Docente coordinatore e verbalizzante: LORENZO MARCONI
Docenti
Obiettivi formativi
Obiettivi generali.
Conoscere HTML e XML, i linguaggi standard per la rappresentazione dell'informazione sul Web. Conoscere gli standard, i metodi e gli strumenti per il processamento di tali linguaggi: fogli di stile per HTML (CSS), DOM HTML, librerie e strumenti per HTML (Bootstrap), XML stylesheets.
Conoscere la programmazione Web lato client (Javascript, JSON, JQuery).
Conoscere alcuni elementi della programmazione Web lato server (PHP, Node.js).
Obiettivi specifici.
Conoscenza e comprensione:
I principali standard per la rappresentazione e l'elaborazione dell'informazione nel World Wide Web. Le tecniche per la programmazione lato client di applicazioni Web.
Applicare conoscenza e comprensione:
Essere in grado di progettare il lato client di una applicazione Web.
Capacità critiche e di giudizio:
Essere in grado di valutare la qualità di una applicazione Web, con particolare riguardo al lato client dell'applicazione.
Capacità comunicative:
Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di comunicare/condividere i requisiti di una applicazione Web, nonché le scelte progettuali e le metodologie di progettazione e sviluppo del lato client di tale applicazione.
Capacità di apprendimento:
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.
Risultati di apprendimento attesi
1. Conoscere i principi fondamentali del World Wide Web e del protocollo HTTP: descrivere l'architettura del Web, il ruolo del client e del server, e i principali metodi e codici di stato HTTP.
2. Conoscere i linguaggi di markup e le specifiche HTML5: riconoscere e applicare i costrutti semantici di HTML5 per strutturare pagine accessibili e semanticamente corrette.
3. Progettare e realizzare form HTML complete e validabili: saper costruire form con campi appropriati e meccanismi di validazione client-side e server-side.
4. Progettare layout responsive con CSS: utilizzare fogli di stile, selettori, box model, flexbox/grid e media queries per creare interfacce adattive su dispositivo mobile e desktop.
5. Comprendere e manipolare il Document Object Model (DOM): navigare e modificare la struttura di una pagina tramite API DOM, aggiornando contenuti, attributi e stile in risposta ad eventi.
6. Programmare interazioni client con JavaScript: scrivere codice JavaScript per la gestione di eventi, validazione dinamica, modularità del codice, e uso corretto delle callback/Promise/async-await.
7. Usare librerie e framework JavaScript (es. jQuery) e tecniche AJAX: integrare una libreria per semplificare manipolazioni DOM e usare AJAX/fetch per comunicazioni asincrone con il server.
8. Sviluppare componenti lato server con PHP o Node.js: implementare endpoint, gestire richieste HTTP, sessioni e form submission, e comprendere i concetti base di sicurezza (es. sanitizzazione input).
9. Conoscere XML e tecnologie correlate (DOM XML, XPath, XSLT): leggere e trasformare documenti XML tramite XPath e XSLT per scopi di integrazione e presentazione.
10. Progettare e realizzare un flusso completo client-server: integrare front-end (HTML/CSS/JS) e back-end (PHP/Node.js) per realizzare applicazioni Web funzionanti, testabili e manutenibili.
Prerequisiti
Conoscenza di almeno un linguaggio di programmazione ad alto livello.
Programma dell’insegnamento
1. World Wide Web e HTML:
World Wide Web, HTTP
Linguaggi di markup
HTML e XHTML
HTML5
Fogli di stile CSS
2. Programmazione Web lato client:
Il modello a oggetti di HTML
Il linguaggio JavaScript
Framework e librerie JavaScript
JQuery
AJAX
3. Programmazione Web lato server:
PHP
Node.js
4. XML:
XML
DOM
XPath, fogli di stile XSL, XSLT
Testi di riferimento
1) Dispense distribuite dal docente
2) D. Haverbeke: JavaScript - Guida completa per lo sviluppatore (titolo originale: Eloquent JavaScript, 2nd edition). Hoepli editore, 2016. La quarta edizione del manuale (2024) è disponibile in inglese online.
Modalità di svolgimento
Le lezioni si svolgono in presenza e trasmesse in modalità telematica.
Frequenza
Nessun obbligo di frequenza.
Modalità di esame
L'esame consiste in una prova scritta con esercizi e domande sugli argomenti del corso.
È inoltre prevista la possibilità di presentare un progetto pratico da svolgere in gruppo di due o tre persone.
Per superare l'esame occorre conseguire un voto non inferiore a 18/30.
Lo studente deve dimostrare di aver acquisito una conoscenza sufficiente di tutti gli argomenti del programma e di essere in grado di mettere in pratica le nozioni acquisite nello sviluppo di un'intera applicazione web (nel caso di svolgimento tramite progetto pratico) o di specifiche parti di essa (nel caso di prova scritta).
Per conseguire un punteggio pari a 30/30 e lode, lo studente deve invece dimostrare di aver acquisito una conoscenza eccellente di tutti gli argomenti trattati durante il corso, essendo in grado di raccordarli in modo logico e coerente.
Esempi di domande
Gli esercizi proposti vertono principalmente sui seguenti argomenti:
- creazione e validazione di form HTML
- creazione di layout responsive usando CSS
- manipolazione dinamica dei contenuti di una pagina Web tramite il suo document-object model
- gestione degli eventi in JavaScript
- interazione (sincrona e asincrona) tra Web client e Web server
- applicazioni di XSL per la trasformazione di documenti XML
Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030
- Anno accademico2026/2027
- Corso di studio a cui afferisce l’insegnamentoIngegneria Informatica e Automatica
- Codice insegnamento10606934
- CurriculumInformatica
- Anno e semestre3º anno - 2º semestre
- TipologiaAttività formative caratterizzanti
- AmbitoIngegneria informatica
- SSDING-INF/05
- Presenza obbligatoriaNo
- Linguaita
- CFU6 CFU
- Durata complessiva60 ore
- Distribuzione delle ore36 classroom hours, 24 training hours