Szymon Kaliski

OFCourse

Teaching creative coding in Shanghai

I've spent last two months of 2016 teaching intensive eight week creative coding course at OFCourse in Shanghai.

All my previous experiences with teaching were short workshops (2-3 days), so preparing enough material for eight weeks was an interesting challenge. Classes included Processing, Arduino and Creative Lab, where students worked on their own projects. It was exciting to go deeply into topics, explore different aesthetics and interactions, something that's not possible during shorter workshops.

On Processing side, we started with introduction to programming, explored functions, and later classes. Once we got good foundation for how objects work, we used Minim for making sounds, OpenCV for interacting with camera, and even some Machine Learning with Wekinator.

Particles interacting with mouse made as introduction to arrays

Introduction to edge detection with OpenCV

Live camera image classification with Wekinator

We explored world of electronics with Arduino, starting from simple LED examples, through segment displays, LED matrixes, to working with different types of motors, and most importantly communicating with Processing through serial connection. This last part was very inspiring for students, and almost all of final projects featured some kind of interaction with physical world.

One of midterm projects made by students

From my experiences, the hardest thing for students to understand was scope, where variables come to life, differences between global and local, and everything connected to that. It also seems very strange that even with all the tools we have, it's still near impossible to teach without markers and whiteboard.

I'm glad I had the opportunity to be involved in this course, I'm a firm believer in giving back to community and sharing what I know. It's also very encouraging to see students making progress, and having those little eureka moments when things start to click.

Code we created during workshops is available on github: https://github.com/ofcourseio/OFCourseFall2016