WEB PROGRAMMING, DESIGN & USABILITY

Anno accademico 2018/2019 - 3° anno - Curriculum B
Docenti: Salvatore Antonio RICCOBENE e Giuseppe PAPPALARDO
Crediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre:

Obiettivi formativi

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

Lezioni Frontali

Esercitazioni di laboratorio


Prerequisiti richiesti

  1. Programmazione I e II : programmazione ad oggetti, strutture dati
  2. Algoritmi e laboratorio: algoritmi e strutture dati avanzate
  3. Interazione e Multimedia
  4. 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

 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)