This paper describes a four-week summer short-course designed to introduce students with limited hands-on technical experience to the low-level details of embedded systems and robotics. Students start the course using a Raspberry Pi 3 to learn the basics of Linux and programming, and end the course by competing in a capture-the-flag type competition with the web-configurable GPS-guided autonomous robots they designed and tested in the course. Throughout the course, students are introduced to programming languages including Python and PHP, advanced programming concepts such as using sockets for inter-process communication, data interchange formats such as JSON, basic API development, system concepts such as I2C and UART serial interfaces, PWM motor control, and sensor fusion to improve robotic navigation and localization. This course was offered to students for the first time in the summer of 2016, and though formal feedback collection was limited, informal feedback indicated that students found the course to be challenging, engaging, and beneficial to their overall understanding of engineering.

The paper walks the reader through the background of this course. It then discusses the weekly lesson plans, supplemental material provided to the students, and our general strategy for teaching the course's programming and system design concepts in such an accelerated time frame. Finally, the paper discusses the student and instructor reactions to the course, lessons learned, and suggestions for future offerings. The material developed for this course will be posted online so that other educators may use it in their teaching.


Computer Sciences

Number of Pages




URL: http://digitalcommons.calpoly.edu/csse_fac/256