- Oggetto:
- Oggetto:
Tecnologie Web (versione in lingua italiana)
- Oggetto:
Web Technologies (italian version)
- Oggetto:
Anno accademico 2025/2026
- Codice attività didattica
- MFN0634
- Docenti
- Claudia Picardi (Docente)
Noemi Mauro (Docente) - Corso di studio
- [008707] Laurea in Informatica
- Anno
- 3° anno
- Periodo
- Primo semestre
- Tipologia
- Caratterizzante
- Crediti/Valenza
- 6 CFU - Numero di ore - Number of hours: 54 (24 teoria + 30 lab - 24 theory + 30 practice)
- Crediti percorso 24 CFU
- 3
- SSD attività didattica
- INF/01 - informatica
- Erogazione
- Tradizionale
- Lingua
- Italiano
- Frequenza
- Facoltativa
- Tipologia esame
- Scritto più orale obbligatorio
- Tipologia unità didattica
- corso
- Prerequisiti
- Lo studente deve mostrare di possedere una buona familiarità con i principi della progammazione (imperativa, ad oggetti e basata su eventi). Inoltre, deve conoscere le basi operative per gestire una base di dati basata su SQL e per configurare/installare pacchetti software nel proprio sistema operativo.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso):- Programmazione I
- Programmazione II
- Sistemi Operativi
- Basi di Dati
A fluent coding ability is required before attending the class, and the student must be familiar with the most common programming paradigm (imperative, object-oriented, event driven). Moreover, the student must have an operative knowledge on data base management (and with the SQL language), and on installing/configuring software packages in her/his operating system.
Preparatory Courses (providing the expected entry skills):- Computer Programming I
- Computer Programming II
- Operating System
- Data bases
- Oggetto:
Sommario insegnamento
- Oggetto:
Avvisi
- Oggetto:
Obiettivi formativi
L’insegnamento Tecnologie Web è collocato nell’area tematica di approfondimento “Reti e sistemi informatici”. Esso è mirato a fornire solide conoscenze e competenze relative a metodologie e strumenti per la progettazione e lo sviluppo di applicazioni web.L’insegnamento fornisce competenze teoriche e pratiche sull’architettura a strati di un’applicazione web (front-end, back-end, persistenza) e approfondisce, per ciascun elemento di tale architettura, strumenti e linguaggi necessari a sviluppare una single-page application.
L’apprendimento della programmazione web fa parte obiettivi formativi specifici del CdS in Informatica (L31); in particolare è fra gli obiettivi relativi all'area approfondimento.
In particolare, le/i partecipanti apprenderanno l’uso del linguaggio TypeScript/JavaScript e dell’ambiente Node/npm per la gestione di progetti basati su tali linguaggi. Verrà altresì approfondito l’uso di HTML, CSS e del framework React per la progettazione di front-end a componenti basati sul pattern MVVM.
Verranno introdotti i fondamenti di progettazione di un'applicazione server-side basata su protocollo HTTP e verrà poi approfondito l'uso del framework Spring, basato su Java, per la realizzazione del back-end di una single page application.
The Web Techonology course belongs to the "Computer Systems and Networks" thematic area. It aims at providing solid knowledge and skills concerning methods and tools for the design and development of web applications.It therefore provides theoretical and practical competencies on the layered architecture of web applications (front-end, back-end, persistence layer); for each element of such architecture it examines in depth languages and tools needed in order to develop a single-page web application.
Leraning web programming is part of the formative goals of the Cds in Computer Science (L31); in particular, it belongs to the in-depth area.
More specifically, participants will learn the TypeScript/JavaScript language and the Node/npm environment for managing project based on such languages. They will explore in detail the use of HTML, CSS and the React framweork for the development of component-based front-ends based on the MVVM pattern.
The basics of the development of server-side application based on the HTTP protocol will be introduced; the design and implementation of the back-end for a single page application will be then explained and exemplified in detail with the Java-based Spring framework.
- Oggetto:
Risultati dell'apprendimento attesi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE- Conoscenza dell’architettura di base di un’applicazione Web e comprensione di come essa viene composta tramite il protocollo HTTP.
- Conoscenza dei linguaggi Javascript, EcmaScript e Typescript e comprensione delle relazioni fra di essi.
- Conoscenza e comprensione del runtime di Javascript/Typescript (asynchronous single-threaded event-driven loop).
- Conoscenza e comprensione dei meccanismi di gestione progetto e di package management.
- Comprensione dei concetti di base dei framework front-end (pattern MVVM, architettura a componenti, concetto di stato di un componente, property-binding, event-binding).
- Conoscenza e comprensione del funzionamento di base di un Server HTTP nei suoi aspetti statici e dinamici.
- Conoscenza e comprensione del framework Spring e dell'uso del linguaggio Java all'interno di esso.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
- Capacità di scrivere, compilare ed eseguire programmi in Typescript.
- Capacità di gestire il progetto di un’applicazione Web con appositi strumenti di package management (npm).
- Capacità di progettare back-end e front-end di un’applicazione Web.
- Capacità di realizzare un back-end server-side utilizzando Spring e il linguaggio Java.
- Capacità di realizzare un front-end client-side utilizzando il framework React, JSX, HTML e CSS.
AUTONOMIA DI GIUDIZIO
- Capacità di valutare scelte progettuali e architetturali di alto livello sulla suddivisione fra client-side e server-side.
- Capacità di valutare l’opportuna architettura a componenti per la costruzione di un front-end basato su pattern MVVM.
- Capacità di valutare la struttura del back-end affinché sia adeguata a sostenere l’utilizzo inteso dell’applicazione progettata.
- Capacità di valutare l’uso di modelli, librerie, framework per la realizzazione di un’applicazione web.
- Capacità di valutare le opportune strutture dati nei linguaggi di riferimento volte a realizzare le funzionalità stabilite tramite l’analisi architetturale e progettuale.
ABILITÀ COMUNICATIVE
Capacità di comunicare, in forma scritta e orale e in lingua italiana
- le conoscenze acquisite
- le caratteristiche tecniche, progettuali e architetturali di un’applicazione web
- le scelte e le valutazioni effettuate nella progettazione e implementazione di un’applicazione web
CAPACITÀ DI APPRENDIMENTO
- Capacità di apprendere attraverso la pratica l’utilizzo degli strumenti introdotti a lezione ai fini dello sviluppo di applicazioni web.
- Capacità di inquadrare strumenti non precedentemente conosciuti per valutarne l’efficacia nell’ambito della progettazione di un’applicazione web.
- Capacità di autovalutare il livello di competenza raggiunto con ciascuno degli strumenti proposti.
KNOWLEDGE AND UNDERSTANDING- Knowledge of the basics of web applications architecture, and understanding of how it is composed by means of the HTTP protocol.
- Knowledge of the Javascript, EcmaScript and Typescript languages, and understanding of their relationships.
- Knowledge and understandingg of the runtime enviroment of Javascript/Typescript (asynchronous single-threaded event-driven loop).
- Knowledge and understanfing of project and package management mechanisms.
- Understanding of the basic concepts of front-end frameworks (pattern MVVM, component-oriented architecture, state of a component, property-binding, event-binding).
- Knowledge and understanding of the basic functioning of a HTTP Server in its static and dynamic aspects.
- Knowledge and understanding of the Spring framework and of the use of the Java language within it.
APPLYING KNOWLEDGE AND UNDERSTANDING
- Writing, compiling and executing Typescript programs.
- Managing a Web Appplication project by means of project maangement tools (npm)
- Designing the back-end and front-end services of a Web application.
- Implementing a server-side back-end service by means of the Spring framework and the Java language.
- Implementing a client-side front-end service by meand of the React framework, JSX, HTML and CSS.
MAKING JUDGEMENTS
- Evaluating design and architecture options when structuring the server-side / client-side distinction in a web application
- Evaluating a suitable component-oriented architecture when designing a front-end service based on the MVVM pattern
- Choosing an adeguate back-end service to support the intended functions of the designed application
- Choosing proper models, libraries, packages and frameworks for the development of a given web application depending on functional and non-functional requirements.
- Choosping adequate data structures in order to implement functionalities as established in the project architecture and design.
COMMUNICATION SKILLS
Ability to communicate, in written and oral form, in the Italian language:
- acquired knowledge
- the technical features, as well as the architecture and design, of a web application
- choices made and lessons learned in the design and implementation of a web application
LEARNING
- Learning through practice how to use the methods and tool for web application development that are introduced in the classes
- Learning how to contextualize previously unknown tools in order to evaluate their adequacy for the development of a web application
- Self-evaluating the competencies achieved with each of the taught methods and tools
- Oggetto:
Programma
PROGRAMMAZIONE ORIENTATA AL WEB- L’architettura di un’applicazione web
- I linguaggi e i framework del web: panoramica
- Javascript & Typescript
PROGETTAZIONE E SVILUPPO FRONT-END / CLIENT-SIDE
- HTML e CSS
- Typescript/Javascript nel browser: la DOM API
- la fetch API e la Promise API
- Il pattern MVVM, le UI a componenti e le Single Page Application
- Il framework React
PROGETTAZIONE E SVILUPPO BACK-END / SERVER-SIDE
- Anatomia di base di un HTTP server
- Programmazione server-side con Java e Spring
- Java Persistence API
- Il concetto di Sessione e la gestione delle credenziali
- Costruire l'applicazione completa
WEB-ORIENTED PROGRAMMING- The architecture of a web application
- Languages and frameworks for web development: an overview
- Javascript & Typescript
FRONT-END / CLIENT-SIDE DESIGN AND DEVELOPMENT
- HTML and CSS
- Typescript/Javascript in the browser: the DOM API
- The fetch API & the Promise API
- The MVVM pattern, component-oriented UIs and Single Page Applications
- The React framework
BACK-END / SERVER-SIDE DESIGN AND DEVELOPMENT
- Basic anatomy of a HTTP server
- Server-side programming with Java and Spring
- Java Persistence API
- Session and credentials management
- Building the complete application
- Oggetto:
Modalità di insegnamento
Le lezioni frontali si svolgono in aula con l’ausilio di slide. Per chi non ha la possibilità di frequentare verrà fornito materiale utile alla preparazione del corso tramite la piattaforma Moodle, incluse le slide utilizzate durante le lezioni e le registrazioni delle lezioni stesse. Il laboratorio sarà in parte costituito da esercitazioni in cui la docente mostra, in modo replicabile, come svolgere le attività oggetto del corso. Alcuni esercizi saranno svolti con l’ausilio di computer personali degli studenti e potranno essere realizzati in coppia o a piccoli gruppi, a discrezione della docente.Theory classes will take place in the classroom wih the projection of slides. Students who cannot attend classes will be able to download slides and other teaching materials, including the video-recordings of the classes, from the Moodle platform. Practice classes will partly consist of practical examples in which the teacher will show how to carry out the activities explained in the classes. Some exercises will be directly carried out by the students, using their own laptops. It will be possible to do the exercises in teams of 2 or more people, according to the teacher's instructions.- Oggetto:
Modalità di verifica dell'apprendimento
La valutazione dell’apprendimento avviene tramite i seguenti strumenti:- parte di teoria / prova scritta: la prova scritta si compone di 9 domande a risposta chiusa e 3 domande a risposta aperta. Viene valutata in 30esimi
- laboratorio / progetto e discussione: il progetto consiste realizzazione di una single page web application, completa di front-end realizzato con Typescript+React e back-end realizzato con Java+Spring, che dimostri la capacità di applicare le conoscenze acquisite e di effettuare scelte progettuali in autonomia. Il progetto può essere realizzato da soli o in team di 2 persone, e viene discusso oralmente. La discussione consiste in una presentazione da parte degli autori o autrici del progetto, seguita da domande del/la docente volte a valutare l'effettiva comprensione degli strumenti e delle soluzioni attuate, nonché la capacità di mettere in relazione quanto fatto con i concetti appresi nel corso. Anche in questo caso la valutazione è in 30esimi.
Il risultato finale dell'esame sarà dato dalla media fra i due punteggi.
The final assessment of acquired knowledge and skills involves the following assessment tools:- theory / written test: the written test is composed of 3 open-ended questions and 9 close-ended questions. The test can be passed with a score from 18 (lowest) to 30 (highest), possibly with honors (if all open-ended answers get top marks).
- practice / project & discussion: the project requires to design and implement a single page web application, with a Typescript+React-based front-end and a Java+Spring back-end. The project is aimed at verifying the capability of applying acquired knowldge, and the capability to evaluate design and implementation choices. The project can be undertook in teams of 1 or 2 people, and it is presented in an oral discussion. Such discussion involves a short presentation from the team members, followed by a Q/A with the professor, aimed at evaluating the actual understanding of the tools and solutions adopted in the project, as well as the capability to relate the implemented solutions with the course topics. The project discussion can also be passed with a score from 18 (lowest) to 30 (highest), possibly with honors.
The final grade for the exam is the mean of the two scores.
Testi consigliati e bibliografia
- Oggetto:
- Altro
- Titolo:
- Documentazione e tutorial React (in inglese)
- Descrizione:
- La documentazione ufficiale di React (manuale, tutorial, reference guide).
- Note testo:
- Attenzione: l'ultima versione differisce significativamente dalle precedenti pubblicate su reactjs.org. considerate ora obsolete.
- URL:
- Obbligatorio:
- No
- Oggetto:
- Altro
- Titolo:
- Manuale di Typescript (in inglese)
- Descrizione:
- Manuale completo di Typescript. Contiene anche informazioni su come usare Typescript con React.
- URL:
- Obbligatorio:
- No
- Oggetto:
- Altro
- Titolo:
- Guida di riferimento per HTML, CSS e il DOM (in inglese)
- Descrizione:
- La guida ufficiale della Mozilla Developer Network, con documentazione e guida di riferimento.
- Note testo:
- Oltre agli argomenti citati nel titolo, contiene molte altre informazioni potenzialmente utili per il web developer. Alcune parti sono disponibili anche in italiano.
- URL:
- Obbligatorio:
- No
- Oggetto:
- Altro
- Titolo:
- Spring Boot Tutorial (in inglese)
- Descrizione:
- Un tutorial molto completo sul framework Spring
- URL:
- Obbligatorio:
- No
- Oggetto: