PROGRAMMAZIONE PER IL WEB

Obiettivi formativi

Obiettivi generali: Lo scopo del corso è lo studio del linguaggio java lato server, per la realizzazione di applicazioni web. Il corso fornisce inoltre un’analisi critica di diverse soluzioni implementative di molte funzionalità applicative comuni nello sviluppo di applicazioni web. Obiettivi specifici: Programmazione lato server mediante Java Servlet e pagine JSP. Conoscenza e comprensione: Il corso permetterà la comprensione del supporto fornito dal linguaggio Java alla realizzazione di applicazioni web. In particolare lo studente studierà le motivazioni alla base di tutte le scelte implementative, in particolare facendo riferimento alle architetture client-server e ai protocolli di rete in uso. Applicare conoscenza e comprensione: Attraverso il corso lo studente imparerà a riconoscere tra le possibili soluzioni applicative ad un problema, quale offra i maggiori vantaggi in termini di prestazioni, sicurezza, portabilità e efficienza. Capacità critiche e di giudizio: Il corso metterà lo studente in condizione di saper scegliere, dato un problema, la migliore metodologia risolutiva, attraverso la profonda comprensione dei requisiti e dei vincoli imposti dall'architettura. Capacità comunicative: Lo studente sarà in grado di motivare le proprie scelte nella proposta di uno specifico approccio realizzativo di un’applicazione Web, e fornire una analisi comparativa dell’approccio scelto con altri approcci possibili. Capacità di apprendimento: Lo studente svilupperà capacità di studio autonome e di comprensione e valutazione critica di nuove metodologie, tecnologie e modelli di sviluppo di applicazioni Web.

Canale 1
MATTIA SAMORY Scheda docente

Programmi - Frequenza - Esami

Programma
I. Fondamenti di Architettura Web - Architetture: Concetti di REST, Frontend/Backend, differenze con SPA (Single Page Application), PWA (Progressive Web App) e applicazioni standard. - Controllo di Versione: Git (commit, branch, merge request, risoluzione di merge conflicts, issues). II. Progettazione e Implementazione del Backend (API REST) - Protocolli e Formati: HTTP, JSON/YAML. - API Design: OpenAPI (Specifiche), utilizzo di Swagger Editor / Postman per testing. - API RESTful: Principi, uso corretto dei metodi POST/GET/PUT, organizzazione dei content-type, strutturazione del path. III. Sviluppo Backend con Go - Go - Costrutti Base: Organizzazione del codice (package, importazione librerie), costrutti base del linguaggio. - Go - Concetti Avanzati: Go interfaces, gestione degli errors, go packages, go concurrency. IV. Sviluppo Frontend con Vue.js - Fondamenti Frontend: HTML + CSS. - JavaScript: Costrutti base del linguaggio. - Vue.js: Introduzione (Anatomy of a Vue.js SPA, templates). - Vue.js: Approfondimenti (Template, reattività, Vue.js router). - Comunicazione Asincrona: JS-async, gestione di CORS, libreria axios. V. Containerizzazione e Deployment - Containerizzazione: Introduzione a Containers, docker-run, image registry, docker-build (Dockerfile). - Deployment e IaaC: Cenni su Deployment e Terraform (Infrastructure as a Code - IaaC). - Progettazione Full Stack: Progettazione e integrazione dell'intera applicazione (Esempio con Cursor).
Prerequisiti
Conoscenze di base di informatica apprese nei primi due anni di corso. In particolare: - almeno un linguaggio di programmazione - reti di calcolatori - basi di dati
Testi di riferimento
Emanuele Panizzi and Enrico Bassetti, Introduction to full stack web development with Go and Vue.js
Frequenza
La frequenza del corso non è obbligatoria ma è fortemente consigliata.
Modalità di esame
L'esame consiste nella realizzazione di un progetto suddiviso in 4 parti che verranno valutate in trentesimi e in un esame orale. Ogni parte è basata sullo sviluppo di codice. Sarà possibile migliorare il voto ricevuto in ciascuna parte poiché valuterò periodicamente le nuove consegne. Ovviamente, il voto potrà anche scendere, perché non posso tener conto del voto precedente in una valutazione successiva. Si potrà accedere all'orale solamente avendo superato tutte e quattro le parti, e il voto di presentazione all'orale sarà dato dalla media delle valutazione delle quattro parti. L'orale consisterà in una discussione dell'intero lavoro.
Bibliografia
- Slide disponibili sul sito web WASA per ogni lezione - codice di esempio - La documentazione relativa a tutti gli argomenti è disponibile sul web e verrà indicata durante il corso.
Modalità di erogazione
Lezioni frontali ed esercitazioni.
  • Codice insegnamento1022267
  • Anno accademico2025/2026
  • CorsoInformatica
  • CurriculumTecnologico
  • Anno3º anno
  • Semestre1º semestre
  • SSDINF/01
  • CFU6