An introductory undergraduate course in real-time embedded software development should acquaint students with the fundamental scientific issues of real-time computing and practical skills in software development. While the theoretical issues can be covered without a laboratory, real-time embedded programming skills require the experiences that a laboratory provides. A major problem is finding equipment suitable for teaching these skills. For over a decade I have used a computer controlled model railroad in my real-time embedded systems course
/lp/association-for-computing-machinery/software-engineering-education-on-the-right-track-with-ada-yXY946qwJz