Teaching Arduino---but not just "monkey see monkey do" I've been looking for peer instruction style questions for an intro to Arduino workshop, but I haven't found anything. Besides not seeing PI materials, it's hard to find any materials where a student has to self-explain their own knowledge or discuss with classmates. Most resources are in a tutorial style where the student is expected to essentially copy a given configuration. I'm worried that this will lead to low understanding and not change students' misconceptions.

I want materials that ask students to discuss their understanding of


How an LED light works
How digital pins are different than analog pins
How code is sent and stored on the Arduino board
What functions like digitalWrite() and setup() actually do
Ideally, given that you know so far, how would you _____ ?


Do you know of any such materials for Arduino?
This sounds a little bit like an X-Y problem. When you're using micro controllers in a computer science class, what is it that you're trying to teach? How to write a for/while loop to satisfy an abstract line of pseudo-code, or the joy of making yourself something that previously you have only seen as an expensive gimmick in a shop?

I think there are similarities in science practicals. There, there is a precise script to follow, and often not much scope for 'now make up your own experiment to mix random chemicals'. What you're teaching is (a) a re-enforcement of the theoretical work through application and repetition, and (b) the practical, hands on skills of real development. 

What we do in the real world (particularly in the embedded device space) really is find someone else's description of what they did, then copy it and make sure you can also get it to work. Finally, you make your own version better. Along the way, you learn lots of vitally important practical skills. Assembling the project isn't the only goal, it's almost an excuse for the activity. 


Debugging is harder. The 'debug by random iteration' approach won't work.
Results are tangible - you can hold them. You can flash lights, react to stimulus, move things. This teaches students about real applications, not just web pages and databases.
MCUs are more resource constrained. You can make optimisation a necessary part of the task, not just a pointless exercise.
Each student will put their own twist on the exercise, drawing in other skills.


Picking out the current micro:bit ideas on twitter:

Robot Football
NeoPixel Clock
An optical indicator for a S/W project (I think, was a bit unclear)
Arcade game on a 5x5 display

If I'm interviewing, I can ask about one of these projects, what was hard, what was interesting, what comes next. That tells me something about a candidate that no 20 minute coding test will. All of these projects would take any of us here some time to complete too. 

If I gave you an arduino and a kit of hardware, I'd say 'do the blink LED exercise first', to make sure you know how things behave when they work. Then a few more simple follow on activities. Jumping straight in at the deep end is too big a step - we set up commercial products just the same too, with easy step-by-step instructions (plus videos). People still come back with questions - our first question is always 'does binky work?'