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.
Andrew Danowitz received his PhD in Electrical Engineering from Stanford University in 2014, and is currently an Associate Professor of Computer Engineering at California Polytechnic State University in San Luis Obispo. His research interests involve student mental health and accessibility in engineering education.
Bridget Benson received a Bachelor's degree in Computer Engineering at California Polytechnic State University San Luis Obipso in 2005, a Master's degree in Electrical and Computer Engineering at the University of California Santa Barbara in 2007 and a PhD degree in the Computer Science and Engineering at the University of California San Diego in 2010. She is currently an Assistant Professor in the Electrical Engineering Department at California Polytechnic State University San Luis Obipso. Her research interests span engineering education, internationalization, and embedded systems.
Jeremy Edmonds has extensive professional experience across a variety industries such as information security and cryptography, cryogenic engineering, military and aviation power systems and telemetry, and robotic ultrasonic scanning research for the oil and gas industry. He owns and manages a private startup company for design, consulting, and services, including the utilization of computer vision for investigations and computer forensics services. Jeremy has previously taught college courses such as analog circuits, troubleshooting, robotics, and various other specialties. His primary passion and focus is helping aspiring professionals learn and easily understand complex concepts, instilling student confidence, and giving students the ability to put their knowledge to practical use.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.