This document provides an overview of an embedded systems programming course. It defines what an embedded system is, including that it is a microcontroller designed for a specific task rather than general computing. It discusses the hardware and software aspects of embedded systems and microcontrollers. It also outlines the topics that will be covered in the course, such as interrupts, timers, analog-digital conversion, and serial communication interfaces. Evaluation will be based on a midterm, quizzes and labs, a final project, and a final exam.