Salta al contenuto principale
CODICE 108709
ANNO ACCADEMICO 2022/2023
CFU
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

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