Intelligent embedded systems

Self-study course
582711, 4 cr

Spring term 2014, third period

This is the web page for the course on Intelligent embedded systems held by Elisa Schaeffer, visiting researcher at HIIT, at the CS Dept. of the University of Helsinki as a self-study project course with no fixed sessions. The course can be taken in English or in Finnish.

As prerequisites, it is recommended to have passed all the mandatory lecture courses in the B.Sc. degree, but this is flexible if you have previous experience of electronics and/or programming as a hobby. Especially C language could prove rather useful.


Embedded systems are, loosely speaking, combinations of software and hardware that are in some fashion immersed in other machinery or in an environment and often use sensors to monitor their surroundings (i.e., some ambiental factor or the state of the machinery they interact with) and then some actuators (such as motors or valves) to control in some way some aspects of the environment or machinery in which they are immersed.

Such a system can be considered intelligent or adaptive when it somehow learns from previous operation or user interaction and modifies its present of future behaviour accordingly. The algorithms to achieve this are diverse and numerous.

In this course, each participant (either individually or in teams) designs, implements, and evaluates an intelligent embedded system of their choice. All created software is published as open source in a public repository such as GitHub, a video demonstration of the system's functionality is posted on some online video-streaming service such as YouTube, and a thorough report documenting the project (both software and hardware aspects) is prepared in LateX and included in PDF in the software repository site.

The recommended hardware choice is an Arduino or something similar; the CS Dept. has some available that can be used for the project, if the students do not have this kind of a device available for use (subject to availability of components at the time of initiating the project). It is likely that some electronics (simple sensor components or electric motors) need to be purchased by the team members. Also a Raspberry Pi is acceptable as long as there are some additional electronics involved. Good web stores for this kind of projects include seeed, RobotShop, and sparkfun internationally and, in Finland, Robomaa for more specific things as well as Yleiselektroniikka and Kouluelektroniikka for more general things. It may be of interest to contact Helsinki Hacklab for community support, ideas, and contacts.

You may freely use any and all APIs and libraries as well as other open-source software components you please; just remember to correctly reference and give credit to the authors of the components you choose to include. The operating system on which the team develops the project is also free to choose, as well as the programming language(s).

Grading and scheduling

Individuals working alone can get good grades with simple projects, but the larger the team, the higher the complexity and sophistication that will be expected from the final result.

There are no internal deadlines, but it is highly recommended to contact the instructor before you begin and to send the phases one by one to receive feedback during the work and avoid disasters due to misunderstandings, planning errors, or poor scheduling of project tasks.

You are free to begin the project even before the third period starts, if you wish (this might be a good way to avoid boredom over the holidays). Please contact the instructor beforehand, though, if you do.

For the first part, the instructor can be contacted via e-mail at (from January 13 to the end of the month) and for the second part (until February 21) also available for meetings at the Exactum building. It is a very good idea to establish contact before starting the project work. Among interested participants, a Facebook group can be formed to exchange ideas and resolve problems collaboratively.

The last permitted date for turning in work to grade is February 20, 2014. It is a very bad idea to turn in all at once, but you may design your project calendar as you please.

The project is evaluated for the entire team and the team is expected to contribute equally in each aspect. Should some of the team members be more deserving of points than others, the team must provide a clearly written explanation of this and a suggestion of how the effort has been divided as a percentage; this is the only way in which some team members can receive more points than others on any phase of the project. There are no examinations.

The grade limits are adjusted at the end of the course and are tentatively the following (expect changes), in terms of the accumulated total (T):


Completed projects

The projects are published here with written permission from the students.

  1. Express Arduino Pi: video demonstration and report in PDF
  2. Raspimobot: video demostration, repository, and report in PDF
  3. Participation in Ell-i BareMetal Hackathon

Each registered participant is identified with the last three digits of the student ID number.

538 10+17+20+15+7+18=87 4 In the test planning it would have been good to contemplate some aspects of hardware testing in addition to software testing. The evaluation reported does not appear very thorough. No intelligence as such is demostrated. The final report contains some spelling errors and formatting details. There is a list of links but no actual bibliography. The reflextion included is good. The biggest weakness is the lack of adaptive, learning, or otherwise intelligent mechanisms; in other aspects the project is good.
229 9+15+16+16+7+15=78 3 There was no test plan; the testing itself turned out okay nevertheless. The document describing the implementation was a bit concise. No intelligence as such is demostrated, but the project is otherwise okay. From a three-person team, though, one could have expected something a bit more complex; due to this, all phases have somewhat less points than would correspond to a one-person project. (Adjusting this was surpringly hard for me.)
272Nothing received; zero grade.

Updated on June 17, 2014.