The New School Archives Digital Collections

Related people/organizations

Andrew Cotter (designer)
Aya Karpinska (thesis advisor)
Loretta Wolozin (thesis advisor)
Jesse Alexander Madden Harding (thesis advisor)
Chris Prentice (thesis advisor)


May 17 2018


In programming education, students are often first introduced to the simplest concepts of a language before more complex topics. Their initial understanding of data types is applied to understand logic statements, which then abstract up into functions and classes. This approach is often referred to as the 'Procedure-First' method. This problem with this approach arises from a semantic misunderstanding of the difference between 'simple' and 'easy.' Definitionally, something simple is irreducibly complex, meaning that it can't be broken down further. Conversely, something easy is familiar or ready-at-hand. In this way, the progression from simple to complex isn't necessarily congruent to the progression of easy to hard. In this way, what is complex in programming can be easier to understand than what is simple. This is also in line with how people learn many other processes. If you want to teach someone how to drive a car, you don't start with the lower levels of machinery like the carburetor, you start from the highest level of abstraction: the steering wheel. This method of teaching programming is known as the 'Model-First' approach. Grokking Creative Code aims to test and apply the Model-First approach as an online book of tutorials with interactive sketches, which can help independent learners advance from a post-beginner skill level into an intermediate level. I have been testing this method by showing the tutorials I've written to fellow students. Before and after they go through the tutorial, they describe how they would approach the problem that the lesson addresses. Although an imperfect method of evaluation, this is how I've been able to gauge the relative degrees in confidence and understanding that they've gained. With this feedback in hand, my ambition is to thoughfully implement the Model-First method of teaching, help popularize the method, and promote its broad application to other levels of creative coding.



Use Restrictions 

There’s more! What you see on this site is only what is viewable online. Please visit our website to find out more about what’s in the archives.