72775 - Embedded System Programming

Academic Year 2016/2017

  • Teaching Mode: Traditional lectures
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Science and Engineering (cod. 8615)

Learning outcomes

The course introduces the basic principles and techniques for designing and programming embedded software systems (based on micro-controllers, without an operating system, and based on micro-processors/SOC, equipped with an OS) and systems based on  Internet of Things/M2M. 

Course contents

- Introduction to Embedded Systems and Internet of Things (IoT) / Machine-to-Machine Systems (M2M)
-- characteristics, HW architectures and technologies, examples of applications
-- introduction to embedded system electronics, sensors, actuators

- Models and techniques for programming embedded systems
-- finite state machines - synchronous/time-oriented and event triggered
-- task oriented models, event-driven models
-- techniques based on Embedded OS and Real-time OS

- IoT e M2M
-- models, architectures, communication protocols for networks of devices
-- asynchronous message passing and actors
-- high-level frameworks/middlewares/infrastructures

In lab:
- Arduino UNO as reference platform for embedded systems based on micro-controllers
-- introduction to C++, used to implement programs on Arduino UNO
- RaspberryPi  as reference platform for embedded systems based on micro-processors (and an OS)
-- Linux Kernel as reference OS
-- Java as high-level programming language/platform
- Android as a mobile platform for IoT systems

Readings/Bibliography

- An Embedded Software Primer (David E. Simon) - Addison Wesley
- Computers as Components (Wolf) - Morgan Kaufman
- Making Embedded Systems (E. White) - O'Reilly
- Building Internet of Things with The Arduino (C. Doukas) 
- Designing the Internet of Things (McEwen & Cassimally) - Wiley

Teaching methods

Three credits (about 30 hours) are devoted to theory and exercises in the classroom and three credits (about 30 hours) to practice in lab.

Assessment methods

The assessment is based on the development of a project (in group) and an oral exam - with questions about the theory and discussion of the project.


Teaching tools

Slides projected during the lectures, available on the course web site.  Use of a course kit available in lab - including Arduino and Raspberry Pi platforms.

Links to further information

https://elearning-cds.unibo.it/course/view.php?id=5286

Office hours

See the website of Alessandro Ricci