This document provides an introduction to embedded systems. It begins with defining what an embedded system is and listing some key characteristics such as reliability, efficiency, dedicated functions, and meeting real-time constraints. The document then covers embedded hardware topics like CPUs, processors, system on chips, memory, I/O devices, and buses. It also discusses embedded software including programming languages, operating systems, middleware, applications, and development models. The document concludes with an outline of the course and exercises for students.