Prerequisite: ENEE350 or equivalent course on Computer Architecture, ENEE244 or equivalent course on Digital Logic Design, ENEE150 or equivalent course on programming (preferably C). The first decade of 21st century was marked by the emergence of smart devices that are used in everyday life. Smart phones, smart cars, smart TVs, smart thermostats, smart vacuum cleaners, just to name a few. These devolopments are powered in large part by the embedded systems. This course will provide students with the essential knowledge base that will enable them to tackle complex problesm encountered in embedded systems design. In addition to the overview of associated hardware components and software methodologies and tools used in the development of modern embedded systems, and theory behind them, the course will include a carefully selected collection of hands-on Lab excercises that would help students get a sense of how the presented theoretical concepts connect with the real-world embedded systems applications.