This document provides an overview of embedded systems. It defines an embedded system as a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time constraints. The document then discusses the history of embedded systems, their key characteristics including being special-purpose, tightly constrained, and reactive in real-time. It also covers the typical architecture of embedded systems including the use of real-time operating systems. A wide range of applications are presented, from devices like air conditioners and phones to the Lego Mindstorms NXT kit.