WEB PROGRAMMING, DESIGN & USABILITY

INF/01 - 6 CFU - 2° semestre

Docenti titolari dell'insegnamento

SALVATORE ANTONIO RICCOBENE
GIUSEPPE PAPPALARDO


Obiettivi formativi

Il corso si propone di introdurre le basi indispensabili per la realizzazione di applicativi web based, sia dal punto di vista del front-end che del back-end, fornendo una conoscenza full-stack.

Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Le lezioni sono tenute in aula con l'ausilio di slide, messe a disposizione degli studenti sul portale Studium. Le slide non sostituiscono i testi di riferimento, ma, oltre che agevolare la comprensione della lezione, forniscono un dettaglio puntuale sul programma svolto.
Le lezioni frontali teoriche sono intervallate da esercitazioni pratiche, svolte nella stessa aula di lezione. Gli studenti sono invitati a formare piccoli gruppi di lavoro (massimo 4-5 persone)
per lo svolgimento delle esercitazioni proposte.
Il corso prevede delle ore aggiuntive di Didattica integrativa, durante le quali vengono tipicamente svolti approfondimenti sugli argomenti già trattati nelle ore di esercitazione di gruppo.


Prerequisiti richiesti

  1. Programmazione I e II : programmazione ad oggetti, strutture dati
  2. Database: DB relazionali
  3. Interazione e Multimedia: Spazi di colori, interfacce utenti
  4. Reti di Calcolatori: protocolli di comunicatione, indirizzamento IP, protocollo HTTP, socket


Frequenza lezioni

La frequenza delle lezioni non è obbligatoria ma è fortemente consigliata. In particolare si consiglia la frequenza alle ore di esercitazione di gruppo e di Didattica integrativa.



Contenuti del corso

Introduzione al World Wide Web
Storia del web del linguaggio HTML
Evoluzione del web e dei browser
Il protocollo HTTP: URL e Verbi
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
JQuery
Comunicazioni asincrone
Typescript
Sviluppo type oriented lato client
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
Introduzione a Laravel
sviluppo di model, controller e views
Sviluppo di API REST
Sviluppo distribuito lato server
Introduzione a NodeJS
Programmazione ad eventi
Realizzazione di un Web Server
Introduzione alle websocket
Cenni sui linguaggi lato server



Testi di riferimento

1) R.W. Sebesta, Programming the World Wide Web, 8th Edition


Altro materiale didattico

Il materiale didattico è disponibile nella piattaforma Studium.

Ultriore materiale è disponibile sul repository github del corso.



Programmazione del corso

 ArgomentiRiferimenti testi
1HTTP e i server webProgramming the WWW 
2HTML 
3XHTMLProgramming the WWW 
4CSS e DOMProgramming the WWW 
5JavascriptProgramming the WWW 
6PHPProgramming 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)




Apri in formato Pdf English version