CODICE 65704 ANNO ACCADEMICO 2023/2024 CFU 6 cfu anno 3 INFORMATICA 8759 (L-31) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Italiano SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Questo corso introduce le conoscenze e le competenze necessarie per creare applicazioni web. Verranno introdotti i linguaggi di markup, stile e programmazione front-end e le tecnologie back-end per creare siti web dinamici basati sui dati. Il corso è fortemente guidato dal progetto finale, un sito web progettato e sviluppato da zero, e pone le basi per essere in grado di capire, apprezzare e usare in un secondo momento i più moderni framework per lo sviluppo web. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Acquisire tecniche e metodi per la costruzione di applicazioni web dinamiche mediante linguaggi di scripting, prevedendo anche l'interazione con database remoti, la realizzazione di interfacce ricche e l'integrazione di dati esposti mediante API pubbliche sviluppando una conoscenza di base dei concetti di usabilità, accessibilità e di sicurezza. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Con questo corso gli studenti saranno in grado di: COMPRENDERE il funzionamento del web: per esempio la sua architettura client/server e la mancanza di stato del protocollo HTTPS. INSTALLARE un web server e un sistema di gestione di database relazionali. UTILIZZARE i diversi linguaggi presentati a lezione per la progettazione di un'applicazione web accessibile e responsive. COMPRENDERE le vulnerabilità delle applicazioni web e APPLICARE le opportune contromisure. PRESENTARE il proprio progetto in pochi minuti (elevator pitch). PREREQUISITI Per seguire con successo questo corso sono necessarie conoscenze di: Programmazione Basi di dati Protocolli di comunicazione MODALITA' DIDATTICHE Lezioni, esercitazioni pratiche e studio a casa. PROGRAMMA/CONTENUTO Creazione di pagine web statiche usando HTML5 e CSS Validazione delle pagine web Programmazione lato server Creazione di pagine dinamiche con PHP: sintassi, strutture dati e di controllo, gli oggetti. Utilizzo di cookie, controllo di accesso, controllo di sessione Accesso a database remoti attraverso script PHP Consumo di file JSON Programmazione lato client Javascript e le specifiche del DOM Chiamate asincrone (API Fetch) Librerie JavaScript per la realizzazione di interfacce ricche Il paradigma architetturale REST (REpresentational State Transfer) Sicurezza, usabilità e accessibilità nelle applicazioni web Esercitazioni e progetto finale che tocca tutti gli argomenti introdotti a lezione TESTI/BIBLIOGRAFIA Un libro di testo che copre tutti gli argomenti del corso è quello seguente: Learning PHP, MySQL, JavaScript, and CSS, A Step-by-Step Guide to Creating Dynamic Websites. O'Reilly, 2012. Vanno anche bene gli appunti presi a lezione e i libri presenti in biblioteca quali, ad esempio: JavaScript: la guida, D. Flanagan, APOGEO Internet & WWW: how to program, Deitel Per la maggior parte degli argomenti trattati in questo corso il miglior libro di testo è la rete stessa. DOCENTI E COMMISSIONI MARINA RIBAUDO Ricevimento: Su appuntamento (in presenza o online) definito per email. Commissione d'esame MARINA RIBAUDO (Presidente) MAURIZIO LEOTTA MATTEO DELL'AMICO (Supplente) LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L’esame consiste delle seguenti prove: (i) un test scritto di ammissione alla prova orale e (ii) una prova orale durante la quale viene discusso il progetto e si devono modificare/correggere alcune parti del codice consegnato. MODALITA' DI ACCERTAMENTO Il test scritto, che serve per l'ammissione alla discussione del progetto, è composto da poche domande aperte relative agli argomenti affrontati a lezione, argomenti che forniscono le basi per la realizzazione del progetto. Il test permette di valutare le conoscenze teoriche acquisite dallo studente. Appena concluso il test viene concordato il calendario per gli orali. Test scritto e discussione del progetto avvengono nello stesso appello. La prova orale è volta a valutare se lo studente ha raggiunto un livello adeguato di competenze pratiche ed è in grado di modificare il codice prodotto. Consiste in: (i) presentazione del progetto; (ii) esecuzione dei test automatici forniti durante il corso; (iii) discussione dettagliata del codice prodotto; (iv) modifica di uno o più file e consegna su AulaWeb. Il progetto può essere svolto in coppia, la valutazione è individuale. Calendario appelli Data appello Orario Luogo Tipologia Note 16/01/2024 09:00 GENOVA Scritto 06/02/2024 14:00 GENOVA Scritto 04/06/2024 09:00 GENOVA Scritto 09/07/2024 09:00 GENOVA Scritto 06/09/2024 09:00 GENOVA Scritto