CODICE 108709 ANNO ACCADEMICO 2022/2023 CFU 6 cfu anno 3 INGEGNERIA GESTIONALE 10716 (L-9) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso fornisce allo studente i concetti fondamentali inerenti il progetto e la realizzazione di applicazioni web, abilitandolo a creare applicazioni web mediante il framework Django. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI L'obiettivo dell'insegnamento e' quello di fornire allo studente i concetti fondamentali inerenti il progetto e la realizzazione di applicazioni web, abilitandolo a creare applicazioni di tale tipo con l'ausilio di uno degli strumenti maggiormente diffusi ad oggi, il framework Django. L'insegnamento partira' col fornire un quadro generale di conoscenze relative al contesto della programmazione di applicazioni web, per poi verticalizzarsi su un insieme base di tecnologie abilitanti in tale ambito: i linguaggi HTML, CSS, Javascript ed il framework Django, basato sul linguaggio di programmazione Python. Per ognuna di tali tecnologie, l'insegnamento mirera' a fornire le competenze necessarie e tali che, applicate in maniera integrata, lo studente possa progettare ex-novo ed in maniera indipendente una applicazione web completamente funzionale. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Comprensione delle architetture di rete e della architettura client-server. Comprensione dei concetti alla base di Internet e del World Wide Web. Capacita' di scrivere semplici pagine web statiche in HTML. Capacita' di corredare una pagina web attraverso fogli di stile applicati ai suoi elementi (CSS). Capacita' di corredare una pagina web con logiche di trattamento della dinamica (Javascript). Comprensione dei concetti di base del framework Django: paradigma MTV, ORM, URL mapping. Capacita' di utilizzare Django per costruire una applicazione web, usufruendo dei suoi strumenti di supporto (per la connessione fra URL e logica di gestione; per la descrizione sintetica o programmatica delle logica delle pagine; per la descrizione programmatica della logica di visualizzazione; per la gestione della paginazione, per la gestione di autenticazione e permessi, per la gestione dei moduli di input, per la integrazione di accessi in SQL e la gestione di richieste asincrone AJAX; per il testing automatizzato). PREREQUISITI Conoscenza del linguaggio di programmazione Python. Conoscenza delle basi dati relazionali e del linguaggio SQL. MODALITA' DIDATTICHE Lezioni frontali ed esercitazioni assistite al calcolatore (eventualmente anche online). PROGRAMMA/CONTENUTO Contesto: architetture di rete. Contesto: paradigma client-server. Contesto: Internet (lo stack protocollare TCP/IP, indirizzamento IPv4/v6, DHCP, DNS). Contesto: il World Wide Web (URL, il protocollo HTTP, note su HTML, CSS e Javascript). Tecnologie sul lato del client: - HTML: struttura; tags ed attributi principali. - CSS: struttura; selettori e proprieta' principali. - Javascript: struttura; costrutti e strutture dati principali. Tecnologie sul lato del server: - panoramica sulle tecnologie piu' diffuse e sui relativi strumenti di supporto. - il framework Django e le sue caratteristiche concettuali principali. - sviluppo di una applicazione in Django attraverso la sua metodologia ed i relativi strumenti di supporto: views, templates, models; classi di supporto ai modelli dati e loro proprieta'; supporto alla paginazione; supporto alla personalizzazione della presentazione dei dati; supporto alla gestione di utenze ed alla restrizione di accessi; supporto alla gestione di moduli di input utente; integrazione con ricerche in SQL nativo; integrazione con interazioni asincrone in Javascript; integrazione con test automatizzati. TESTI/BIBLIOGRAFIA Risorse online: Tutorial W3Schools su HTML: https://www.w3schools.com/html/default.asp Tutorial W3Schools su CSS: https://www.w3schools.com/css/default.asp Tutorial W3Schools su Javascript: https://www.w3schools.com/js/default.asp Tutorial MDN su Django: https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django Risorse cartacee: HTML & CSS: Guida completa allo sviluppo di siti internet e al web design (Oscar R. Frost, 2020) JAVASCRIPT: Guida alla programmazione web e web-app (Oscar R. Frost, 2020) Web development with Django (Ben Shaw, Saurabh Badhwar, 2021) DOCENTI E COMMISSIONI PIERGIORGIO BERTOLI Ricevimento: Su appuntamento a richiesta degli studenti tramite una email al docente. Commissione d'esame ALBERTO TACCHELLA (Presidente) FABIO ROLI PIERGIORGIO BERTOLI (Presidente Supplente) LEZIONI INIZIO LEZIONI Fare riferimento al portale Easy Academy: https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Esame orale e pratico. MODALITA' DI ACCERTAMENTO Realizzazione di un progetto di web application e verifica orale. Calendario appelli Data appello Orario Luogo Tipologia Note 23/06/2023 10:00 GENOVA Orale 12/07/2023 10:00 GENOVA Orale 28/07/2023 10:00 GENOVA Orale 01/09/2023 10:00 GENOVA Orale