The majority of computing devices are not inside personal computers, laptops, or in data centers. Instead, they are integrated into multiple objects around us. From the small computers integrated into water taps that automatically shut off when not in use to the integrated computers assessing the health of jet engines, these computers are pervasive and impact several walks of life. In this course, we study such embedded devices. We first investigate the various applications of such embedded computing systems in our day to day lives. We then understand the design principles behind these embedded devices by studying the design constraints and the possible space of solutions. Finally, we will pick a specific application of interest and design an embedded system for that application.