Yesterday was the first of our 5pm Arduino workshops, and it was a lot of fun! Rhett (our workshop participant) was particularly interested in how the Atmega328 chip (the microcontroller on the Arduino Uno) handled the inputs and outputs from a hardware perspective. So I showed him the difference between low impedance outputs vs the high impedance inputs and how the easy to interpret 'digitalWrite' function runs the underlying lower-level code to set different registers on the Atmega328.
By the end of the workshop we'd covered using the digital and analogue pins as both inputs and outputs, and making that data easy to rea by exploring the serial interface which can print values back to the computer. Whilst we didn't cover everything under the Arduino name, it was great fun to explore every concept at a deeper level, and really understand the 'why' behind what was going on.
We use the Sparkfun Inventors Kit with a genuine Arduino Uno for our Arduino Workshops, and as you can see, Rhett was pretty stoked!