Embedded Software and Systems

Graduate course, University of Oxford, Department of Computer Science, 2019

Role: Teaching Assistant.

Intro: Over 99% of processors manufactured end up in embedded systems, ranging from washing machines to traffic lights. Embedded systems are pervasive and are becoming more so through the “internet of things”. The aim of this course is to illustrate how the process of software development for embedded systems is fundamentally different to conventional software, due to the tight coupling between hardware and software. Development on embedded systems is particularly challenging due to the difficulties in debugging real hardware. However, there are many techniques, that with some modification, can be adapted to the embedded world, such as Test Driven Design. This course demonstrates how adoption of mocks, test harnesses and unit-tests can reduce development effort in embedded software design. To make concepts real, each students will test and design code on a hardware platform throughout the work.