nl en

Embedded Systems and Software


Admission requirements

Not applicable.


Embedded Systems are application domain specific information processing systems that are tightly coupled to their environment. They appear in home appliances, copy machines, automotive entertainment systems, medical imaging systems, wireless and portable multimedia terminals, distributed sensor networks, and more.

The course first introduces the notion of and some basic concepts in embedded systems and software. Then it deals with basic methods, techniques, algorithms, and components that are found in embedded systems.

In a second part, the course focuses on methods, techniques, and tools for system-level design, programming and implementation of Embedded Multi-processor Systems-on-Chip (MPSoC). In particular, the DAEDALUS framework for system-level design of MPSoCs will be studied in detail. DAEDALUS features: 1) automated translation of sequential application code to equivalent parallel specification code; 2) automated system-level synthesis of specific MPSoCs; 3) automated mapping of the parallel specification code to the synthesized specific MPSoC; 4) fast implementation/prototyping of the whole MPSoC embedded system on FPGA-based prototyping boards.

In a third part – that is integrated with the second part – the course takes the form of laboratory hands-on sessions in which the DAEDALUS framework is used to design and prototype a relatively simple MPSoC.

It is strongly recommended but not mandatory that the students have taken the Fundamentals of Digital Systems Design, Computer Architectures, Operating Systems, Computer Networks, and Compiler Construction courses at Leiden University or similar courses at other universities!
In addition, concerning the laboratory hands-on sessions, the students must be able to program using the C/C++ language and must be familiar with Linux!

Course objectives

The Embedded Systems and Software course intends to introduce students to state-of-the-art methods, techniques, and tools to design, program, implement, and use embedded systems. This is done through a series of lectures, hands-on sessions, and discussions on relevant journal/conference paper.


The most recent timetable can be found at the Computer Science (MSc) student website.

Mode of instruction

Lectures and mandatory hands-on sessions.

Course load

Hours of study: 168:00 hrs (= 6 EC)
Lectures: 20:00 hrs
Practical work: 60:00 hrs
Examination: 80:00 hrs
Other: 8:00 hrs

Assessment method

There is no traditional written exam. The final grade is a combination of grades for: (1) presentation on a give topic related to the course material (40%); (2) performance during the hands-on sessions (40%) and; (3) pro-active attitude during lectures and paper discussions (20%).

Reading list

List with selected journal/conference papers and book excerpts will be provided to the students. All this literature could be downloaded from Internet.
Slides will be provided to the students for download.


  • You have to sign up for courses and exams (including retakes) in uSis. Check this link for information about how to register for courses..

  • Due to limited capacity, external students can only register after consultation with the programme coordinator/study advisor (


Lecturer: dr. Todor Stefanov
Website: Embedded Systems and Software