Official website of the course "Ambient intelligence: technology and design" (code 01PRDxx) offered to students in the 3rd year of Engineering (among elective courses).
Warning: This page contains the archived version for the 2014/2015 edition of the course. The latest version of the course is available at: http://bit.ly/polito-ami
Latest news
- 2016-01-11: Updated the exam date and deadline for the Winter session.
- 2015-09-23: Starting with the academic year 2015/2016, this course will change name to "Ambient Intelligence" and code (01QZP). The course contents and goals, however, will remain unchanged.
- 2015-06-17: Updated the guide for realizing the video to embed in the project websites.
- 2015-06-08: Updated the exam dates and deadlines for the Summer session.
- 2015-06-07:The date for the "AmI Student Showcase 2015", where you may show your projects to a wide audience of students, professors, and entrepreneurs, has been fixed: 29 September 2015, Tuesday.
- 2015-05-15: For all the groups that need to know about the politecnico maps and room locations, next Monday (18/05) at 10:00, we will meet (in Room 15S) the architects that are currently managing the architectural information system. The meeting is mandatory for the groups that need to access this information, and is open to all interested students.
- 2015-05-06: For all the groups that need to query the lecture timetables (and classroom occupation), tomorrow (Thursday 07/05) at 17:30, we will meet (in Room 3I) the two engineers that are currently maintaining the system, and we will discuss the available JSON APIs that you can use. The meeting is mandatory for the groups that need to access this information, and is open to all interested students. And to wet your appetite: https://github.com/AmI-2015/PoliOrari
- 2015-05-01: The template for Deliverable D3 has been published. The deadline for D3 has been postponed to Thusday 7 May 2015.
- 2015-04-28: Class schedule has been updated to its final version. Please, have a look at the Log section.
- 2015-04-21: On May 14, 2015, at 17:30-19:00, right after the group presentations, the head of the I3P incubator, Massimiliano Ceaglio will give a lecture on the topic "From a Project to a Product", and the I3P experts will be able to give feedback on the projects.
- 2015-03-26: The exam section has been updated and the deadline for the first deliverable was moved to the 28/03.
-
2015-03-25: Each group, on GitHub, has assigned two private repositories:
- one for experimenting with git and GitHub (named git-experiment-X, where X is a digit);
- the other (named as the group/project) for the "real" team work and for hosting the website as a GitHub Pages.
- 2015-03-24: Information exchange and discussions about the topics are encouraged on the Facebook group linked to the course
- 2015-02-24: Welcome to the 2014/2015 edition of the course
-
2015-02-24: The material of the 2013/2014 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.
Sponsors
The following companies or organizations are supporting the equipment used in the course labs.
Information
Identity card
Title: | Ambient intelligence: technology and design |
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: | Dario Bonino, Luigi De Russis |
Class hours
Day | Hour | Location | Type |
---|---|---|---|
Monday | 16:00-17:30 |
Room 4D or LADISPE lab |
Class or Lab work |
Monday | 17:30-19:00 |
Room 4D or LADISPE lab |
Class or Lab work |
Thursday | 16:00-17:30 | Room 3I | Class |
Thursday | 17:30-19:00 | Room 3I | Class |
See the Log section for detailed information.
On the Monday afternoons, the LADISPE is always available for AmI students.
Books
See also the Materials page
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 and will include some seminars given by industry experts.
Learning Outcomes
Knowledge: technologies involved in the design and realization of smart environments, at various architectural levels (sensors, home automation networks, wireless sensor 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 will be a significant contribution from disciplines more oriented to AmI applications: electric, energy, 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.
- Taxonomy of Ambient Intelligent systems and state of the art industrial systems. Seminars with industry experts.
- Practical programming of AmI systems: the Python language, the Raspberry Pi computer, Web protocols (http and REST) and languages, 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.
During laboratory hours (at LADISPE): students will work for programming simple intelligent scenarios and user interfaces with real home automation systems. Hands-on and insights about some topics discussed in class.
Additional hours will be devoted to assisted group work in the laboratory.
Some class exercises will focus on functional and architectural analysis and design, analysis of user interaction, and design and technology/component selection.
Materials
This section will host learning material: slides, documents, links, videos, etc. used during the course. All slides, examples, exercises, and any other material used in the classroom will be posted here.
Slides
- Introduction to the course
- Ambient Intelligence
- Teamwork
-
Programming
- Programming for AmI
- Hardware fundamentals
- Python basics
- Python intermediate
- Introduction to Git
- REST services with Python and Flask: the Flask Music Server
- Controlling Lights with Python and REST: the Hue case
- Interoperation and device control from Python
- Using Databases (MySQL, SQLite) with Python
- Android hands-on
- Web technologies
In-class Exercises
- Hardware fundamentals (GitHub)
- Python basics (GitHub)
- Python intermediate (GitHub)
- Building web applications (GitHub) [updated 2015-04-13]
- Flask Music Server (GitHub)
- Colored Light control (GitHub)
- Device interoperation (GitHub)
- Android-activity-lifecycle(GitHub)
- Android-intent (GitHub)
- Android-flask-client (GitHub)
Laboratories
- Getting started with Python (auxiliary files: alice.txt, python-zen.txt) [Solutions on GitHub]
- Python intermediate [Solutions on GitHub]
- Web in Python [Solutions on GitHub]
- REST in Python [Solutions on GitHub]
Readings and papers
- Intelligent Environments: a manifesto, JC Augusto et al, 2013
- Scenarios in Ambient Intelligence 2010, European Commission ISTAG, 2001
- Think Python: How to Think Like a Computer Scientist, Allen Downey, Green Tea Press
- Official Python Tutorial
- Learn Python the Hard Way, Zed Shaw
- Dive Into Python 2, Mark Pilgrim
- Google's Python class
- Learning Python (5th edition), Mark Lutz, O'Reilly
- 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)
Links
- Facebook group linked to the course
- The Dog Gateway project website
- List of 2014 students works' websites
- Online Python Tutor
- Estimote Beacon documentation
-
RaZberry and Z-Way (for connecting with Z-Wave networks)
- example of usage of Z-Way API in Python
Groups and Projects
- Shared document for submitting project ideas
- Evaluation of proposed projects (2015-03-19)
- Shared document for submitting final ideas (only approved projects)
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-2015);
- 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 three 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:
- 19/03 discussion on groups and project ideas;
- 20/03 submit group composition (on the shared Google doc);
- 28/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 first deliverable must be clearly identified in the website according to this template [PDF] [DOCX];
- 30/03 check of the first deliverable with the students (in LADISPE);
- 13/04 deadline for the second deliverable (i.e., system requirements - see the set of slides "AmI Design Process") to be published on the project website; the second deliverable must be clearly identified in the website according to this template [PDF] [DOCX];
- 27/04 check of the second deliverable with students (in LADISPE);
- 07/05 deadline for the third deliverable (i.e., system architecture - see the set of slides "AmI Design Process") to be published on the project website; the third deliverable must be clearly identified in the website according to this template [PDF] [DOCX];
- 11/05 check of the third deliverable with the students (in LADISPE);
- 14/05 final check of the projects (each group is required to give a 5-minute presentation of their project, and the current status of development). The presentation should be prepared by following these guidelines [PDF].
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 three parts:
- oral presentation (max 15 minutes, by using PowerPoint slides or similar)
- demonstration or a video if the project cannot be demonstrated (5 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:
-
18/01/2016, h. 10:00, LADISPE
- remember to enroll at the exam, by 14/01/2016, on the Portale della Didattica;
- project must be ready for evaluation on GitHub on 14/01/2016 by 14:00;
- specify which materials you need to be available at the exam (if any), via mail at the teachers, by the 14/01/2016;
-
(optional) to avoid last minute problems, you may want to try the presentation and the demo on 31/08/2015 from 14:30 to 17:00, at theLADISPE.
Examples
- Sample web site showing an effective video presentation and project summary, developed by two students of the Princeton University.
- Smart Notification website, developed by three students enrolled in the 2014 edition of this course.
- YouTube playlist containing all the videos produced by the students enrolled in the 2014 edition of the course.
Log
This section will host the log of all the lectures, with the topics 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.
Type legend: L = Lecture, EA = Exercises in classroom, EL = Exercises in laboratory (LADISPE)
All lectures will be video-recorded (screencasting) and will be published after the class. Lectures will be also available in a dedicated YouTube playlist.
Date | Time | Type | Topic | Video | Teacher |
---|---|---|---|---|---|
02/03/2015 | 16:00-17:30 | L | Course introduction. | Fulvio Corno | |
02/03/2015 | 17:30-19:00 | L | Definition and characteristics of Ambient Intelligence. Overview 2014 projects. | Fulvio Corno | |
05/03/2015 | 16:00-17:30 | L | Definition of the "theme of the year" (with examples). | Fulvio Corno | |
09/03/2015 | 16:00-17:30 | EL | Intro to labs, organization and materials. Programming for AmI. | Dario Bonino | |
09/03/2015 | 17:30-19:00 | L | Hardware fundamentals. | Dario Bonino | |
12/03/2015 | 16:00-17:30 | L | AmI Design Process (part I). | Fulvio Corno | |
12/03/2015 | 17:30-19:00 | L | Python basics. | Luigi De Russis | |
16/03/2015 | 16:00-17:30 | EL | Python basics: exercises. | Luigi De Russis | |
16/03/2015 | 17:30-19:00 | L | AmI Design Process (part II). | Fulvio Corno | |
19/03/2015 | 16:00-17:30 | EA | Group definition. Project ideas check, discussion and suggestions. | Dario Bonino | |
19/03/2015 | 17:30-19:00 | EA | Intefacing Python. | Dario Bonino | |
23/03/2015 | 16:00-17:30 | EL | Interfacing Python: exercises. | Dario Bonino | |
23/03/2015 | 17:30-19:00 | L | Introduction to Git | Luigi De Russis | |
26/03/2015 | 16:00-17:30 | L | Functional and non functional requirements. | Fulvio Corno | |
26/03/2015 | 17:30-19:00 | EA | Example of functional/non functional requirements document. | Fulvio Corno | |
30/03/2015 | 16:00-17:30 | EL | Proposals evaluation (group-by-group feedback on proposed projects and D1). | Luigi De Russis | |
30/03/2015 | 17:30-19:00 | EL | Proposals evaluation (group-by-group feedback on proposed projects and D1). | Fulvio Corno | |
(Easter vacation) | |||||
09/04/2015 | 16:00-17:30 | L | Web architecture and HTML | Fulvio Corno | |
09/04/2015 | 17:30-19:00 | EA | Web in Python with Flask | Fulvio Corno | |
13/04/2015 | 16:00-17:30 | EL | Web in Python: exercises. | Luigi De Russis | |
13/04/2015 | 17:30-19:00 | L | Web sessions. CSS. | Fulvio Corno | |
16/04/2015 | 16:00-17:30 | L | HTTP. REST architecture with examples. | Fulvio Corno | |
16/04/2015 | 17:30-19:00 | EA | REST in Python: the music server case study. | Dario Bonino | |
20/04/2015 | 16:00-17:30 | EL | REST in Python: exercises. | Dario Bonino | |
20/04/2015 | 17:30-19:00 | L | Bootstrap with Flask and exercises. | Fulvio Corno | |
23/04/2015 | 16:00-17:30 | L | Javascript. | Fulvio Corno | |
23/04/2015 | 17:30-19:00 | EA | Interacting with smart devices: the Hue case. | Dario Bonino | |
27/04/2015 | 16:00-17:30 | EL | Supervised work group and feedback about D2. | Luigi De Russis | |
30/04/2015 | 16:00-17:30 | L | jQuery and AJAX. | Fulvio Corno | |
30/04/2015 | 17:30-19:00 | EA | Interacting with smart environments: the Dog case. | Dario Bonino | |
04/05/2015 | 16:00-17:30 | EL | Supervised work group. | Luigi De Russis | |
07/05/2015 | 16:00-17:30 | EA | Hands-on session: databases with Python | Fulvio Corno | |
07/05/2015 | 17:30-19:00 | - | How to query the lecture timetable. | ||
11/05/2015 | 16:00-17:30 | EL | Supervised work group and feedback about D3. | Dario Bonino | |
14/05/2015 | 16:00-17:30 | EA | Final projects: review. | Dario Bonino | |
14/05/2015 | 17:30-19:00 | L | I3P seminar. | Fulvio Corno | |
18/05/2015 | 16:00-17:30 | EL | Supervised work group. | Dario Bonino | |
18/05/2015 | 17:30-19:00 | - | Meeting on noise analysis (in LADISPE). | ||
21/05/2015 | 16:00-17:30 | EA | Hands-on session: Android apps. | Dario Bonino | |
25/05/2015 | 16:00-17:30 | EL | Supervised work group. | Luigi De Russis | |
04/06/2015 | 16:00-17:30 | EL | Supervised work group. | Dario Bonino | |
08/06/2015 | 16:00-17:30 | EL | Supervised work group. | Dario Bonino |