Nuova ricerca

NICOLA CAPODIECI

Ricercatore t.d. art. 24 c. 3 lett. B
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Tecnologie web

Informatica (Offerta formativa 2024)

Obiettivi formativi

Il corso intende fornire una presentazione dei principi della programmazione Web server sia per quanto riguarda le tecnologie server-side che client-side.

Gli obiettivi formativi sono molteplici:
- fornire allo studente competenze riguardanti la programmazione e lo sviluppo di applicazioni Web basati su framework, con particolare riferimento al framework Django in Python
- fornire competenze riguardanti le tecnologie più utilizzate al momento per la programmazione client-side e l'interazione asincrona con l'utente (Ajax, JQuery, Javascript, Bootstrap)
- fornire la capacità di progettare e realizzare un'applicazione Web dinamica (che interagisce con sottostante Database) a partire da requisiti funzionali

Al termine del corso, gli studenti avranno modo di verificare le competenze acquisite tramite il progetto e l'implementazione di una applicazione Web. Inoltre, il corso fornirà una panoramica dei concetti base del cloud computing

Prerequisiti

Consigliati:
Python, conoscenze di sistemi operativi e basi di dati

Programma del corso

Web (0.5 CFU)
Evoluzione del Web
Concetti base del cloud computing

Server Side (4 CFU)
- Framework Django (Python)
- Paradigma Model-View-Controller
- Object-relational Mapping (ORM)
- Sviluppo di una applicazione di esempio
- Moduli per funzionalità avanzate

Client Side (1.5 CFU)
- CSS, HTML
- Javascript
- Ajax
- JQuery
- Bootstrap

Metodi didattici

Oltre alle lezioni frontali sui temi previsti dall'insegnamento, si farà ampio uso di esercitazioni pratiche in aula per permettere agli studenti di verificare le conoscenze acquisite in ogni lezione. L'insegnamento è erogato in lingua italiana. La frequenza non è obbligatoria, ma fortemente consigliata soprattutto alle parti pratiche. Gli studenti lavoratori sono invitati a prendere contatto con il docente.

Testi di riferimento

Dispense a cura del docente su Moodle.

Verifica dell'apprendimento

Le modalità d'esame comprendono lo sviluppo di un progetto ed una prova orale.

Il progetto consisterà nello sviluppo di una applicazione Web-based basata sul framework Django su temi a scelta degli studenti

Criteri di valutazione: conoscenza tematiche del corso, correttezza e qualità del codice di progetto

La prova orale verterà sulla parte teorica del corso, che riguarda i paradigmi di programmazione MVC, le tecnologie server-side e client-side, l'evoluzione del Web fino ai concetti introduttivi del cloud computing

La valutazione del progetto peserà per un 70% sul voto complessivo.

Sono previsti 3 appelli durante al sessione estiva e 2 appelli durante quella invernale

Risultati attesi

Conoscenza e capacità di comprensione. Gli studenti avranno solide conoscenze e capacità di comprensione nei seguenti ambiti:
- concrete tecniche di sviluppo per applicazioni Web-based complesse;
- paradigmi di sviluppo Model-View-Controller in ambito di sviluppo Web;
- tecnologie per lo sviluppo Web client-side

Capacità di applicare conoscenza e comprensione. Tramite le esercitazioni pratiche lo studente è in grado di applicare le conoscenze acquisite per realizzare programmi ed applicazioni Web-based complesse basate sul paradigma Model-View-Controller a partire da una descrizione dei requisiti

Autonomia di giudizio. Attraverso lo sviluppo di un progetto d'esame, individuale o di gruppo, lo studente migliora le proprie capacità di argomentare le scelte fatte nella progettazione dell'applicazione Web-based, valutandone criticamente i risultati ottenuti.

Abilità comunicative. La prova orale consente allo studente di sviluppare la capacità di esprimere i concetti appresi con linguaggio appropriato e sostenere una discussione in merito agli argomenti trattati. Il lavoro di gruppo nei progetti permette di affinare le capacità di interazione e comunicazione tra pari. Ha inoltre capacità di leggere con profitto letteratura tecnica (informatica) in lingua inglese.

Capacità di apprendimento. Le attività descritte consentono allo studente di acquisire gli strumenti metodologici per poter autonomamente provvedere all'aggiornamento e all'approfondimento della materia. Tali capacità di apprendimento continuo e autonomo sono necessarie anche a causa delle caratteristiche della disciplina, l'Informatica, in continua e rapida evoluzione.