Introductory programming courses are unique in that they typically represent the studentpsilas first technical experience in computer and electrical engineering curriculum. The presentation of these courses is important because the impressions students form from these courses stay with them throughout their college experience and beyond. This paper describes an embedded system-based introductory programming course designed specifically to support the specific needs of computer and electrical engineering students. This course replaces a similar course taught from primarily a computer science perspective by changing the course context to a hardware-based embedded environment. The embedded system environment fully supports the learning outcomes of the computer science-based programming course but also accustoms students to the nuances of embedded systems that would otherwise require introduction in later coursework. The hardware nature of this course provides students with an introduction to interfacing basic and common I/O devices typically available on microcontroller-based hardware platforms. The presentation of this course also mitigates traditional cultural differences between computer science and engineering-based approaches to curriculum that can have a negative impact on students in their perspective majors.