Part One: Conclusions

We've reached the end of Part One, which focused on creative computing. Let's take a bit of time to look back at what we've learned.

Reasoning about code was our first topic, after getting setup and learning the very basics. This culminated in the substitution model of evaluation, and along the way we learned fundamental building blocks such as of expressions, types, and values.

We next looked at structural recursion over the natural numbers, which we used to create fractals, polygons, and more. We saw that the structure in structural recursion gives special reasoning techniques making it easier to work with recursion.

Finally we looked at functions and function composition. We saw that functions give us a form of abstraction that we used in a number of uses, including fold and parametric curves. We saw that composition allows us to create reusable tools, which we put to work producing parametric curves.

Before we set this topic aside let's look at the wider field of creative computing. This survey is not intended to be in any way authoritative, but instead to provide some threads that I found interesting and that you might follow if you want to go further in this field.

Saskia Freeke for many years has posted a daily artwork to her social media. A lot of her work uses simple geometric shapes arranged on a grid, which is very amenable to reproduction in Doodle using the techniques we've learned.

Going beyond grid patterns quickly leads to the complex geometry of Islamic tile work. Craig Kaplan has worked on algorithms to create Islamic star patterns (as well as many other creative ideas in computer graphics.) His papers are quite heavy on the mathematics but you can still get a lot out of just the pictures illustrating the construction.

If tiling is your thing, Creating Symmetry is the best book I know for exploring the mathematics behind it. This is primarily a mathematics book, though one that is remarkably easy to read given it's topic. Nonetheless, I think you will need at least some University level mathematics to make headway in this book.

George Savva creates artworks that make creative use of parametric curves. He also posts detailed breakdowns of the process behind his images such as this post which uses Lissajous curves.

Jared Tarbell is something of a legend in the field of creative computing, and also a co-founder of Etsy. A lot of his work is over two decades old, but it still feels fresh. His Complexification site has just enough detail on his process that it's possible to reconstruct some of his work, whilst his newer site links to the code behind every image.

You can't go far in creative computing without running into Processing and its descendant p5.js. They are probably the two most widely used software packages in the creative computing world, but are based on quite a different programming model to Doodle. You can't go very far in the Processing world without running into Daniel Shiffman and his website The Coding Train, which has many many tutorials on a huge range of topics.

Images are not the only medium for creative computing. Sonic Pi is a programming language for creating music, and Twine is a system for creating non-linear fiction. Physical computing is another outlet.

Ravi Chugh looks at the intersection of human-computer interaction and programming languages. I find his work really inspiring for imagining a different, yet attainable, way of working with computers. Going further afield, Chris Martens looks at the intersection of programming languages and games.

If you have decided you can't live without more creative computing in your life, and the above don't slake your thirst, Kadenze is probably the premier source for online courses. For even more creative computing, many universities now offer degree programs in the field. Notable examples are the Creative Computing Institute in London, and the Tisch School of Art in New York City, but there are many others.