WEB PROGRAMMING, DESIGN & USABILITY
Anno accademico 2018/2019 - 3° anno - Curriculum BCrediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre: 2°
Obiettivi formativi
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
- Conoscenza e capacità di comprensione (knowledge and understanding): l'obiettivo del corso è quello di far acquisire conoscenze che consentano allo studente di comprendere i concetti alla base della programmazione per il web; in particolare lo studente acquisirà le conoscenze dei principali protocolli e linguaggi in uso sia per la programmazione lato server che in quella lato client.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per realizzare sia la parte front-end che la parte back-end di un sistema web, scegliendo le tecnologie più opportune e ottimizzando le risorse disponibili. A tale riguardo una parte del corso consisterà di lezioni in laboratorio, con esempi pratici di realizzazioni di applicazioni web.
- Autonomia di giudizio (making judgements): Attraverso esempi concreti di applicazioni web, lo studente sarà in grado di elaborare autonomamente soluzioni in grado di implementare, nella maniera più conveniente, le richieste che riceverà nel suo lavoro.
- Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale dei sistemi informativi e dei sistemi webr in particolare.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale verranno dati cenni sui diversi linguaggi e piattaforme in uso per lo sviluppo di applicativi web.
Modalità di svolgimento dell'insegnamento
Lezioni Frontali
Esercitazioni di laboratorio
Prerequisiti richiesti
- Programmazione I e II : programmazione ad oggetti, strutture dati
- Algoritmi e laboratorio: algoritmi e strutture dati avanzate
- Interazione e Multimedia
- Reti di Calcolatori: protocolli di comunicatione, indirizzamento IP, protocollo HTTP
Frequenza lezioni
La frequenza non è obbligatoria ma è fortemente consigliata.
Contenuti del corso
Introduzione al World Wide Web
Il protocollo HTTP
Storia del web del linguaggio HTML
Evoluzione del web e dei browser
Il linguaggio HTML
Struttura di un documento HTML
I CSS
Programmazione HTML dinamica
Programmazione lato client e lato server
Origine di Javascript
Il Linguaggio Javascript
Integrazione di Javascript in HTML
Documenti Dinamici
Gestione e controllo dei form HTML
Il DOM
JQuery
Design e Usability del web
Programmazione lato server
I Web Server
Il linguaggio PHP
Interazione del PHP con i webserver
PHP e HTML
Passaggio di parametri tra pagine HTML
Le sessioni: apertura e chiusura
Utilizzo e passaggio dei parametri nelle sessioni
I cookies: uso e gestione
Sviluppo distribuito lato server
Introduzione a NodeJS
Programmazione ad eventi
Realizzazione di un Web Server
Sviluppo di API REST
Introduzione alle websocket
Introduzione ad Angular
Cenni sui linguaggi lato server
Testi di riferimento
1) R.W. Sebesta, Programming the World Wide Web, 8th Edition
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | HTTP e i server web | Programming the WWW |
2 | HTML | |
3 | XHTML | Programming the WWW |
4 | CSS e DOM | Programming the WWW |
5 | Javascript | Programming the WWW |
6 | PHP | Programming the WWW |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame consisterà in progetto da implementare con una delle tecnologie presentate
Esempi di domande e/o esercizi frequenti
Implementare un servizio web con Javascript (lato client) e PHP (lato server)