Obiettivo di questo corso è presentare nel dettaglio gli aspetti relativi alla programmazione di applicazioni web nel suo complesso full stack: frontend, backend e cenni di infrastruttura. Il corso partirà dalle basi riprendendo dal protocollo HTTP continuando sui linguaggi base quali HTML, CSS e JavaScript. Proseguendo con degli accenni all’argomento infrastruttura e cloud tramite l'insegnamento di Docker, con una spiegazione delle possibilità di scaling di un’applicazione web cloud native. A seguire una spiegazione delle principali tecniche di sviluppo frontend (quali Single Page/Multipage web App, piuttosto che server side rendering, progressive web app, micro frontend.) applicandole tramite un framework (come può essere Vue.js, React o Svelte .). Infine si vedrà lo sviluppo backend mostrando i possibili approcci server side. Anche questo approcciato a livello di esercitazioni tramite un framework di sviluppo per la comunicazione tra moduli (e.g Api Rest/GraphQL) e cenni sulla scelta di un database relazionale o non relazionale e le sue implicazioni lato sviluppo di un'applicazione. Al termine del corso lo studente: ● avrà la conoscenza di almeno un framework per ogni parte dello sviluppo web con il quale sarà in grado di sviluppare e testare applicazioni web ● avrà la competenza di progettare un'applicazione web nel suo complesso scegliendo in autonomia di giudizio le tecniche più adatte ● è in grado di comunicare con la corretta terminologia le caratteristiche di un framework web frontend/backend e di discutere le scelte architetturali alla base dei progetti realizzati.
Prerequisiti
Lo studente deve avere una conoscenza di almeno un linguaggio di programmazione a oggetti e infarinatura di base delle strutture dati fondamentali quali database SQL.