skip to Main Content
Invited Showcase Talk on Physical Computing Course & Assistive Tech, Given at the Apple Distinguished Educator Summit

You No Longer Need to Be an Engineer to Build Electronics Projects!

For educators and independent learners, I’m sharing, free for non-commercial use, all materials that I’ve created for my course “Physical Computing: Art, Robotics, and Tech for Good“. This 3 credit undergraduate course (the standard for a single semester-long course), which I teach at Boston College, is open to all students and assumes no prior programming or engineering experience. Students use CircuitPython on a series of boards and by the end of the semester they’ve learned programing basics and advanced concepts, such as Internet-of-Things (IoT) device control using the MQTT standard. 

I’m currently distributing three boards and a variety of sensors, additional input mechanisms, and motors to our students. The boards include the Adafruit CircuitPlayground Bluefruit, Arduino Nano RP2040 Connect, and Raspberry Pi 3A+, although since CircuitPython can be used on hundreds of boards, course materials are quite adaptable. For example, most of these materials are easily adapted to the Raspberry Pi Pico board, which also runs CircuitPython and is extremely inexpensive, although this board lacks built-in sensors of the CircuitPlayground.

This Google Sheet contains a parts list for components used in this course.

Materials include a variety of YouTube playlists:

Keynote slides including weekly in-class build challenges and exams can be found in the publicly-accessible Google Drive at this URL:

My University has fortunately funded the purchase of a quantity of parts that are distributed to students. Teaching assistants handle distribution and collection of parts. Since course materials are provided for free, this removes typical textbook and materials spending so that students can purchase additional parts if they’d like to keep their projects or create projects that require more permanent modification, such as soldering sensors. Students are also expected to self-fund (or seek available funding for) the Assistive Technology projects that they deliver to clients as part of this course.

How I Teach This Course:

  • I teach the course in the “flipped class” format. This means concept-introducing lectures are watched by students on their own time,  outside of class via videos that have students learning concepts & building concepts. Students submit programs written during these weekly follow-along videos, and also complete an online quiz after each video (available via our Canvas learning management system). These are vital to ensure flipped-class learners are actually paying attention to concepts in the video lessons.
  • Time spent in-class is on what would often be considered “homework”. Students are challenged with several in-class exercises using concepts they should have learned during video lessons. Builds are demonstrated to students and they are given time to produce a working solution. Students bring laptops and parts to every class and are encouraged to consult peers and work together if they struggle finding a solution on their own.

