An embedded system is an electronic device which uses a microprocessor or microcontroller. Such systems are extremely common and becoming more and more prevalent due to the power of microprocessors, the versatility they offer, and their low cost. 
This module aims at providing a basic understanding of embedded computer systems: Hardware/software systems and co-design. Models of computation for embedded systems, modeling, specification, synthesis and verification, hardware/software implementation, performance analysis and optimization, design methodology and tools. A laboratory on microcontrollers forms a part of the course.
The course provides an introduction to Atmel AVR microcontroller. Our approach is to provide the fundamental skills to quickly get up and operating with this internationally popular microcontroller. The Atmel ATmega16 is used as a representative sample of the AVR line. The knowledge you gain on the ATmega16 can be easily translated to every other microcontroller in the AVR line and any other microcontroller for that matter.
It is important to note that, even though the courses uses mainly Atmel AVR microcontrollers as the main hardware, the course strives to teach general principles of embedded system design rather than the arcane details of any microcontroller. Thus, the student taking this course should expect knowledge that transcends expertise in one single microcontroller.