I have given a series of workshops across Europe on microcontrollers programming (Arduino) and creative coding (Processing). Workshops have spanned from beginner to advanced levels, tackling the fundamentals of programmation in order to bring ideas to life.
Each workshops were individually catered to the level of the participants attending, with the aim to provide a challenging but insightful learning environment that builds up skills and confidence so that participants are able to move forward with their own projects beyond the class.
The workshop structure usually starts with an overview of the Arduino platform, an introduction to coding and electronics, and then onto a specifically designed project for the group. The aim is to familiarize the class with the basic input/output protocol as well as the various types of sensor/actuator that are commonly used. Past projects have included the creation of an RGB mixing lamp using various sensors that participant could use during the workshop.
Every workshop I've given has not only enthused the participants but also myself, as seeing the quick progression, especially from complete beginner to capable maker, is always rewarding.