Consumer electronics are creating huge job markets for graduates with the programming background, and more and more computer science departments are launching embedded software subjects to meet this demand. However, most students majoring computer science do not have the background in electronics, or even circuits. Due to this reason, how to convey the abstract knowledge on embedded software tangibly to students in computer science is a significant challenge in teaching to bridge the gap between the limited background and curriculum requirements. This paper addresses this challenge by proposing a student project to develop and pilot test a mobile robot platform, and a peer competition with the robots developed by other students. The project requires students to develop a mobile robot using commercial sensors and actuators for simultaneous light source seeking and obstacle avoidance. The development and assembly of such a system stimulate students’ interest in this subject and provide them with a concrete understanding of embedded systems. The algorithm design and implementation enhance their theoretical knowledge gained from lectures. To facilitate the development, this project is partitioned into multiple parts and we provided a one-hour tutorial every week for all parts. The components include basic simple concepts such as input/output programming, intermediate tasks such as reading sensor data and controlling motors, and advanced topics such as multi-threading to simultaneously control multiple software methods. The final competition motivates students to develop robust and optimal programs. It helps them accumulate practical knowledge about performance limits of some electronic devices and calibration techniques to improve the performance. The pilot testing of this course has been conducted for two semesters and all major issues have been addressed. A comprehensive survey was conducted at the end of the course to get student feedback on different pedagogical aspects of the course. The evaluation results demonstrate the effectiveness of the project in enhancing students’ understanding of electronics, knowledge of programming to support embedded systems, and critical thinking.