First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Engineering
Course unit
IN01122661, A.A. 2017/18

Information concerning the students who enrolled in A.Y. 2017/18

Information on the course unit
Degree course Second cycle degree in
IN0529, Degree course structure A.Y. 2011/12, A.Y. 2017/18
bring this page
with you
Number of ECTS credits allocated 9.0
Type of assessment Mark
Course unit English denomination EMBEDDED SYSTEMS PROGRAMMING
Department of reference Department of Management and Engineering
E-Learning website
Mandatory attendance No
Language of instruction Italian
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge FEDERICO TRAMARIN ING-INF/05

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Educational activities in elective or integrative disciplines ING-INF/05 Data Processing Systems 8.0
Other -- -- 1.0

Course unit organization
Period First semester
Year 1st Year
Teaching method frontal

Type of hours Credits Teaching
Hours of
Individual study
Lecture 9.0 72 153.0 No turn

Start of activities 25/09/2017
End of activities 19/01/2018
Show course schedule 2019/20 Reg.2011 course timetable

Examination board
Board From To Members of the board
12 2019 01/10/2019 15/03/2021 REGGIANI MONICA (Presidente)
TRAMARIN FEDERICO (Membro Effettivo)
11 2018 01/10/2018 15/03/2020 REGGIANI MONICA (Presidente)
TRAMARIN FEDERICO (Membro Effettivo)
10 2017 01/10/2017 15/03/2019 TRAMARIN FEDERICO (Presidente)
REGGIANI MONICA (Membro Effettivo)
9 2016 - dal 14/02/2017 14/02/2017 15/03/2018 TRAMARIN FEDERICO (Presidente)
GHIDONI STEFANO (Membro Effettivo)

Prerequisites: Course on introduction to computer science. Knowledge and experience in sequential programming.
Target skills and knowledge: The course provides the opportunities for students to learn fundamental concepts as well as practical developments in the area of embedded systems programming. Topics will mainly concentrate on techniques for concurrency, real-time, and reactivity.

After succesfully complete the course, students will be able to:
- understand the specifics of embedded computer systems
- explain different mechanisms for communication and synchronization between processes
- understand characteristics of real-time systems to deal with them in programs
- program concurrent embedded applications
- design, structure, and analyze programs for embedded systems
- compare, select, and apply programming language constructs designed for concurrency
Examination methods: Grading is based on the combination of three components:
20%: Homework programming assignment
20%: Written exam
60%: Oral examination on course content
Assessment criteria: The homework programming assignment evaluates student's capabilities to design and develop a software application of practical importance.
The written exam focuses on the solution of a critical section problem.
Oral examination assesses student's knowledge about the fundamental issues presented in the course. This examination also assesses the ability to present engineering designs verbally.
Course unit contents: Introduction to embedded systems. Programming close to hardware. Programs that react to events. Process management: concept, scheduling. Concurrent programming: Critical Section Problem, Semaphores, Monitors, Distributed Algorithms, Consensus. Deadlock and starvation. Real-Time Systems: reliability and repeatability, synchronous and asynchronous systems, priority inversion and priority inheritance. Scheduling in Real-Time Systems: cyclic scheduling, rate-monotonic scheduling, EDF, resource sharing, deadlock analysis, and schedulability analysis.
Practical developments: C programming language, automatic builds, profiling, POSIX Threads, Sockets, Real-Time Linux, Raspberry Pi.
Planned learning activities and teaching methods: Concepts, methods, problems and solutions are proposed in a series of lectures. Lectures are complemented with supervised short computer based exercises. Four more complex activities, with supervision, allow the students to formulate their own implementations.
Additional notes about suggested reading: Lectures are based on the proposed textbooks. Additional online material and articles handed out in class will also be required. Sources for articles include:
- IEEE Spectrum Magazine ( - EE- related articles
- IEEE Computer Magazine ( -
- ACM Magazine
- embedded system programming magazine (
- (visionary talks by great minds)
Textbooks (and optional supplementary readings)
  • A. Burns, A. J. Wellings, Real Time Systems and Their Programming Languages (3rd edition). --: Addison Wesley, 2001. Cerca nel catalogo
  • M. Ben-Ari, Principles of Concurrent and Distributed Programming (2nd edition). --: Addison Wesley, 2006. Cerca nel catalogo
  • M. Kerrisk, The Linux Programming Interface. --: No Starch Press, 2010. Cerca nel catalogo