Lessons Learned from Teaching an Arduino Workshop
I love teaching Arduino workshops. Physical computing is a really neat area, and Arduino makes it wonderfully approachable. Last Sunday, I co-taught an introductory Arduino workshop with fellow NYC Resistor member Ryan. This marks the sixth or so such workshop I’ve led, so I wanted to jot down some notes about what makes such an event work. (If you want to see future classes at NYC Resistor, check out our Eventbrite.)
I personally love using the Seeedstudio Sidekick kits in classes like these. They’re pretty affordable and come with all the necessities for most intro Arduino work: a breadboard, wires, resistors, some sensors, a buzzer, LEDs, and so on, all in a convenient and well-designed package. If you’re an educator, I encourage you to reach out to them — they’re very helpful.
For the Arduino itself, you can either use a standard UNO or another similar board. In this class we used the Sparkfun Redboard, which conveniently uses a more common mini-B USB cable.
Timing and Scale
This workshop had nine students, two instructors, and lasted three hours. In the past I’ve taught hourlong workshops to groups of fifty or more where I was the only instructor. In larger settings, putting students in groups will allow them to help each other, making up for the lack of TAs. (It also saves you money on supplies, if you are providing the Arduinos.)
In this workshop, we covered the basics (“what is Arduino?”), and tackled LEDs, light sensing, and making noise with buzzers. For the final portion we combined the light sensor and the buzzer to demonstrate how to mix inputs and outputs. In previous workshops, where students have more programming experience, I’ve managed to cover LED blinking and light sensors in under an hour. Depending on your students’ prior experience with programming and your time and TA constraints, you may cover more or less ground.
With enough time and TA support, you can teach an introductory class to students with no prior programming experience, or to a mixed group. It’s important that you be able to explain to such students how to approach the code, and to give them a set of “recipes” that they can copy character-by-character to get good results. Then, elaborate on how to experiement with variations on the code.
For classes where students already have prior experience with coding or circuit-building, push them to combine their materials in interesting ways.
Fritzing versus Circuit Diagrams
Learning to read circuit diagrams is an important skill, but I don’t think it’s a necessary one for a one-time introductory class like this. Fritzing diagrams are highly visual ways of depicting circuits that mimic the actual appearance of a completed circuit. They’re very beginner-friendly and will save you a lot of time.
It’s important to approach an introductory class with a focus not just on the how, but the why. Explain to students what Arduino could be used for, and show them places where they can see others’ projects.
Leverage Existing Resources
Sites like Adafruit and arduino.cc have good tutorials and resources. Use them! As a bonus, introducing your students to outside resources will demonstrate where they can find help on their own time, after the workshop.
I enjoy teaching these classes, and am looking forward to the next one! For now, we have a NSFW edition coming up in May, which should be a lot of fun.
If you’ve attended or taught Arduino 101 workshops in the past, what are your thoughts? What topics did you cover? How did you keep momentum up during the class? What went well for you, or how did you recover when a class went off the rails? I’d love to hear how you handle things.