WASA - Web and software architecture
Prof. Emanuele Panizzi
Tuesday, 10 December 2024
Lesson: Axios and CORS
Announcement: ITMeeting this Tuesday, Dec 12th. No class then. See you on Tuesday, December 17
Friday, 6 December 2024
Announcement: Honors Program 2024/25
The call for applications for the honors program 2024/25 is out.
The GamificatioLab - Prof. Panizzi - proposes the following two research topics:
- Al-powered Generation of Realistic Vehicle Trip Simulations for Multimodal Applications. This project develops an Al framework to create realistic vehicle travel simulations, supporting navigation optimization, parking management simulation, and synthetic population generation. Utilizing advanced models such as GANs and generative models, the framework will produce detailed journeys with data on inertial movements, fuel, or energy consumption, while accounting for traffic, weather, and road types. The student will integrate datasets and Al techniques to ensure simulations are accurate and versatile, reflecting real-world scenarios. This work will contribute to the advancement of intelligent transportation systems and research on multimodal mobility.
- Innovative Interaction Design: Exploring Implicit Interfaces with Large Language Models and Multi-Agent Systems This project explores the design and evaluation of implicit user interfaces, context-aware systems that operate without explicit commands. Students will develop customized Al assistants for multi- agent contexts, leveraging GPT technology to address the needs of implicit interactions. The program includes the development of GPT models optimized for collaborative tasks, while applying advanced evaluation criteria to assess the effectiveness and user experience of these implicit systems. Through experimentation, system customization, and innovative methodologies, the project prepares students to redefine interaction paradigms in Al-driven environments.
Check it our here: BANDO 15/2024 - MODALITA’ DI AMMISSIONE AI PERCORSI DI ECCELLENZA-FACOLTÀ I3S- A.A. 2024/2025
Thursday, 5 December 2024
Lesson: vue
- Vue Template from slide 11; see also WASA book, chapter 6.4.2
- Vue Reactive
- Vue Router see also WASA book, chapter 6.5
- JavaScript asynchronous
Thursday, 28 Movember 2024
Practice: vue
Announcement: no class next Tuesday. See you on Thursday, December 5
- Vue basics continued from slide 15
- Vue intro continued from Anatomy of a Vue.js SPA
- Vue Template up to slide 10
Announcement: ITMeeting (Recommended for third year Bachelor’s or Master’s degree students)
On Thursday, December 12th, 2024, from 9 a.m. to 4 p.m. will take place the 52nd ITMeeting, the six-monthly meeting between undergraduates and recent graduates of the Sapienza Computer Science Degree Courses and companies producing or large users of IT solutions.
The meeting will be held from 9:00 to 16:00 in Viale Regina Elena 295, Building D
During the day, it will be possible to hold 10-minute interviews with each company and to attend the presentations of their activities, job opportunities,and offers for degree theses and internships. Classes for third-year bachelor’s and second-year master’s students will be suspended.
A few days before the event, each student will be provided with a summary document of the day, also containing the times of their own interviews with the individual companies.
Students can participate in the interviews upon registration on the form.
Tuesday, 26 November 2024
Lesson: Javascript, Vue.js
ANNOUNCEMENT: next Thursday 28 November class is in ROOM 101 building D RE
Thursday, 21 November 2024
Lesson: HTML and CSS
Note on the login in the project
In the WASAtext project, we asked for a kind of login functionality and provided instructions on how to implement it. Despite its name, we intended it as a means for you to test your web application and to demonstrate it at the exam.
So it is not a proper login and has no security capabilities. It is more of a way to create users in your system and impersonate them to test that it works properly.
For example, after creating two users, Mario and Luigi, you can impersonate Mario and send a message to Luigi, then impersonate Luigi read and reply to Mario’s message.
Please refrain from implementing an entire authentication system, using well-formed tokens, or designing different APIs than the one provided for this functionality!
Tuesday, 19 November 2024
Lesson: Go project structure (best practices)
- GO Project structure
- We will discuss this code:
- OPIS questionnaire. Fill out the questionnaire during class. OPIS code: ACN8MNJQ
- Implementation of a Hi-Lo game webapp:
Homework2 is officially open to submissions
Tuesday, 12 November 2024
Lesson: GO packages, GO concurrency
ANNOUNCEMENT: No class next Thursday 14 November
- GO packages
- GO concurrency
- WASA book, chapters 5.1.6, 5.1.8, 5.2, 5.3
- exercise: server web in go
- QA on bearer type
Example:
openapi: 3.0.0
---
# 1) Define the security scheme type (HTTP bearer)
components:
securitySchemes:
bearerAuth: # arbitrary name for the security scheme
type: http
scheme: bearer
# 2) Apply the security globally to all operations
security:
- bearerAuth: [] # use the same name as above
# 3) You can override security scheme in single operations, e.g.:
security: [] # No security
Suggested Go exercises: WASA book, chapter 5.6
Thursday, 7 November 2024
Lesson: GO interfaces, errors
Tuesday, 5 November 2024
Lesson: GO
Thursday, 31 October 2024
WASAText Project: specifications and Homework 1
- API best practices and common mistakes WASA book, chapter 4.5
- Exam project specifications
- Homework 1: OpenAPI document
Tuesday, 29 October 2024
Practice: Fountains
Exercise
Define the API for the Fountains project (fountains are called Fontanelle or Nasoni in Rome). The Fountains project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains.
In Rome, drinking water is available thanks to little public fountains, also known as “nasoni” (“large noses”, due to their nose-like shape). They were installed in the late 1800 by the local municipalities in the capital city and nearby areas. More than 2500 are still working. The “Fountains” project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains (see their location and status). Also, they will be able to change the status or location of any fountains, add missing fountains, and remove those that are no longer present. A fountain’s status is “good” when it is in working condition and “faulty” if broken. The app will communicate with a central server via REST and JSON - no information is stored locally in the smartphone. No authentication is needed, nor is user identification.
WASA BOOK section 4.3.
Tuesday, 22 October 2024
Practice: API
ANNOUNCEMENT: No class next Thursday 24 October
Thursday, 17 October 2024
Practice: API
- IMPORTANT: ROOM TODAY
- Today’s class will be in the room Aula A2 Luigi Capozzi, in Via Caserta 6.
ANNOUNCEMENT: No lesson next Thursday 24 October
Tuesday, 15 October 2024
Lesson: HTTP, JSON, YAML, API
- IMPORTANT: ROOM CHANGED
- On Tuesdays, starting TODAY, the room is changed to Aula 11, Via Scarpa. (Room 1L will no longer be used by WASA)
- ANNOUNCEMENT: ITMeeting collaboration
- Grant to help in the organization of the events
Thursday, 10 October 2024
Exam schedule available for the extra-ordinary appeal
The appeal is on Tuesday, October 15th, 2024
The exam schedule for oral discussions is available here: Schedule for October 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 3 October 2024
Practice: Git
- REMINDER
- there will be no classes on October 8 and 10 (two weeks from now) as I will be at the BUCA summer school we’ve organized in Venice. NEXT LESSON TUESDAY OCT 15
- new repo
- WASA virtual machine
- cloning
- conflicts
- tag
- ASSIGNMENT
- add a new file “latin.txt” in a new branch, commit, merge and push
Wednesday, 2 October 2024
Virtual machines available
Virtual machines are available to download in the “Kit” page. We will use them starting from tomorrow. We suggest you to download and import them before the lecture.
Tuesday, 1 October 2024
Lesson: Git
- Git merge conflicts
- Remote git repos and forges
- practical git WASA book, chapter 2.5
- Useful Git alias:
git lg
:
$ git config --global alias.lg "log --graph --abbrev-commit \
--decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) \
- %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- \
%an%C(reset)%C(bold yellow)%d%C(reset)' --all"
Thursday, 26 September 2024
Lesson: Git
- REMINDER
- today’s lecture is in room IV Mathematics Castelnuovo, on the University Campus
- ANNOUNCEMENT
- there will be no classes on October 8 and 10 (two weeks from now) as I will be at the BUCA summer school we’ve organized in Venice.
Tuesday, 24 September 2024
Lesson: Introduction, Web apps, and REST
This is the first lecture for the new academic year 2024/25. Welcome!
Introduction
Announcements:
- Gamification Lab Website
- Available theses
- Class next Thursday, Sep 26, is moved to room IV Matematica Castelnuovo
Topics today:
Monday, 23 September 2024
Information academic year 2024/25
Welcome!
Our course will start tomorrow, Tuesday September 24.
Schedule:
- Tuesday - 3 PM to 6 PM - room 1L (via del Castro Laurenziano 7/a)
- Thursday - 2PM to 4 PM - room Aula Magna RE (entrance from Viale Regina Elena 295 or Via del Castro Laurenziano 6)
2023/24
Tuesday, 10 September 2024
Extraordinary session
The appeal of the extraordinary session will be on Tuesday, October 15th, 2024
Please sign up both on the Google Form (by September 30) and on Infostud (by Wednesday Oct 9).
Thursday, 5 September 2024
Exam schedule available for September appeal
The appeal is on Tuesday, September 10th, 2024
The exam schedule for oral discussions is available here: Schedule for September 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 11 July 2024
Exam schedule available for July appeal
The appeal is on Tuesday, July 16th, 2024
The exam schedule for oral discussions is available here: Schedule for July 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 13 June 2024
Exam schedule available for June’s appeal
The exam schedule for oral discussions is available here: Schedule for June 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
TThursday, 30 May 2024
Last week’s unevaluated homework will be published tomorrow afternoon
Due to miscommunication, we failed to evaluate the homework of a dozen students who committed their code in the past two Wednesdays. We are evaluating this homework and will publish the results tomorrow.
Should it happen again, and should you notice that we forgot to evaluate your homework, please let us know as soon as possible. However, please allow at least one full day to pass, as we might publish grades in batches within a short time.
Tuesday, 30 April 2024
This week’s evaluations postponed to Thursday
Tomorrow is May 1st, International Workers’ Day, so we postpone the WASA homework evaluations to Thursday.
Thursday, 11 April 2024
Exam schedule available for April’s extra-ordinary appeal
The exam schedule for oral discussions is available here: Schedule for April 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Tuesday, 19 March 2024
Exams Recommender System
We are training a recommender system for students’ exams, and it would be very helpful if you could participate in testing it.
We anonymize the data we collect.
You can participate in the test at this link: https://sapere.sapienzaapps.it/
Please note that it is currently open only to Informatica Students, not to Acsai ones.
Thanks,
EP
Wednesday, 21 February 2024
Extraordinary appeal: 16th April
The extraordinary appeal will be on Tuesday, April 16th. Register on Infostud by April 10. We will evaluate homework every Wednesday, plus everyday from April 4 to April 11.
Friday, 16 February 2024
Exam schedule available for February’s appeal
The exam schedule for oral discussions is available here: Schedule for February 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 25 January 2024
Exam schedule available for January’s appeal
The exam schedule for oral discussions is available here: Schedule for January 2024 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Friday 5 January 2024
Vue.js caveats
Some errors in the Vue code are somehow not shown when vite
(the vue “compiler”) is used in development mode. Therefore, I suggest you to test your code with stricter settings using the following commands before committing the code to the repository:
./open-npm.sh
# (here you're inside the NPM container)
npm run build-prod
npm run preview
You may also want to open the Developer Toolbar during your tests to see the JavaScript errors and crashes and fix them before the delivery.
You can still use npm run dev
when writing code. It has some valuable functions, like live reload, verbose errors, etc., that the production build doesn’t have.
(this notice was already present as FAQ #15, this is a reminder)
Wednesday 20 December 2023
Exams FAQ
- We can not find the exam on Infostud to register for it. Is there another way to register?
- I opened the appeals now; please try again.
- We also want to know when exactly the oral exams will take place, because on 30.1 we have a different exam at 14:00.
- The exams will take place the whole day. It is not possible for another exam to be scheduled on that day for the same program and the same year. In fact, they carefully avoided any overlaps, and official exam schedules were published. Should it be so, please contact the secretariat at segreteria.didattica@di.uniroma1.it
- Is it possible to ensure that we can attend the oral exam on 30.1 before 14:00?
- No. As I said, exams might continue till 7 pm, depending on the number of students
Tuesday 19 December 2023
End of the WASA course 2023/24
ANNOUNCEMENTS
- Tomorrow, I will make the last hw evaluation of 2023. Evaluations will start again on Wednesday, 3 January, 2024.
- Exams will be on:
- Tuesday, 30 January
- Tuesday, 20 February
- Please book on Infostud today to avoid forgetting it.
- The final evaluations will be on the Thursday before the appeals (i.e., 25 January and 15 February)
- It was the last lesson today; no class on Thursday this week. Merry Christmas and Happy New Year to all of you.
Tuesday, 19 December 2023
Lesson: Containers
- Containers introduction
- Homework 4 is open: you must create two
Dockerfile
s: one namedDockerfile.frontend
for the frontend part, one namedDockerfile.backend
for the backend part. - On WASA book, chapter 7 you can find a detailed description about how to create the two
Dockerfile
s.
Thursday, 14 December 2022
Practice: Vue.js
- Example implementation of Vue.js frontend for Hi-Lo Game
We modified some files inside the
service
andwebui
folders of the hilo project (fantastic coffee decaffeinated structure).
Tuesday, 12 December 2023
Lesson: Vue.js
If you have errors running the frontend part on Apple M1 / ARM, please read the “Known issues” section in the Fantastic Coffee (decaffeinated) README for a fix.
Thursday, 7 December 2023
Today’s class canceled
We will not have class today. Next class on Tuesday December 12.
Tuesday, 5 December 2023
No class today
Today’s lesson is canceled.
Thursday, 30 November 2023
Lesson: Vue.js
Tuesday, 28 November 2023
Lesson: Javascript
Update 29 November Updated form link below, updated topics.
Announcement: ITMeeting
On Thursday, December 6th, 2023, from 9 a.m. to 4 p.m.
(Recommended for third year Bachelor’s or Master’s degree students)
The 50th ITMeeting, the six-monthly meeting between undergraduates and recent graduates of the Sapienza Computer Science Degree Courses and companies producing or large users of IT solutions will take place on Thursday, December 1st.
The meeting will be held from 9:00 to 16:00 in Viale Regina Elena 295
During the day it will be possible to hold 10-minute interviews with each company and to attend the presentations of their activities, job opportunities and offers for degree theses and internships.
A few days before the event, each student will be provided with a summary document of the day, also containing the times of the interviews with the individual companies.
Students can participate in the speed date upon registration on the form.
Thursday, 23 November 2023
Lesson: HTML and CSS
Note on the login in the project
In the WASAphotos project, we asked for a kind of login functionality and provided instructions on how to implement it. Despite its name, we intended it as a means for you to test your web application and to demonstrate it at the exam.
So it is not a proper login and has no security capabilities. It is more of a way to create users in your system and impersonate them to test that it works properly.
For example, after creating two users, Mario and Luigi, you can impersonate Mario and follow Luigi, then impersonate Luigi and check that Mario is one of his followers.
Please refrain from implementing an entire authentication system, using well-formed tokens, or designing different APIs than the one provided for this functionality!
Monday, 20 November 2023
No class tomorrow
The lesson of Tuesday, Nov 21, is canceled. The next lesson is on Thursday, November 23.
Thursday, 16 November 2023
Practice: Hilo Game backend
- Implementation of a Hi-Lo game webapp:
Homework2 is officially open to submissions
Tuesday, 14 November 2023
Lesson: Go project structure (best practices)
- GO Project structure
- We will discuss this code:
- OPIS questionnaire. We filled out the questionnaire during the last quarter-hour of class. Those who were absent can fill it out using the following code: XF1HK1RG
Thursday, 9 November 2023
Lesson: GO errors, interfaces, packages, concurrency
Suggested Go exercises: WASA book, chapter 5.6
Tuesday, 7 November 2023
Practice: GO
Thursday, 2 November 2023
Lesson: GO
Tuesday, 31 October 2023
WASAPhoto Project: specifications and Homework 1
- API best practices and common mistakes WASA book, chapter 4.5
- Exam project specifications
- Homework 1: OpenAPI document
Thursday, 26 October 2023
Practice: API
Exercise
Define the API for the Fountains project (fountains are called Fontanelle or Nasoni in Rome). The Fountains project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains.
In Rome, drinking water is available thanks to little public fountains, also known as “nasoni” (“large noses”, due to their nose-like shape). They were installed in the late 1800 by the local municipalities in the capital city and nearby areas. More than 2500 are still working. The “Fountains” project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains (see their location and status). Also, they will be able to change the status or location of any fountains, add missing fountains in the app and remove those that are no more present. A fountain’s status is “good” when it is in working condition and “faulty” if it’s broken. The app will communicate with a central server via REST and JSON - no information is stored locally in the smartphone. No authentication is needed, nor is user identification.
WASA BOOK section 4.3.
Wednesday, 25 October 2023
ROOM CHANGE TOMORROW
Tomorrow’s class will be in Room 1L Via del Castro Laurenziano 7/a
Monday, 23 October 2023
ANNOUNCEMENTS
No lesson tomorrow
Call for applications for collaborazione studenti, deadline November 17th Bando 6/23 - collaborazione studenti - 20 borse di tutorato - a.a. 22/23
Thursday, 19 October 2023
Lesson: API
ANNOUNCEMENT: No lesson next Tuesday 24 October
- API
- Hi-Lo Game Part 1
- hilo-game.yaml Part1
- Hi-Lo Game Part 2
- OpenAPI
- hilo-game.yaml Part2
- hilo-game.yaml Final
Tuesday, 17 October 2023
Lesson: HTTP and JSON
- ANNOUNCEMENT: ITMeeting collaboration
- Grant to help in the organization of the events
Friday, 13 October 2023
Exam schedule available for October’s appeal (for students of the previous year, 2022/23)
The exam schedule for oral discussions is available here: Schedule for October 2023 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 12 October 2023
Practice: Git
- Useful Git alias:
git lg
:
$ git config --global alias.lg "log --graph --abbrev-commit \
--decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) \
- %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- \
%an%C(reset)%C(bold yellow)%d%C(reset)' --all"
Tuesday, 10 October 2023
Lesson: Git
- Git continued
Friday, 6 October 2023
October extra-ordinary appeal
The appeal will be on Tuesday, Oct 17, in GamificationLab. Please book now on Infostud (by oct 11 evening). The last project evaluation for this appeal will be on Thursday Oct 12 morning. Please push your code by wednesday night. Appeal schedule will follow as usual.
Thursday, 5 October 2023
Lesson: Git
- finish REST from the last lecture
- Version-Control-Systems
- Git
Tuesday, 3 October 2023
Lesson: Introduction, Web apps, and REST
This is the first lecture for the new academic year 2023/24. Welcome!
Topics today:
2022/23
Sunday, 10 September 2023
Exam schedule available for September’s appeal
The exam schedule for oral discussions is available here: Schedule for September 2023 appello.
IMPORTANT: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 24 August 2023
Evaluations restarted
Today, I evaluated the homework. From now on, as usual, I will do evaluations every week and daily on the last week before each appeal.
Please BOOK YOUR SEPTEMBER EXAM if you haven’t done it yet! Deadline Sep 4. Exams on Sep 11..15.
Friday, 21 July 2023
Summer Information
1 September’s appeal will be in the week of September 11-15, typically on Tuesday, regardless of the date published on Infostud. Detailed schedule will be available on the week before, as usual.
2 Please book your September exam today! In fact, the deadline is on Sep 4 and you may miss it. You can always cancel your reservation, or I will not insert you in the schedule if your homeworks are insufficient.
3 Yesterday I made the last July evaluation. Homework evaluations are now suspended for the summer.
Friday, 30 June 2023
Exam schedule available for July appeal
The exam schedule for oral discussions is available here: Schedule for July 2023 appello.
IMPORTANT! Exams will be in GamificationLab: Via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Thursday, 1 June 2023
Exam schedule available for June appeal
The exam schedule for oral discussions is available here: Schedule for June 2023 appello.
IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Wednesday, 17 May 2023
June Appeal
The June appeal will be on
June 6 to June 9, 2023
The exam schedule for oral discussions will be available the previous Friday, as usual (June 2). Please remember to book on Infostud by May 31st. IMPORTANT! Exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Friday, 10 February 2023
Exam schedule available for March appello
The exam schedule for oral discussions is available here: Schedule for March 2023 appello.
IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Sunday, 5 March 2023
Extraordinary Appeal March/April
The extraordinary appeal will be on
Tuesday, March 28 at 9 AM and Wednesday, March 29 at 9 AM
The exam schedule for oral discussions will be available the previous Friday, as usual (March 24).
IMPORTANT! Exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Friday, 10 February 2023
Exam schedule available for February session
The exam schedule for oral discussions is available here: Schedule for February 2023 appello.
IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Friday, 20 January 2023
Exam schedule available for January session
The exam schedule for oral discussions is available here: Schedule for January 2023 appello.
IMPORTANT! Room is changed: exams will be in our lab: GamificationLab, via dei Volsci 122.
IMPORTANT! Remind to bring an identity document and a laptop with you. More information in the exam page.
Wednesday, 4 January 2023
Clarification about grading the “last check” column.
We received several e-mails regarding a potential grading problem (missing commits, skipped students, etc.). The real issue was confusion about the meaning of the “last check” column due to incorrect labeling: the column was meant to be “the last time we checked the repository for new changes”. At the same time, we briefly published results gradually during the last weeks, which increased the chaos.
To avoid further confusion, we will publish all results at one time. Also, we changed the meaning of the “last check” column to the time when the result was published (we will change the label ASAP).
Note that we may still update individual grades (for example, if there was an error during our grading).
Friday, 30 December 2022
FAQ updated
FAQ page has been updated.
Thursday, 22 December 2022
Practice: Containers
IMPORTANT (homework 3): you need to fix the file webui/vite.config.js
. The new content for this file is here.
IMPORTANT (homework 3): if you use “local storage”, be sure to empty it before using it.
- Announcements:
- Honors Program: please see my post on December 1st
- Bachelor theses (tirocinio) in GamificationLab: mainly about AI+HCI. Technologies: frontend/app design&development, backend/go, API, … See Internships and theses.
- OPIS reminder
- Debriefing: ITMeeting
- Debriefing: this course
- Exams information: (moved to the Exam page)
- Docker exercise: running and building containers.
- Homework 4 instructions: you should create two
Dockerfile
s: one namedDockerfile.frontend
for the frontend part, one namedDockerfile.backend
for the backend part. Refer to the last lecture and to WASA Fountains for examples.
Friday, 16 December 2022
No lesson next Tuesday
ANNOUNCEMENT
Due to a departmental meeting, the lesson scheduled for next Tuesday, December 20th, is canceled. Our course’s next (and last) class will be next Thursday, December 22th. EP
Thursday, 15 December 2022
Lesson: Containers
Tuesday, 13 December 2022
Practice: Vue.js
- Example implementation of Vue.js frontend for Fountains
- the complete source code is available here: https://github.com/sapienzaapps/wasa-fountains
Tuesday, 06 December 2022
Lesson: Vue.js (continued)
If you have errors running the frontend part on Apple M1 / ARM, please read the “Known issues” section in the Fantastic Coffee (decaffeinated) README for a fix.
Thursday, 1 December 2022
Call for applications for the Honors Program
ANNOUNCEMENT
Students with an average grade of 27/30 can apply for the Honors Program call, which has 8 places reserved for ACSAI students this year. In the list of topics that they just published today, you can find the topics I offer (to be developed in my GamificationLab):
- Applicazione del machine learning alle interfacce utente per applicazioni mobili sui trasporti intelligenti
- Car Usage and Parking Prediction for Context-Aware Interaction
- Earthquake detection at the edge: IoT crowdsensing network
- Implementation of the SeismoCloud2.0 Earthquake Early Warning network
- Automatic extraction of parking availability using deep learning
The Honors Program is a beautiful experience where the student can work on challenging research problems in a real setting and in a team with Ph.D. students and master thesis students. Not only is it a very formative opportunity, but it also grants a reward of the same amount of one-year University taxes.
Please read the descriptive pages and the information to apply and submit your application by January 20, 2023.
Tuesday, 29 November 2022
Lesson: Vue.js
ANNOUNCEMENT: From next Tuesday on, our Tuesday lesson will be at 2 pm. So WASA will be 2 pm - 4 pm, while Deep Learning will start (online) at 5.30 pm
Friday, 25 November 2022
WASA Fountains backend source code published
The backend for the project “WASA Fountains” has been published on GitLab and GitHub:
Update 2022-11-27: there was a bug in the published source code, now fixed. Follow the discussion at this link for the description of the bug and the fix: https://github.com/sapienzaapps/wasa-fountains/issues/1.
Thursday, 24 November 2022
Lesson: Javascript
Announcement: ITMeeting
On Thursday, December 1st, 2022, from 9 a.m. to 4 p.m.
(Recommended for third year Bachelor’s or Master’s degree students)
The 48th ITMeeting, the six-monthly meeting between undergraduates and recent graduates of the Sapienza Computer Science Degree Courses and companies producing or large users of IT solutions will take place on Thursday, December 1st.
The meeting will be held from 9:00 to 16:00 in Viale Regina Elena 295, Building E
During the day it will be possible to hold 10-minute interviews with each company and to attend the presentations of their activities, job opportunities and offers for degree theses and internships.
A few days before the event, each student will be provided with a summary document of the day, also containing the times of the interviews with the individual companies.
50 students can participate in the speed date, upon registration on the form.
Once registered, in the event of setbacks/illnesses etc, which prevent participation, please notify us promptly to the address commissione-aziende@di.uniroma1.it in order to allow us to update the shift calendar by inserting any students who they found no place in the initial 50.
Register here: form
Tuesday, 22 November 2022
Practice: Fountains (continued)
- Discussion about the first homework and common mistakes
- Exercise on Fountains webapp:
- Server side implementation in Go
Friday, 18 November 2022
WASA Homework results available
The first set of homework results is available at this link: https://wasa-enroll.sapienzaapps.it/. If you have any questions about grades, please get in touch with us at the end of the lectures. We will spend some time talking about some common mistakes during the next lesson.
Update 2022-11-19: we discovered that some evaluation were too strict. In particular, there is no need to define the response content if the HTTP status code is not 2xx, also there is no need to specify examples for request/response bodies if you specify the example in schema objects. Grades have been updated accordingly.
Thursday, 17 November 2022
Lesson: HTML and CSS
Note on the login in the project
In the WASAphotos project, we asked for a kind of login functionality and provided instructions on how to implement it. Despite its name, we intended it as a means for you to test your web application and to demonstrate it at the exam.
So it is not a proper login and has no security capabilities. It is more of a way to create users in your system and impersonate them to test that it works properly.
For example, after creating two users, Mario and Luigi, you can impersonate Mario and follow Luigi, then impersonate Luigi and check that Mario is one of his followers.
Please refrain from implementing an entire authentication system, using well-formed tokens, or designing different APIs than the one provided for this functionality!
Wednesday, 16 November 2022
WASA Homework delivery
The “Homeworks delivery” page has been updated, and the delivery is now possible.
Unfortunately we are late due to a limitation of GitLab/GitHub. However, given that the solution required a new web application, we have implemented and published the code using the “Fantastic Coffee (decaffeinated)” template:
- https://github.com/sapienzaapps/wasa-homework-enroll/
- https://gitlab.com/sapienzaapps/wasa-homework-enroll/
Project specifications have been updated to version 3: Project specifications
Tuesday, 15 November 2022
Practice: Fountains (continued)
- Exercise on Fountains webapp:
- Server side implementation in Go
Sunday, 13 November 2022
WASA 2022/2023 course survey
- If you have any suggestions, you can send them using this anonymous form: https://forms.gle/tFv4sfU93TkqAbdBA
Thursday, 10 November 2022
Practice: Fountains
- Q&A about Fantastic-Coffee and the general overview of the client/API/server architecture
- Exercise on Fountains webapp:
- API discussion
- Server side implementation in Go
Wednesday, 9 November 2022
FAQ updated
FAQ page has been updated.
Tuesday, 8 November 2022
Lesson: Go project structure (best practices)
- Discussion about project requirements
- GO Project structure
- We will discuss this code:
Thursday, 3 November 2022
Lesson: GO errors, interfaces, packages, concurrency
Thursday, 3 November 2022
WASA Project (2022-2023): Homework 1 + specifications
- Project specifications
- Homework 1: write OpenAPI document
Thursday, 27 October 2022
Practice: GO
Tuesday, 25 October 2022
Lesson: GO
Thursday, 20 October 2022
Practice: API
ANNOUNCEMENT: Lunch Seminar next Monday, 24 Oct, in room 1L at 1 pm
Please see http://www.itmeeting.it
Exercise
Define the API for the Fountains project (fountains are called Fontanelle or Nasoni in Rome). The Fountains project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains.
In Rome, drinking water is available thanks to little public fountains, also known as “nasoni” (“large noses”, due to their nose-like shape). They were installed in the late 1800 by the local municipalities in the capital city and nearby areas. More than 2500 are still working. The “Fountains” project includes a mobile app that allows citizens and tourists to explore nearby drinking fountains (see their location and status). Also, they will be able to change the status or location of any fountains, add missing fountains in the app and remove those that are no more present. A fountain’s status is “good” when it is in working condition and “faulty” if it’s broken. The app will communicate with a central server via REST and JSON - no information is stored locally in the smartphone. No authentication is needed, nor is user identification.
Thursday, 13 October 2022
Lesson: API (continued)
ANNOUNCEMENT: No lesson next Tuesday 18 October
Tuesday, 11 October 2022
Lesson: API
Thursday, 6 October 2022
Lesson: HTTP and JSON
- ANNOUNCEMENT: Lunch Seminar October 24, 1 p.m., Room 1L Castro Laurenziano
- Storm Reply: “A Serverless Journey”
- Topics: Introduction to Storm, Serverless paradigm, Serverless use-case
- ANNOUNCEMENT: ITMeeting collaboration
- Grant to help in the events organization
Tuesday, 4 October 2022
Practice: Git
- Useful Git alias:
git lg
:
$ git config --global alias.lg "log --graph --abbrev-commit \
--decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) \
- %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- \
%an%C(reset)%C(bold yellow)%d%C(reset)' --all"
Thursday, 29 September 2022
Lesson: Git
Tuesday, 27 September 2022
Lesson: Introduction, Web apps, and REST
- Course introduction
- Announcements: Covid tracking; Info for students with disabilities and SLD;
- Web Apps
- REST
27 September 2022
Students with disabilities and SLD
Students with disabilities and SLD who have not yet done so should contact the offices or directly the SLD faculty representative Prof. Tiziana Calamoneri to submit their certifications as soon as possible.
Submitting certifications now is very important to avoid finding yourself unable to request dispensatory measures and compensatory tools at the first exam session.
26 September 2022
Covid tracking
As indicated by the COVID-19 risk prevention and management policies, the need to track students’ attendance in the classroom remains in force. For that purpose, the programs in Informatica, Applied Computer Science and Artificial Intelligence, and Computer Science have prepared a google form that students can fill in at any time (even during the lesson or post-lesson). Attendance tracking is done to safeguard the student’s health. We, therefore, recommend you fill out this form for each class you attend.
FORM TO REPORT THE CLASSROOM ATTENDANCE for INFORMATICA https://forms.gle/HUmkR14znPhZQ46Q9
FORM TO REPORT THE CLASSROOM ATTENDANCE for ACSAI https://forms.gle/TZYecGadZ6CDFhQj7
FORM TO REPORT THE CLASSROOM ATTENDANCE for COMPUTER SCIENCE https://forms.gle/oh7oegAWFeSBMWUt5
23 September 2022
Course will start next Tuesday
The Web and Software Architecture course will start next Tuesday, 27 September, at 4 pm, in Room 2L, Via del Castro Laurenziano, 7/A.
Academic Year 2022/2023. The first year of this course.
22 September 2022
About this file
The Stream (http://gamificationlab.uniroma1.it/wasa/stream) is where we will add a post for each lesson, plus announcement posts.
The Stream is in reverse chronological order.
Each lesson post will contain the topics, the links to the presentation (pdf), the lesson recording, and any helpful references not already listed in the slides.
I will also post announcements about the course, the exams, and related information.