INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICAIngegneria informaticaAnno accademico 2022/2023

1015330 - DATABASES AND WEB PROGRAMMING M - Z
Modulo 1015332 - WEB PROGRAMMING

Docente: CONCETTO SPAMPINATO

Risultati di apprendimento attesi

Il modulo tratta gli strumenti metodologici per la progettazione dei moderni sistemi informativi basati su web, che collegano le basi di dati ai processi elaborativi di tipo interattivo. A questo fine, vengono trattati, in un contesto laboratoriale, gli strumenti per lo sviluppo di un sistema che comprenda la parte di back-end (programmazione lato server) e di front-end (programmazione lato client), quest'ultima con particolare riferimento ad applicazioni web "responsive". Verranno successivamente trattate tecniche di progettazione e di implementazione più avanzate basate sul pattern architetturale Model-View-Controller (MVC).

Si daranno infine cenni su tecniche di progettazione e di implementazione avanzate per la realizzazione di GUI interattive (per esempio, React).

Gli obiettivi formativi del corso, declinati secondo i descrittori di Dublino, sono:

Conoscenza e capacità di comprensione

Conoscenze applicate e capacità di comprensione

Autonomia di giudizio

Abilità comunicative

Capacità di apprendimento

Modalità di svolgimento dell'insegnamento

Lezioni frontali, esercitazioni, laboratorio e seminari.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Conoscenze di base di programmazione e di reti di calcolatori.


Frequenza lezioni

Fortemente consigliata.


Contenuti del corso

Fondamenti di web programming e sviluppo lato server

Progettazione di Web Information System e Sviluppo di applicazioni web lato client

Tecniche di Web Programming avanzate


Testi di riferimento

Dispense del docente e documentazione da Mozilla Developer Network e PHP.net


Programmazione del corso

 ArgomentiRiferimenti testi
1HTMLDispense docente
2CSSDispense docente
3FlexboxDispense docente
4Mobile webDispense docente
5JavascriptDispense docente
6EventiDispense docente
7Fetch APIDispense docente
8REST APIDispense docente
9Programmazione server-side (PHP) Dispense del docente
10Architettura MVCDispense del docente
11LaravelDispense del docente

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Il corso offre due modalità di esami.

Svolgimento di homework durante il corso

Per ogni macro-argomento del corso, verrà assegnato un progetto individuale da svolgere a casa ("homework"), tramite il quale lo studente dovrà dimostrare la padronanza dell'argomento in questione. Previo completamento di tutti gli homework assegnati, l'esame di fine corso consisterà nella discussione dello svolgimenti degli stessi.

Progetto unico

Qualora non si segua la modalità di superamento della materia tramite homework, l'esame di verifica dell'apprendimento consisterà nello svolgimento in un progetto unico che racchiuda tutti gli argomenti studiati nel corso, e nella discussione dello stesso.

---

A prescindere dalla modalità scelta, la discussione dell'elaborato verterà su scelte progettuali, aspetti implementativi, domande teoriche e domande pratiche (si vedano gli esempi di domande). La sufficienza sarà raggiunta attraverso Il rispetto delle specifiche minime di progetto e la consapevolezza delle scelte implementative effettuate. Sarà ulteriormente valutata la capacità dello studente di utilizzare funzionalità e tecniche avanzate che esulino dalle specifiche minime.

Esempi di domande e/o esercizi frequenti

Discussione delle implementazioni degli elaborati. Esempi di domande (lista non esaustiva):

- cosa fa questa riga di codice?

- quale funzione gestisce questo evento?

- quale funzione gestisce questa richiesta lato server?

- in che altro modo si può implementare questa funzionalità?

Domande teoriche. Esempi (lista non esaustiva):

- cosa sono i selettori in CSS?

- che valori può assumere la proprietà display in CSS e cosa significano?

- come si controlla la distanza tra un elemento HTML e gli elementi circostanti, o tra il contenuto di un elemento e il bordo dell'elemento?

- come si gestisce un evento in JavaScript?

- come si leggono in PHP dei dati trasmessi da un form?

- come si effettua una richiesta asincrona in JavaScript?

Domande pratiche. Esempi (lista non esaustiva):

- scrivere il codice di due div annidati i cui bordi distino 20 pixel;

- scrivere il codice JavaScript per leggere il contenuto testuale di tutti gli span di classe C contenuti in un div con id D;

- scrivere il codice PHP per leggere una variabile passata come parametro GET.


English version