Approach Benefits & Success Factors:

  • Fewer students are lost: the ‘flipped class’ approach means no one misses a vital concept because they were distracted, made a trip to the bathroom, or otherwise were not focusing. The ability to rewind and review concepts helps anyone struggling with a subsequent challenge or reviewing exams. Non-native English speakers and students new to technical terms also find lesson-based classes especially effective. New-to-tech students have also shared that the flipped approach limits feelings new students sometimes experience in a lecture where advanced students are notable in they seem to “get” new concepts right away, This can be especially important in opening opportunities to those women who are new to tech, or economically disadvantaged students who haven’t benefited from access to technology or prior learning opportunities.
  • Office hours are reduced and more productive. No students arrive saying “I’m lost and don’t get it”. Since everyone has access to lectures, they can point to a specific concept that they’re struggling with.
  • Leverage Teaching Assistants In-Class. I’m able to employ undergraduate teaching assistants who attend each class and who assist in weekly assignment grading. Students are encouraged to raise a hand if they encounter a problem that a TA may be able to address (e.g. if a part fails, their software seems to be acting flakey). This helps offload the kind of one-off problems that can occur with a technical course that can slow down the rest of the class. TAs also hold weekly office hours for those students who can’t make it to meet with the professor. Attendees are encouraged to attend with classmates that are experiencing similar problems so that solutions can be presented once, with several learning together.
  • Use a Grading System Focused on Student Retention and Learning. Many of today’s college students are unfortunately often less likely to take challenging courses for fear that they may perform poorly and that this will lower their GPA. This course takes several steps to encourage students to stay enrolled, even if challenged by: 1) offering mid-terms at a lower percentage rate than the final (I use 10%). 2) Allowing test re-takes at a lower score: I refer to my course policy as “No Coder Left Behind“. In my course, students earning less than a 70 out of 100 points an exam can retake the same test after seeing the solution, but with no notes or additional help, with their final retake score multiplied by .7. Rather than weeding out students with extremely low grades, this encourages students to continue to tackle a concept until they achieve the skill. Graduates of the course emerge more qualified with broader concept retention. 3) Students also receive additional credit for completing the significant additional work required in class. Weekly assignments are 10% of their grade and most students get near perfect scores on these. Weekly online concept retention quizzes can be retaken repeatedly with the highest score recorded, and these also are 10% of their grade. So while a student who struggles likely won’t be in the highest tiers of grading, they also almost certainly won’t fail and nearly everyone can earn a grade higher than a “C”.
  • Have Back up Parts: Parts are quite reliable but in large classes, component failures are inevitable. Have TAs armed with parts so they can swoop in and offer replacements to anyone who might experience a failure both during class and during the week.
  • Have TAs Handle Parts Distribution & Collection: Teaching Assistants can take the administrative burden off faculty, allowing instructors to focus on high-value student interaction.
  • Leverage Social Media: I provide a list of resources for my students to leverage. These include online accounts of leading makers and hardware providers. I also include links to resources where they can find new ideas, such as Instructables and Thingiverse. Also, the Adafruit corporation (where I buy the bulk of our class components and which does offer an educator discount for large purchases) has both an excellent online bulletin board forum, plus an Adafruit Discord site filled with both paid staff and community contributors that answer questions not only on Adafruit-branded products, but more broadly on CircuitPython as well as Arduino and Raspberry Pi work. I often admit to my students when they ask a question that I can’t answer, but a posting to the Adafruit Discord and/or forum will almost certainly yield useful feedback within a day. We also use a Slack channel for class and students are encouraged to ask on Slack first. This creates a repository of course knowledge and encourages a spirit of students helping students.
  • Leverage Campus Resources: Our campus recently opened several MakerSpace and classroom lab facilities. Staff that run these spaces are very well trained and have kindly run portions of my course (e.g. a soldering lab, a class on using Adobe Illustrator for laser cutter use). Students are required to get training on MakerSpace equipment (laser cutters and 3D printers, with other training optional) so each student is ready to fabricate enclosures or other components for class projects.
  • Require Fabrication Before Projects Are Due: I’ve learned that requiring students to design and build an electronics enclosure using laser cutters, solder components, and to 3D print parts, all helps one march up a learning curve so that projects are of a higher quality.
  • Incorporate Projects: Our class requires three student projects during the course of the semester. Students are required to create an Instructable for each project, which creates an archive of student learning and help for future classes (be sure to create a page with student project descriptions & instructable links & make this accessible to current students). Our first individual project is simply “Make Art” – which has no definition, but which students are told can involve adding interaction (touch, sensors, lights) to an existing artwork. This could also involve additional art: wearables, textile art, LED/light-based art, and more. The second is a single or two-person project where students create an Assistive Technology to be used by Boston College Campus School – an on-campus program for students aged 3 to 21 that may have a range of very severe mobility and cognitive challenges. Finally, students complete an individual capstone project that is unrestricted. Projects also offer opportunities for students who may perform better with unstructured creative ways to demonstrate learning rather than rigid test requirements. I also provide no grading rubrics other than to share: Less than a B – a project that does not function and/or fails to demonstrate a breadth of learning and complexity in a competitive collegiate course. B – a functioning project that adequately demonstrates course concepts. B+ – a project that shows a broad understanding of course concepts and that is presented in a durable, attractively housed enclosure. A- – an excellent project that goes beyond course concepts to extend course concepts with new learning applied in a novel way. A – quite rare. A project that is truly and clearly exceptional when compared with peer work in the current and prior courses. Such projects are impressive enough that I’ll mention them to my family and other faculty. I’ll often state that a lack of clear evaluation rubric reflects what students need to do in their roles post graduation. No one gave Apple a rubric on how to create the iPhone or have success with its other products. 
  • Celebrate Student Accomplishment: Social media is a great way to share what students have done. Take and share videos and photos of student work. Adafruit often includes projects tagged with #CircuitPython in their weekly newsletter to over 10,000 users (signup for this if you haven’t already). Several of my students have also had their work featured by Instructables or shared in social media posts by Arduino. This also helps raise the class’s collective bar for excellent performance. Finally, I create compilation videos throughout the semester & share them with the next semester’s class, as well as with University Communications and via my personal channels such as LinkedIn, Instagram, Twitter, and Mastodon (where many former students and current employers can see student accomplishment). You can see examples of some of these videos, below. Everyone loves it when their work is noticed and generates positive engagement.
  • Minimize Breadboarding: While my students learn and need to use a breadboard, poor wiring can get in the way of student learning. When possible, I try to have my students use sensors and other devices that leverage the STEMMA QT standard. Note that STEMMA QT is different from STEMMA. The “QT” variety is the same as QWIIC by SparkFun. This standard lets I2C devices be connected to devices by simply plugging into a connector. Devices can also be daisy-chained together. STEMMA QT ports are available with alligator clips so they can be easily attached to the CircuitPlayground, or with pin connectors, so they can be plugged into a breadboard for use with the Arduino Nano and Raspberry Pi. Minimizing wiring and resistor work and making component adds as quick and standard as possible helps students do more, more quickly, and with less likelihood that they’ll make a simple wiring or component error. 

If you use these materials, PLEASE let me know! It’s hugely motivating to know the work I share is actually being used and has an impact.

Best of luck & keep hacking!

Prof. G.

A Video Selection of Student Work:

A look at Physical Computing
Student Projects – Fall 2022
Raspberry Pi Robots w/Mosquitto, MQTT, App Control, and More! – Fall 2022
Student Projects – Fall 2021
Assistive Tech Projects – Fall 2021
Back To Top