This document provides an overview of embedded systems. It defines an embedded system as a special purpose system that has hardware and software designed to perform dedicated functions. Examples provided include watches, washing machines, and microcontrollers. Programming languages for embedded systems are discussed, with C and C++ being the most common. Key features of embedded systems are also summarized such as limited resources, real-time constraints, reliability requirements, and diverse hardware platforms. Embedded systems are classified based on their functionality, with examples given of stand-alone, real-time, mobile, and networked embedded systems. Finally, common applications of embedded systems are listed.