Official website of the course "Ambient intelligence" (code 01QZPxx) offered to students in the 3rd year of Engineering (among elective courses).
Warning: This page contains the archived version for the 2018/2019 edition of the course. The course is not offered since the 2019/2020 academic year.
Short link to this page: http://bit.ly/polito-ami
Latest news
- 2019-07-24: The exam date and deadline for the September session are online!
- 2019-06-06: The exam dates and deadlines for the summer session has been updated
- 2019-02-22: Welcome to the 2018/2019 edition of the course. The course has a Facebook group for open discussions and news.
- 2019-02-22: The material of the 2017/2018 edition of the course has been archived:
- the previous edition of the course is available at this archived page
- the video lectures are available on YouTube in the Ambient Intelligence Playlist
Basic info
See the Information section.
Information
Identity card
Title: | Ambient intelligence |
Credits: | 6 credits |
Year: | 3rd year (elective courses - corsi a scelta) |
Semester | 2nd semester (March-June) |
Language: | English |
Official link: | Portale della Didattica |
Main teacher: | Fulvio Corno |
Other teachers: | Luigi De Russis, Alberto Monge Roffarello |
Class hours
Day | Hour | Location | Type |
---|---|---|---|
Monday | 14:30-16:00 | Room 2I or LADISPE lab |
Class or Lab work |
Monday | 16:00-17:30 | Room 2I or LADISPE lab |
Class or Lab work |
Thursday | 17:30-19:00 | Room 8I | Class |
See the Schedule section for detailed information.
Course Contents
The course aims at describing, from an experimental point of view, the field of Ambient Intelligence (AmI), outlining its multi-disciplinary nature as well as its technology and application areas. Nowadays, the evolution of consumer electronic technologies, wireless networks, sensors, etc. and the ability to represent and process knowledge and data on a large scale allow the conception of environments able to handle, in an optimal way, energy-related variables, comfort, safety, and user interaction. Such scenarios spur a variety of solutions, ranging from smart homes to smart buildings, from smart cities to smart transportation systems.
Special emphasis, on the course, will be devoted to design-related aspects and on the overall hardware-software architecture, besides reviewing the involved technologies. This will enable students to design and realize reusable and interoperable solutions, and to collaboratively build a working prototype of an AmI system, in the laboratory.
The course will be held in English.
Learning Outcomes
Knowledge: technologies involved in the design and realization of smart environments, at various architectural levels (sensors, smart homes and buildings networks, user interfaces). Programming distributed systems based on web APIs. Software design methodologies.
Skills: writing system specifications and high-level design of an Ambient Intelligence system, starting from its functional and behavioral requirements. Realization of real-world intelligent environments. Capability of working in group with modern Internet-based collaboration tools. The Python language for rapid prototyping.
Prerequisites
Knowledge of programming languages, such as C or Java.
General knowledge of computer networks or communication networks.
The course has a strong interdisciplinary nature. The topics are mainly suitable for students enrolled in different degrees in the ICT sector (computer science, electronics, telecommunications), but in the work groups there may be a significant contribution from disciplines oriented to wide AmI application areas: electric, energy, industrial design, mechanics, etc.
Topics
The course aims at tackling, from a system and multidisciplinary approach, the main enabling technologies and the design methodologies involved in the definition of a complex system such as the ones present in AmI.
The course will cover the following topics, including their theoretical, methodological, and practical aspects:
- Introduction to Ambient Intelligence: definitions and available approaches for smart homes, smart buildings, etc. Overview of application areas (home, building, city, traffic, etc.) and types of applications (monitoring, comfort, anomaly detection, ambient assisted living, control and automation, etc.)
- Requirements and design methodology for AmI. Design, analysis and specification of requirements and functionalities related to user interacting with AmI settings.
- Practical programming of AmI systems: the Python language, the Raspberry Pi computer, Web protocols and languages (e.g., HTTP and REST), web-based APIs, and collaboration tools (git, GitHub).
Organization
The course is strongly oriented to laboratory activities. Class lectures are mostly aimed at giving the background needed to develop the group work in the laboratory. Some in-class exercises will focus on hands-on practice and on deepening selected topics.
During laboratory hours (at LADISPE), students will work for programming simple intelligent scenarios and user interfaces with real smart home systems. Hands-on and insights about some topics will be discussed in class.
Additional hours will be devoted to assisted group work in the laboratory.
Materials
The course material is available in the Schedule section and in a dedicated GitHub repository. Lectures will be video-recorded and will be made available on this website and in a YouTube playlist.
Course material encompasses slides, required readings, code exercises and examples (both in class and in lab), as well as additional references and links.
Schedule
This section hosts the schedule and learning materiale of all the lectures and labs, with topics and deadlines described in each of them. Please consider that the following information is a tentatitive preview of the course organization, is provided only for helping students organization and planning, and is subject to change without notice.
All slides, examples, exercises, and any other material used in the classroom and in the lab will be also posted in a GitHub repository. Moreover, all lectures will be video-recorded and will be available here and in a dedicated YouTube playlist and may be downloaded over BitTorrent.
Legends
Type: L = Lecture, R = Required reading, EA = Exercises in classroom, EL = Exercises in laboratory (LADISPE)
Teacher: FC = Fulvio Corno, LDR = Luigi De Russis, AMR = Alberto Monge Roffarello
Date | Type | Details | Time | Video | Teacher |
---|---|---|---|---|---|
04/03/2019 | L | Introduction to the course | 14:30-16:00 | FC | |
Theme of the year | |||||
L | Definitions of Ambient Intelligence | 16:00-17:30 | FC | ||
07/03/2019 | R | Intelligent Environments: a Manifesto | due by 17:00 | - | - |
L |
Python basics (part I)
|
17:30-19:00 | LDR | ||
11/03/2019 | R | Introduction to Git and GitHub Pages | due by 14:00 | - | - |
L | AmI Design Process (part I) | 14:30-16:00 | FC | ||
EL |
Getting started with Python and Git
|
16:00-17:30 | - | LDR | |
14/03/2019 | L |
Python basics (part II)
|
17:30-19:00 | LDR | |
17/03/2019 | Submit initial project ideas and group compositions | due by 23:59 | |||
18/03/2019 | EL |
|
14:30-16:00 | - | AMR |
EL |
Group definition. Project ideas check, discussion and suggestions.
|
16:00-17:30 | - | All | |
21/03/2019 | L |
|
17:30-19:00 | LDR | |
24/03/2019 | Submit final project ideas and group compositions | due by 23:59 | |||
25/03/2019 | R | Web architectures and technologies | due by 14:00 | - | - |
L |
Requirements for Deliverable D1 AmI Design Process (part II) |
14:30-16:00 | FC | ||
EL |
Python intermediate: exercises
|
16:00-17:30 | - | AMR | |
28/03/2019 | L |
|
17:30-19:00 | LDR | |
31/03/2019 | Create the project websites with Deliverable 1 | due by 23:59 | |||
01/04/2019 | L |
Building web applications with Flask - basics
|
14:30-16:00 | FC | |
EL | Using Databases with Python
|
16:00-17:30 | - | All | |
Feedback on Deliverable 1 | |||||
04/04/2019 | L |
Building web applications with Flask - interaction (forms, sessions, database)
|
17:30-19:00 | AMR | |
08/04/2019 | L | 14:30-16:00 | LDR | ||
EL |
|
16:00-17:30 | - | AMR | |
11/04/2019 | R | Intro to HTTP and JSON | due by 17:00 | ||
L |
REST APIs and REST with Python and Flask
|
17:30-19:00 | FC | ||
15/04/2019 | L | 14:30-16:00 | FC | ||
EL |
|
16:00-17:30 | - | AMR | |
(Easter vacation) | |||||
28/04/2019 | Update the project websites with Deliverable 2 | due by 23:59 | |||
29/04/2019 | EL | Supervised work group | 14:30-17:30 | - | All |
Feedback on Deliverable 2 | |||||
02/05/2019 | L | 17:30-19:00 | FC | ||
06/05/2019 | R | due by 14:00 | - | - | |
L |
Flask-Bootstrap and jQuery
|
14:30-16:00 | FC | ||
EL | Supervised work group | 16:00-17:30 | - | FC | |
09/05/2019 | EA |
jQuery, Ajax, REST: a full exercise
|
17:30-19:00 | FC | |
13/05/2019 | L |
Android hands-on (first part)
|
14:30-16:00 | AMR | |
EL | Supervised work group | 16:00-17:30 | - | LDR | |
16/05/2019 | EA |
Components selection and available materials |
17:30-19:00 | FC | |
20/05/2019 | L |
Android hands-on (second part)
|
14:30-16:00 | AMR | |
EL |
|
16:00-17:30 | - | AMR | |
23/05/2019 | EA |
Interacting with smart devices: Philips Hue and Z-Wave devices
|
17:30-19:00 | LDR | |
27/05/2019 | EL | Supervised work group: Android troubleshooting and support | 14:30-16:00 | - | AMR |
EL | Supervised work group | 16:00-17:30 | - | LDR | |
30/05/2019 | EL | Supervised work group | 17:30-19:00 | - | AMR |
03/06/2019 | EL | Supervised work group | 14:30-16:00 | - | LDR |
EL | Supervised work group | 16:00-17:30 | - | AMR | |
06/06/2019 | EL | Preparing material for the exam. Supervised work group. | 17:30-19:00 | - | LDR |
10/06/2019 | EL | Supervised work group | 14:30-16:00 | - | LDR |
EL | Supervised work group | 16:00-17:30 | - | AMR |
Video Lectures
Development Resources
This section presents some resources useful for software development that may be relevant to final projects. Moreover, it lists the required software applications needed for the course.
Required Software
- Python (version 3.6 or higher)
- JetBrains PyCharm Professional
- apply here, with your student e-mail address, for a free licence: https://www.jetbrains.com/student/
- git
- MariaDB Server
Available Material
A list of the material available for the course is described in this document.
The materials are (or will be) available in LADISPE, and most of them can be borrowed by students, so that they can work on their final project also outside the lab.
Python Resources
- A quick guide to install Python and PyCharm
- Books
- Think Python: How to Think Like a Computer Scientist, 2nd edition, Allen Downey, Green Tea Press
- Official Python Tutorial
- Dive Into Python 3, Mark Pilgrim
- Learning Python, 5th edition, Mark Lutz, O'Reilly
- Python Tutor, visualize what the computer is doing step-by-step as it executes your code.
Raspberry Pi and Linux Resources
- Books about the Raspberry Pi
- Getting started with the Raspberry Pi, Matt Richardson and Shawn Wallace, O'Reilly
- Raspberry Pi cookbook, Simon Monk, O'Reilly
- Raspberry Pi for secret agents, Stefan Sjogelid, Packt Publishing
- A collection of Linux quick reference sheets (cheat sheets)
Groups and Projects
- Shared document for submitting project ideas and team compositions (plus: evaluation)
- Shared document for submitting "second round" project ideas
- Shared document for submitting final ideas (approved projects, only)
Exam
The exam consists of a presentation of the team project, designed and developed during the course, and an oral discussion on the same topic.
Each group is required to:
- put and mantain the source code related to its project in the assigned Git repository (https://github.com/AmI-2019);
- create, and properly update, a GitHub Pages website associated to the project repository, by following the instructions available at https://pages.github.com/ (see the "Project site" section); the website must be easy to navigate and well structured.
The project website MUST contain:
- the two required deliverables (see below), according to the following (strict!) deadlines;
- a video of the project, realized following this guide; the video must be prepared for the exam (see the video in the examples section, below).
Important dates and deliverables:
- 17/03 submit initial ideas and preliminary group composition (on the shared Google doc);
- 18/03 discussion on groups and project ideas;
- 24/03 submit final group composition (on the shared Google doc);
- 31/03 creation of the project website (via GitHub Pages) and deadline for the first deliverable (i.e., vision and goal - see the set of slides "AmI Design Process"); the contents of the deliverable must be present in the website according to this checklist [PDF] [DOCX];
- 01/04 check of the first deliverable with the students (in LADISPE);
- 28/04 deadline for the second deliverable (i.e., system features and architecture - see the set of slides "AmI Design Process"); the content of the deliverable must be present in the website according to this checklist [PDF];
- 29/04 check of the second deliverable with students (in LADISPE).
Exam rules
(extracted from the set of slides "Introduction to the course")
The team project (repository and website) must be ready for evaluation three working days before the exam.
The exam will consist of two parts:
- oral presentation (by using PowerPoint slides or similar) and demonstration (max 20 minutes)
- discussion (5 minutes)
Contributions by each person should emerge in the entire project presentation (e.g., by dividing the oral presentation in parts).
Next exams with deadlines:
- 17/09/2019, h. 09:00, LADISPE
- remember to enroll at the exam, by 05/09/2019, on the Portale della Didattica;
- project must be ready for evaluation on GitHub on 05/09/2019 by 14:00;
- specify which materials you need to be available at the exam (if any), via Slack at the teachers (#discussion channel), by the 05/09/2019;
(optional) to avoid last minute problems, you may want to try the presentation and the demo on xx/xx/2019 from 14:30 to 18:00, at the LADISPE.
Examples
- Sample web site showing an effective video presentation and project summary, developed by two students of the Princeton University.
- Projects and websites realized by the students enrolled in previous editions of this course:
- YouTube playlists containing all the videos produced by students enrolled in previous editions of the course: