Teaching Creative Coding
I taught a creative coding workshop in February 2023. Below is a reflection on how it went and what I would do differently next time.
The workshop was taught to twelve teens ages 12 to 19, over five days, for five hours each day. ()], I was pretty happy with the results! The students seemed to be improving day to day, most of them found the subject matter engaging and the work they created was amazing~
What went well #
- Having all the material readily available on a website
- I taught new topics via live demos and verbal explanations but I also had equivalent written tutorials on the workshop website. The students would use the tutorials in the latter half of the workshop to fill in gaps, copy-paste code and find additional materials.
- The website also allowed advanced students to move ahead at their own pace.
- Teaching with the fantasy console Pico-8
- Pico-8 is a great platform for learning because its built-in constraints make it fun to create with. Scripting in Lua with a 128x128 display and only 16 colors helped the students focus on their work rather than going into technical rabbit holes and feeling crippled by the amount of options you would find on other platforms.
- It’s also free and runs in the browser thanks to the education edition! Which meant that the students could keep creating and learning even after the workshop.
- Structuring the class into learn + explore
- Class would start with an introduction to a new topic with several exercises along the way, after which the students could work on whatever they wanted. During the latter period I would circle around helping out 1-on-1. The students would often use the new techniques and concepts they were taught because they were excited to explore their possibilities.
- Both parts were driven by “learn by doing”.
- Starting with some motivating examples
- Each day started with a showcase of cool visauls the students would be able to make if they learned what we were about to go over. I think this encouraged them to be more engaged through some of the boring parts of the lessons because they knew the payoff would be good.
- Each day started with a showcase of cool visauls the students would be able to make if they learned what we were about to go over. I think this encouraged them to be more engaged through some of the boring parts of the lessons because they knew the payoff would be good.
- Printing out physical cheatsheets
- Pico-8 has a really handy cheatsheet that I printed out on large thick paper for all the students. This helped them tremendously when they forgot syntax or were curious what the api had to offer.
- It also served as a nice memento - some of them took it home :)
What I would do differently #
- Provide a lot more template code and examples
- One of the difficulties of teaching is the wide range of experience, personality and working style the student cohort might have. Some of the students who were less comfortable with coding from scratch relied on boilerplate code to iterate and create. These students would learned a ton and create cool stuff by fiddling with the tutorial code but they would get stuck when they ran out of material. Others would get stuck simply because they couldn’t come up with ideas for what to make with the tools they had learned. I wish I had provided them with a ton of more code examples that produced a variety of visuals.
- One of the difficulties of teaching is the wide range of experience, personality and working style the student cohort might have. Some of the students who were less comfortable with coding from scratch relied on boilerplate code to iterate and create. These students would learned a ton and create cool stuff by fiddling with the tutorial code but they would get stuck when they ran out of material. Others would get stuck simply because they couldn’t come up with ideas for what to make with the tools they had learned. I wish I had provided them with a ton of more code examples that produced a variety of visuals.
- Help students fix their own solutions rather than offering alternatives
- Sometimes a student would call me over because they were stuck trying to implement a solution that they had thought of. In certain cases I would explain to them why their approach was flawed and offer a more elegant or intuitive solution. I stopped doing this because it invalidates the hard work they put into coming up with their solution and attempting to implement it. For the latter half of the workshop I tried to help students make their own solutions work even if they were suboptimal. And then of course, after all the hard work, I would offer alternative solutions for perspective.
- Sometimes a student would call me over because they were stuck trying to implement a solution that they had thought of. In certain cases I would explain to them why their approach was flawed and offer a more elegant or intuitive solution. I stopped doing this because it invalidates the hard work they put into coming up with their solution and attempting to implement it. For the latter half of the workshop I tried to help students make their own solutions work even if they were suboptimal. And then of course, after all the hard work, I would offer alternative solutions for perspective.
- Find a way to encourage more collaboration
- There wasn’t much collaboration during the workshop. Next time I would like to find ways to pair students and have exercises where pairing comes naturally e.g. combining two effects to create one visual.