The course will cover the design and implementation of server-side architectures to support real business cases and applications. The goal of this course is to provide an overview of the technical issues surrounding back-end systems today, and to provide a solid and comprehensive perspective of the web's constantly evolving landscape.
The course will cover the design and implementation of server-side architectures to support real business cases and applications. The goal of this course is to provide an overview of the technical issues surrounding back-end systems today, and to provide a solid and comprehensive perspective of the web's constantly evolving landscape.
Upon successful completion students should be able to:
- Create a backend Web server application from the ground up using different technological stacks (Spring Boot and Node.js) using an iterative development process.
- Connect a back-end Web server application to a data backend; write back-end code to create, read, update, and delete data from the data backend.
- Design and implement an API using different abstraction flavours (REST, GraphQL).
- Design and implement a micro-services based system.
- Use best practice patterns in developing Web applications.
- Articulate and discuss the design choices available to modern distributed systems
- Discuss risks to web application stability, security, scalability, and compatibility, relating modern approaches to minimise those risks.
Upon successful completion students should be able to:
- Create a backend Web server application from the ground up using different technological stacks (Spring Boot and Node.js) using an iterative development process.
- Connect a Web server application to a data backend; write back-end code to create, read, update, and delete data from the data backend.
- Design and implement an API using different abstraction flavours (REST, GraphQL).
- Design and implement a micro-services based system.
- Use best practice patterns in developing Web applications.
- Articulate and discuss the design choices available to modern distributed systems
- Discuss risks to web application stability, security, scalability, and compatibility, relating modern approaches to minimise those risks.
The student attending this course is expected to master client-side programming techniques (HTML, CSS, JS) as well as having a solid grasp in concurrent and distributed programming.
The student attending this course is expected to master client-side programming techniques (HTML, CSS, JS) as well as having a solid grasp in concurrent and distributed programming.
Serving web requests
- the Spring Boot framework
- the Node.js framework
Persisting data
- ORM and relational databases
- NoSQL databases
API design
- REST
- GraphQL
Microservice architectures
- Domain Driven Design
- Platform services
Functional programming concepts (9 hours)
- the Kotlin programming language
Serving web requests (9 hours)
- using the Spring Boot framework
- using the Node.js framework
Persisting data (9 hours)
- ORMs and relational databases
- NoSQL databases
API design (9 hours)
- REST
- GraphQL
Microservice architectures (9 hours)
- Domain Driven Design
- Platform services
The course will consist formal lectures (about 40 hours), hands on labs (about 20 hours) and engages the students in creating a medium-sized project spanning the whole technological stack (front-end, back-end, services, storage).
In case of remote presence, lectures and labs will be provided via real-time videoconferencing.
The course will consist formal lectures (about 45 hours), hands on labs (about 15 hours) and engages the students in creating a medium-sized project spanning the whole technological stack (front-end, back-end, services, storage).
In case of remote presence, lectures and labs will be provided via real-time videoconferencing.
There is no text book required for this course. The course material comes primarily from course notes and a selection of recent papers on advanced Internet application development and related research issues. Several books, however, may provide further insights and be useful in supporting the learning process. In particular
- Cloud Native Java by Kenny Bastani, Josh Long, 2017, O'Reilly, ISBN: 9781449374648
- High-Performance Java Persistence by Vlad Mihalcea , 2016, ISBN: 9789730228236
- Javascript Everywhere: Building Cross-Platform Applications With Graphql, React, React Native, and Electron by Adam D. Scott, 2020, O'Reilly, ISBN: 9781492046981
There is no text book required for this course. The course material comes primarily from course notes and a selection of recent papers on advanced Internet application development and related research issues. Several books, however, may provide further insights and be useful in supporting the learning process. In particular
- Cloud Native Java by Kenny Bastani, Josh Long, 2017, O'Reilly, ISBN: 9781449374648
- High-Performance Java Persistence by Vlad Mihalcea , 2016, ISBN: 9789730228236
- Javascript Everywhere: Building Cross-Platform Applications With Graphql, React, React Native, and Electron by Adam D. Scott, 2020, O'Reilly, ISBN: 9781492046981
Modalità di esame: Prova scritta (in aula); Elaborato progettuale in gruppo;
Exam: Written test; Group project;
...
The exams aims at assessing
- the ability of the students to design and implement a web based applications, properly using modern technological stacks and frameworks, as well as choosing the suitable data architecture to support their operation
- the knowledge of the students of the main issues related to web development topics and technological infrastructures, with particular emphasis on programming patterns.
The exam consists of
- a written test (max 18 points, score lower than 10 will be considered as a failure) consisting of open questions related to the course topics;
- hands on labs (max 10 points) on programming exercises, to be delivered during the course, pertaining to the material presented during the lectures;
- an optional final project (max 5 points) covering the design and implementation of a medium-sized project spanning the whole technological stack (front-end, back-end, services, storage), to be delivered after the written test.
The written test lasts 90 minutes and is closed book.
- Books, notes and any other material are not allowed.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test; Group project;
The exams aims at assessing
- the ability of the students to design and implement a web based applications, properly using modern technological stacks and frameworks, as well as choosing the suitable data architecture to support their operation
- the knowledge of the students of the main issues related to web development topics and technological infrastructures, with particular emphasis on programming patterns.
The exam consists of
- a written test (max 18 points, score lower than 10 will be considered as a failure) consisting of open questions related to the course topics;
- hands on labs (max 10 points) on programming exercises, to be delivered during the course, pertaining to the material presented during the lectures;
- an optional final project (max 5 points) covering the design and implementation of a medium-sized project spanning the whole technological stack (front-end, back-end, services, storage), to be delivered after the written test.
The written test lasts 90 minutes and is closed book.
- Books, notes and any other material are not allowed.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.