- Oggetto:
- Oggetto:
Servizi Web
- Oggetto:
Web Services
- Oggetto:
Anno accademico 2023/2024
- Codice dell'attività didattica
- INF0002
- Docente
- Fabio Ciravegna
- Corso di studi
- [008707] Laurea in Informatica
- Anno
- 3° anno
- Periodo didattico
- Primo semestre
- Tipologia
- A scelta dello studente
- Crediti/Valenza
- 6 CFU - Numero di ore - Number of hours: 24 (in aula) + 30 (in laboratorio)
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Scritto più orale obbligatorio
- Prerequisiti
- Si richiede una buona conoscenza delle basi di dati, dei sistemi operativi, dell'analisi e della progettazione object-oriented e dei fondamenti della programmazione distribuita. Gli studenti e le studentesse devono inoltre avere la capacità; di scrivere, compilare e verificare la correttezza di programmi in Java. Insegnamenti propedeutici (forniscono le competenze in ingresso): Basi di Dati, Sistemi Operativi, Interazione Uomo-Macchina, Programmazione II, Algoritmi e Strutture Dati, Programmazione III.The student is requested to have a good knowledge of data base systems, operating systems, object-oriented analysis and design, foundations of distributed programming. Moreover the student must be able to write, compile and verify the correctness of Java programs. Preparatory courses (providing the expected entry skills): Basi di Dati, Sistemi Operativi, Interazione Uomo-Macchina, Programmazione II, Algoritmi e Strutture Dati, Programmazione III.
- Mutuato da
- Interazione Uomo Macchina e Tecnologie Web (MFN0608)Corso di laurea in Informatica
- Interazione Uomo Macchina e Tecnologie Web (MFN0608)
- Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Questo insegnamento concorre agli obiettivi formativi specifici dell'ambito delle conoscenze di approfondimento del Corso di Laurea in Informatica (L31) e fa parte dell’area Informatica caratterizzante. È mirato a fornire alle studentesse e agli studenti solide conoscenze di base sulle metodologie per la progettazione e lo sviluppo di applicazioni web a tre livelli. L'obiettivo è fornire la conoscenza di base necessaria per la progettazione e lo sviluppo di applicazioni Web interattive, accessibili da terminali desktop e mobili, e caratterizzate da una logica applicativa mediamente complessa.Nell'insegnamento verranno acquisite competenze teoriche e pratiche su: (i) lo sviluppo di pagine web statiche e dinamiche responsive e di Single Page Application; (ii) la programmazione lato server. Inoltre, l'insegnamento fornirà conoscenza relativa alla rappresentazione di dati con JSON/XML, data l'importanza per l'interoperabilità tra applicazioni software.
In compliance with the training objectives of the Computer Science Bachelor Program (Corso di Laurea in Informatica (L31)) and being part of the area “Informatica caratterizzante”, this course aims at providing students with robust basic knowledge about the methodologies for the design and development of three-tier Web-based applications. The objective is to provide students with the basic knowledge they need to design and develop interactive, Web-based applications that can be accessed from desktop and mobile terminals and have medium-complexity business logic.The course covers both theoretically and practically: (i) the development of static and dynamic responsive web pages, and of Single Page Applications; (ii) server-side programming. Moreover, the course presents data representation and interpretation with JSON/XML, given its importance for the interoperability of software applications.
- Oggetto:
Risultati dell'apprendimento attesi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE. Acquisizione di conoscenze teoriche e applicative relative a:- architetture di riferimento per lo sviluppo di applicazioni web
- modelli software più usati per gestire applicazioni interattive di media complessità
- tecnologie attualmente utilizzate per l’implementazione delle applicazioni (back-end e interfacce utente web)
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE. Acquisizione della capacità di applicare le conoscenze teoriche relative alle tematiche di cui sopra.
AUTONOMIA DI GIUDIZIO. Acquisizione di consapevole autonomia di giudizio con riferimento alla progettazione e realizzazione di applicazioni web.
ABILITÀ COMUNICATIVE. Acquisizione di competenze e strumenti per la comunicazione nella forma scritta e orale, in lingua italiana, unitamente all'utilizzo di linguaggi formali.
CAPACITÀ DI APPRENDIMENTO. Acquisizione di capacità autonome di apprendimento e di
autovalutazione della propria preparazione, atte ad intraprendere gli studi successivi con un alto
grado di autonomia.KNOWLEDGE AND UNDERSTANDING. Acquisition of theoretical and applicative skills concerning:- reference architectures to develop web-based applications
- largely applied software models to manage interactive applications having medium complexity
- current technologies for the implementation of software applications (back-and and web-based user interfaces)
APPLYING KNOWLEDGE AND UNDERSTANDING. Acquisition of the ability to apply the above-listed theoretical and applicative skills.
MAKING JUDGMENTS. Acquisition of aware judgment autonomy concerning the design and implementation of web-based software applications.
COMMUNICATION SKILLS. Acquisition of oral and written communication skills and expertise, in the Italian language, as well as the ability to use formal languages.
LEARNING SKILLS. Acquisition of independent learning skills and the ability to self-evaluation of one's own preparation, apt to undertake further studies with a high degree of autonomy.
- Oggetto:
Modalità di insegnamento
L’insegnamento è diviso in una parte di teoria e una sperimentale.- Per la parte di teoria sono previste lezioni integrate da casi di studio e da esercitazioni volte ad illustrare l’applicazione pratica dei concetti appena studiati. Le esercitazioni, strutturate come sequenze di esercizi specifici, permettono di mettere in pratica i concetti e le metodologie illustrate nelle lezioni teoriche su esempi concreti. I temi introdotti durante le esercitazioni corredano e integrano le conoscenze derivanti dalla parte teorica (knowledge and understanding) e permettono alle studentesse e agli studenti di familiarizzare con le metodologie e tecnologie introdotte, anche investigando soluzioni alternative (applying knowledge and understanding).
- Per la parte sperimentale, lo sviluppo del progetto SW, che si effettua in piccoli gruppi (composti da al più 3 persone), permette di consolidare le conoscenze teoriche e il lavoro in team in un caso realistico di media complessità. Il progetto SW consiste di un’applicazione SW a quattro livelli con interfaccia web, che va oltre la complessità del tipico esercizio proposto nelle esercitazioni. La progettazione e lo sviluppo del progetto SW permettono di allenare l'autonomia di giudizio (making judgments) nella scelta delle implentazioni da realizzare, analizzando in forma critica le informazioni acquisite nella parte teorica dell'insegnamento. La preparazione del progetto SW è anche volta a stimolare la capacità comunicativa degli studenti e delle studentesse che sono invitati/e a illustrare verbalmente le soluzioni adottate (communication skills).
Le attività pratiche sono svolte a calcolatore, utilizzando ambienti di sviluppo professionali. Si consiglia caldamente la frequenza costante alle lezioni teoriche e alle esercitazioni. È inoltre fondamentale iscriversi alla pagina dell'insegnamento su I-Learn (Interazione Uomo Macchina e Tecnologie Web - parte tecnologica), in cui sono messi a disposizione il materiale didattico di supporto e i riferimenti a materiale pubblico utilizzabile per approfondire le proprie conoscenze in modo autonomo (learning skills).
La comunicazione con le studentesse e gli studenti avviene attraverso il forum dell'insegnamento su I-Learn e via email l'account istituzionale del docente.
The course is divided into a theory part and an experimental part.- The theory part includes lectures supplemented by case studies and experimental lessons designed to illustrate the practical application of the concepts just studied. The experimental lessons, structured as sequences of specific tasks, allow the concepts and methodologies presented in the theory lecture to be put into practice on concrete examples. The topics introduced during the experimental lessons accompany and complement the knowledge derived from the theoretical part (knowledge and understanding) and allow students to familiarize themselves with the methodologies and technologies introduced, including the investigation of alternative solutions (applying knowledge and understanding).
- For the experimental part, the development of the SW project in small groups (consisting of at most 3 people) allows the consolidation of theoretical knowledge and teamwork in a realistic case of medium complexity. The SW project consists of a four-tier SW application having a web user interface, which goes beyond the complexity of the typical exercise proposed in the experimental lessons. The design and development of the SW project allow training in the autonomy of judgment (making judgments) in choosing the solutions to be implemented, and critically analyzing the information acquired in the theoretical part of the course. The preparation of the SW project is also aimed at stimulating the communication skills of the students, who are invited to verbally illustrate the solutions adopted (communication skills).
The experimental activities are carried out computer-based, using professional development environments. We recommend attending all the lessons in this course. It is also important to enroll in the online course on I-Learn (Interazione Uomo Macchina e Tecnologie Web - parte tecnologica), which provides teaching materials and references to public materials that can be used to deepen one's knowledge independently (learning skills).
Communication with students takes place through the course forum on I-Learn and via email to the lecturer's institutional account.
- Oggetto:
Modalità di verifica dell'apprendimento
L'esame è composto da una VERIFICA DI LABORATORIO che prevede la discussione dei progetti di laboratorio svolti durante il semestre. Questa prova è volta a verificare le competenze acquisite (applying knowledge and understanding), nonché le abilità comunicative, l'autonomia di giudizio e la capacità di apprendimento (learning skills). Il progetto si articola in una applicazione web a quattro livelli composta dal backend server e da un client web realizzato come Single Page Application.La discussione deve essere effettuata con tutti i membri del gruppo presenti e verterà principalmente sul progetto ma comprenderà anche domande sul resto del programma insegnato. N.B. i progetti di laboratorio devono essere consegnati prima dell'esame in modo che possano essere verificati fenomeni di plagio e riutilizzo non autorizzato di materiale terzo. Il voto è un numero intero compreso tra 0 e 30 (31 vale per la lode), si considerano sufficienti i voti ≥18.
The examination consists of a LAB VERIFICATION (development of a prototype). This test is designed to check the acquired knowledge (applying knowledge and understanding), as well as communication skills, the autonomy of judgment, and learning skills. The test consists in the development of a four-tier web application composed of a server backend, and a web client implemented as a Single Page Application.The discussion must be done with all group members present. It will concern mainly the solution implemented in the project but will include also questions on topics covered by the module. NB: It is required that the lab projects are handed in before the exam in order to check any cases of plagiarism or unauthorised reuse of third party libraries. The mark is an integer number between 0 and 30 (31 applies to honors), grades ≥18 are considered sufficient.
- Oggetto:
Attività di supporto
Durante il periodo dell'insegnamento, e dopo, saranno svolte attività di tutorato su richiesta. Le studentesse e gli studenti potranno chiedere via email appuntamento al docente e/o ai tutor per la revisione di argomenti presentati in aula e per il supporto allo svolgimento degli esercizi e del progetto SW. Le attività potranno essere svolte in presenza oppure in modalità online su una piattaforma di videoconferenza come WebEx. Gli indirizzi di posta elettronica istituzionale dei tutor sono pubblicati nella pagina dell'insegnamento su I-Learn.During the teaching period, and afterward, tutoring activities will be carried on demand: the students can request by email appointments with lecturer and/or tutors for reviewing topics presented in the classroom and for support in carrying out exercises and the SW project. The activities may be conducted in person or online on a videoconferencing platform such as WebEx. The institutional e-mail addresses of the tutors are posted on the course page on I-Learn.- Oggetto:
Programma
Architetture delle applicazioni Web: Web browser e Web server. Il Pattern Model View Controller (o Model View Controller) per le applicazioni Web - Progettazione e sviluppo di applicazioni Web a 4 livelli basate su MVC/MVC:- Il primo livello (client dell'applicazione): HTML5, CSS, scripting lato client (JavaScript e AJAX/Axios). Raccolta dati con HTML form
- Il secondo livello: il viewModel (in MVVM) o il Controller (in MVC)
- Il terzo livello (logica applicativa): NodeJS, Servlet Java
- Il quarto livello (livello del modello dei dati): accesso a database relazionali via JDBC e/o non relazionali (es. MongoDB via Mongoose). Rappresentazione e gestione di informazioni con JSON e XML
Architectures of Web applications: Web browser and Web server. The Model View ViewModel (MVVM) or the Model View Controller (MVC) pattern for web applications - design and development of 4-tier Web applications based on MVC or MVVM:- Web architectures: clients and servers
- The MVC or MVVM pattern for Web applications - Design and developments of applications organised in 4 levels using the pattern either MVC or MVVM:
- The first level (the client) : HTML5, CSS, client side scripting (JavaScript and AJAX/Axios). Data collection using Web forms
- The second level: the viewModel (in MVVM) or the Controller (in MVC)
- The third level (application logics): NodeJS, Servlet Java
- The fourth level (data models and repositories): accessing relational databases via JDBC and/or non-relational databases (es. MongoDB via Mongoose). Information representation and management using JSON and XML
- A Web Application Framework (e.g. Vue.js or React)
Testi consigliati e bibliografia
- Oggetto:
- Libro
- Titolo:
- Programmare in Java 11/Ed. - MyLab
- Anno pubblicazione:
- 2020
- Editore:
- Pearson
- Autore:
- Paul J. Deitel - Harvey M. Deitel
- ISBN
- Permalink:
- Note testo:
- Libro di testo.
- Obbligatorio:
- No
- Oggetto:
- Libro
- Titolo:
- Principi di Web design
- Anno pubblicazione:
- 2014
- Editore:
- Apogeo
- Autore:
- Joel Sklar
- ISBN
- Obbligatorio:
- No
- Oggetto:
- NodeJS: https://nodejs.org/
- Express: https://expressjs.com/
- MongoDB: https://www.mongodb.com/
- Oggetto: