This GIFTS paper discusses a programming crash-course that represents a departure from traditional introductory programming education, designed specifically to capture the imagination of first-year engineering students through tangible, real-world applications. Early exposure to both programming fundamentals and programmatic thinking can set students up for later academic success, but often these concepts are presented in ways that do not resonate with students. Rather than confining students to abstract desktop programming exercises, the course introduces programming concepts through physical computing experiences that bridge the gap between code and the physical world.
In this course, the authors have attempted to present critical concepts in programming and programmatic thinking to students in an engaging format that gives students more tangible, real-time feedback. By integrating physical devices and sensors into the learning experience, students gain hands-on experience with rudimentary embedded systems while developing transferable skills in Python, a language with broad applications across engineering disciplines.
The practical implementation of this course relies on providing each student with an Adafruit Circuit Playground Express, which is an inexpensive microcontroller development board that features many sensors and interfaces, and on which runs a CircuitPython interpreter. When students make changes to the Python file running on the board, it immediately begins executing the updated code. This board minimizes hardware complexity while maximizing sensor integration possibilities. This approach allows students to focus on programming concepts rather than wrestling with complex circuit construction.
The curriculum breaks down programming principles into digestible units, ensuring students can build confidence progressively while working with tangible systems that provide immediate visual and physical feedback. The concepts discussed include datatypes, datastructures, Boolean logic, program flow, and loops. Some of the weekly projects include blinking red, green, and blue (RGB) LEDs in specific patterns, and mapping detected analog quantities (e.g., light or sound) to various electronic displays. While the methods used in this course differ from those in a traditional introductory programming course, the topics covered are the key building blocks of computer programming, and when equipped with skills in these areas, students have the necessary skills to pursue more advanced coursework in computing and digital electronics.
Student learning is reinforced through a dual approach of practical demonstration and analytical documentation. Each week, students must both show their working projects and articulate their understanding through structured reports that include purpose statements, hardware diagrams illustrating connections between the microcontroller, sensors, and interfaces used in the project, and flow diagrams that represent the logic and data flow within their code. This combination ensures students not only can make things work but also understand and can communicate the underlying principles.
Assessment occurs through continuous evaluation via concept quizzes, weekly demonstrations and structured reporting, supplemented by documentation and presentation of the comprehensive final project. The primary skills assessed are technical competency in the context of programming and professional communication skills.
The course culminates in student-proposed final projects, encouraging pairs to identify real-world problems they can address with their newly acquired skills. This gives students the opportunity to execute their own creative vision in the context of embedded systems. In building and testing these projects, students practice synthesizing many of the programming units from the course for a purpose they have chosen. This level of agency granted to students increases the efficacy of their learning.
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.