Embedded Software Programming

Instructor: Prof. Ambuj Varshney

Course code: CS 5272

Institution: School of Computing, National University of Singapore

Course instance: Year 2024, Semester 2


This course introduces the design and implementation of embedded systems, focusing on the software aspects. Embedded systems, often synonymous with the Internet of Things (IoT), are small-scale computers that have become widespread. They are typically equipped with sensors, actuators, microcontrollers, and some form of energy storage, enabling us to monitor and interact with our physical surroundings by tracking various phenomena. The course lays the groundwork for understanding the basics of embedded systems and their hardware, emphasising energy efficiency and sustainability of deployments. Specifically, it will concentrate on energy-efficient sensing, communication, and processing. Topics will include basics, sensing modalities, processing tasks like machine learning on microcontrollers and language models at edge, and energy-efficient communication techniques such as backscatter and LiFi.