This course teaches students to design inexpensive hardware-software systems that offer a user interface, a digital signal generator, an analog interface, and serial communication. Students will: develop maintainable, organized programs in C; write a bit-level peripheral configuration to meet a specification, or predict the operation of a given configuration; design, analyze, and/or debug polling and interrupt-based solutions; address electrical concerns including power consumption; write small assembly programs and interpret the concepts of the programmer's view of a CPU and its buses. Prerequisites: ECE 263 and either CS 1113 or MAE 112; Corequisite: ECE 271