Servizi per la didattica
PORTALE DELLA DIDATTICA

Applicazioni Internet

02JGROV

A.A. 2019/20

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 45
Esercitazioni in laboratorio 15
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 D - A scelta dello studente A scelta dello studente
2018/19
L'insegnamento riprende e approfondisce le tecniche legate alla progettazione, realizzazione e messa in campo di applicazioni in ambiente Internet/Web con particolare attenzione ai sistemi massivi, geograficamente distribuiti, sempre disponibili, incrementalmente scalabili e riconfigurabili dinamicamente. Il corso intende formare le figure professionali di Full Stack Developer e Web Architect, con competenze nella progettazione e nello sviluppo sia del componente front-end che di quello back-end.
The course reconsiders and deepens the design, implementation, and deployment of Internet & Web applications that rely on massive, geographically distributed, always on, incrementally scalable, and dynamically reconfigurable systems. The course aims at forming the professional profiles of Full Stack Developer and Web Architect, with abilities in the design and development of both front-end and back-end components.
Frequentando questo insegnamento, lo studente acquisirà: - la padronanza di uso di pattern di elaborazione concorrente e distribuita, - la conoscenza e dei principali framework per lo sviluppo di applicazioni web avanzate sia lato server sia lato client, - la capacità di progettare sistemi su larga scala basandosi su componenti esistenti, - l'abilità nel gestire la raccolta, l’elaborazione e la distribuzione di informazioni in tempo reale.
By attending this course, the student will acquire - the capacity to master concurrent and distributed patterns; - the knowledge of the most relevant server-side and client-side frameworks for the design and development of rich internet applications; - the ability to design large scale systems based on existing components; - the skills to manage real-time information collection, processing, and provision.
Conoscenza del linguaggio Java e relative abilità di programmazione. Conoscenza delle problematiche introdotte dalla programmazione. Capacità di realizzare meccanismi di sincronizzazione corretti nell’ambito di un singolo processo. Conoscenza dei principali protocolli di livello applicativo per la rete internet, con particolare riferimento a HTTP. Conoscenze di base sulle applicazioni distribuite e delle architetture basate sul paradigma REST. Conoscenza del modello entità/relazioni e del concetto di transazione nell’ambito di una base dati. Capacità di progettare/interrogare/aggiornare una base dati relazionale usando il linguaggio SQL.
Knowledge of the Java programming language and mastering of corresponding programming abilities. Knowledge of the issues related to concurrent programming and of the main synchronization techniques. Ability to design and implement correct synchronization techniques inside a single process. Knowledge of the main application-level protocols, with particular emphasis on HTTP. Basic knowledge of distributed applications and of architectures based on the REST paradigm. Knowledge of the entity/relationship model and of the concept of transaction in a database. Ability to design/query/update a relational database using the SQL language.
• Caratteristiche avanzate del linguaggio Java e pattern di programmazione concorrente (6h) • Framework di programmazione lato server (18h) • Persistenza dei dati, ORM e accesso a basi dati non relazionali (12h) • Framework di programmazione lato client e architetture Single Page (18h) • Applicazioni web in tempo reale (6h)
• Advanced features of the Java programming language and concurrent patterns (6h) • Server-side programming framework (18h) • Data persistence, ORM e access to non-relational databases (12h) • Client-side programming frameworks and single-page architectures (18h) • Real-time web applications (6h)
Oltre alle lezioni, il corso include 20 ore di laboratorio di programmazione sulla applicazione delle tecniche illustrate nel corso e la realizzazione a gruppi di un progetto di media complessità.
This course will include weekly lab sessions and the development of medium complexity project.
Materiale e dispense forniti dal docente durante il corso e disponibile sul portale della didattica. Josh Long, Kenny Bastani, "Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry", O'Reilly, 2017 Shyam Seshadri, "Angular Up and Running: Learning Angular, Step by Step", O'Reilly, 2018 Jim R. Wilson, "Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales", The Pragmatic Programmers, 2018
Hand-outs and other material will be provided by the teacher during the course. Josh Long, Kenny Bastani, "Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry", O'Reilly, 2017 Shyam Seshadri, "Angular Up and Running: Learning Angular, Step by Step", O'Reilly, 2018 Jim R. Wilson, "Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales", The Pragmatic Programmers, 2018
Modalità di esame: prova scritta; prova di laboratorio; progetto di gruppo;
L'esame prevede: - una prova scritta, della durata di circa 1,5 ore, senza accesso al materiale didattico, la cui valutazione incide per il 55% sul voto finale e volta a comprendere la padronanza degli argomenti teorici esposti a lezione; - la valutazione delle esercitazioni svolte in laboratorio (15% del voto) e consegnate entro le scadenze in itinere; - la realizzazione del progetto assegnato (30% del voto), il cui scopo è acquisire le necessarie competenze operative per realizzare applicazioni estrapolate da esigenze reali.
Exam: written test; practical lab skills test; group project;
The final assessment consists of: - a written exam of 1,5 hours, consisting of open questions, that contributes to 55% of the final grade, and aims at evaluating the actual level of knowledge of the contents presented during the lectures, - the ongoing evaluation of the labs (15%) - the design and implementation of a course project (30%), proving the acquisition of the practical skills and know-how required to implement applications suitable for real-world use cases.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il