The Carnegie Mellon University has an undergraduate level embedded systems course and in this course different categories of embedded systems programming are taught based on the student’s prior experience. Some students have advanced knowledge and some students who need to learn more on interfacing and prototyping. The latter category is freshers such as undergraduates who are yet to pick a strong career stream. Accordingly, the undergraduate course is divided into microcontroller level learning, learning based on expertise in embedded systems and more. These are four year courses, as observed in Figure 2 (Koopman 2005).
In advanced course levels, the students learn how to do hardware design using procedural Verilog and C. They are focused on building real time systems and hardware software simulation is both done (2016b).In sophomore projects they work on JPEG encoders, small level game building, and more. For instance, consider one of the past projects. Students have worked on called the Diesel Coffee Table as presented in the below figure 3 (CMU 2016b).
Here a hand crafter glass table is linked as an interfacing environment for the users. Custom coasters are used, and based on where the customer places their glass different musical and visual effects are triggered. Protruding shapes at the bottom of the coaster helps achieve this. These effects are constructed with Camera, LED Reels, Vinyl Sheets, Clear Window and Door Caulk and other materials.
Student created a model prototype using embedded system technology as an extension of Arduino programming. This model prototype could be packaged as a product and sold and hence students develop real time commercial sensibilities.