Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

EIT Digital

Embedded Hardware and Operating Systems

EIT Digital via Coursera


All about practical programming and creating IoTs applications! In this course, we will talk about two components of a cyber-physical system, namely hardware and operating systems. After completing this course, you will have knowledge of both hardware components and operating systems. You are able to plan and use embedded operating systems in resource-constraint devices for Internet-of-Things (cyber-physical system) applications. In addition, you can use Cooja simulation for designing and simulating wireless sensor network applications. The course offers 4 modules, each with a graded quiz in the end and finally, one peer-reviewed programming assignment. In case you have no experience with C programming, please check a practical course like: The course is actually quite fun at the end when you play around with Cooja simulation for IoTs applications. So you can create and simulate your own design for sensor network applications. A lot of features and examples of Contiki and Cooja can be explored via assignments. There are some optional assignments of wireless sensor network applications for students who want to explore more about embedded OS in IoTs applications. - Marco Ramirez /University of Turku - Igor Tcarenko/ University of Turku - Nguyen Gia Tuan /University of Turku Ideate. Innovate. Iterate with EIT Digital


  • Introduction to Embedded Hardware
    • This week will start from the basic information about Embedded Systems. Specifically, you will learn (1) what are embedded systems and where they are applied as well as (2) the main characteristics and challenges of embedded systems. (3) You will discover how embedded systems communicate with the outer world.
  • Processing Elements of an Embedded System
    • This week we will go into details of what embedded systems consist of. Specifically you learn about the main blocks of any processing element of embedded systems. We will show you what (1) embedded processors consists of and its main features. You will learn what (3) reconfigurable architectures and FPGAs are, and what kind of (4) ready-made platforms you can use to start working with processing elements.
  • Overview of operating systems and embedded operating systems
    • In this week, we start with an overview of operating systems and embedded operating systems for IoT. Primary functionalities of embedded operating systems are discussed. We learn how operating systems work: how memory is managed, how tasks are scheduled, what interrupts are and how they are handled. After this, we deepen our learning with the popular kernels for general and embedded operating systems. Linux (monolithic) kernel, micro kernel and modular kernel are presented. In addition, several popular embedded operating systems for IoT are presented. Concretely, after attending this week, you will able to (1) explain why embedded systems often require an operating system (2) describe how an embedded operating system works such as how memory is managed, how tasks are scheduled and how interrupts are handled. (3) You will be able to differentiate between popular kernels for embedded operating systems. (4) Differentiate between popular embedded operating systems for IoT.
  • Contiki OS and Cooja simulation
    • In this week, we start to explore the Contiki Os in detail. First we discuss about the Contiki system and its kernel architecture. Furthermore, we explore how loadable programs are actually implemented in Contiki. Second, we go through services and libraries in Contiki to see how they are built and when they can be invoked. Third, we discuss communication in Contiki via details of uIp and Rime communication stacks in Contiki. Next, prototheads are discussed to describe how application code is processed in Contiki. Furthermore, APIs of multi-threading is discussed. Last but not least, the Cooja simulator - a simulator for wireless sensor networks based on Contiki is introduced. All steps of installing and applying Cooja for a wireless sensor network applications are presented in detailed via an example application. Concretely, after attending this week, you will able to (1) describe how Contiki system and its kernel architecture are built. (2) Distinguish Contiki services and libraries in terms of how they are built, when they are invoked and why they are used. (3) Describe how communication is implemented and supported in Contiki and what protocols Contiki can support. (4) Explore how application's code is processed in Contiki and important functions of API for multithreading in Contiki (5) use Cooja for simulating wireless sensor networks applications.

Taught by

Nguyen Gia Tuan


1.0 rating, based on 2 Class Central reviews

4.2 rating at Coursera based on 618 ratings

Start your review of Embedded Hardware and Operating Systems

  • Alex
    Waste of time watching the videos, because it's just a guy reading (very slowly) bullet-points from some powerpoint slides. There are no graphs, charts, drawings, pictures, or other explanations to supplement the slides. An audiobook would have been better. The content is also extremely basic even for beginners, and the graded questions at the end of each lecture require no thought, just rote memorization of the content of the video/slides.
  • Anonymous
    Worst course. After week 1, you will realize he is teaching something else, asking you questions on something else, giving coding assignments completely unrelatable, asking you to read something which is good but far away from what he teaches and finally, the content of week 1 is repeated throughout the course without anything new. I am especially here to write about this course and trust me, I have taken a lot of bad courses but this one is like really really bad.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.