-Traditionally, real-time systems are built for a very small set of mission-critical applications like space crafts, avionics and other distributed control systems. The various steps in building such systems include, characterizing the workload, designing scheduling algorithms and performing schedulability analysis. Conventional teaching methodologies for real-time systems have primarily focused on these topics and the choice is completely justified for the targeted traditional real-time systems. However with the evolution of small scale real-time embedded systems like cell phones, PDAs, sensor motes and other portable control systems primarily driven by a Real-Time Operating System (RTOS), the conventional teaching methods fall short in several ways. This is because, building such real-time embedded systems poses certain different design and implementation challenges branching out of the severe resource constraints that these devices should operate under.In order to keep pace with these changing trends, we have enhanced our real-time systems course in two different ways. First, we have included the relevant topics like compiler-level and operating systems-level energy aware real-time scheduling algorithms and further developed corresponding assignments and projects to reinforce student learning in these topics. We present some of these details here. Secondly, we have developed a series of laboratory experiments based on commercial RTOSs which give students a rich hands-on experience in building real-time embedded systems. We have tried two different RTOSs namely, RT-Linux and VxWorks in two consecutive years. In this paper, we present the similarities and differences between two the RTOS platforms and their impact on student learning.