Creative Coding

Creative Coding

Cybernetic serendipity.

Brief

There are many reasons to write computer code, and many have argued that learning how computers work and how to make them work is a fundamental competency in today's world. But learning something simply because it's important is hard to get excited about. Instead, why not make computational literature, art, or music? Programming is inherently a creative activity, but beyond that, artists, and writers have worked with computers in creative ways for nearly as long as computers have been around.

In this module, you'll learn about some of the interesting things people have done with computer code, and you'll experiment with your own ideas.

Learning Objectives

  • Explore how people have used computers to create art, literature, music, and many things that don't easily fit it into those categories.
  • Make something of your own using code.

Options and Variations

Since there are two learning goals in this module, it is possible to approach the work from either end: start by learning more about what's already out there, or start by jumping in to some code and seeing what you can do. If you choose the former, you may enjoy a deep dive into a specific genre or a specific creator. If you choose the latter, you may find it helpful to start with a tutorial such as Codecademy's JavaScript curriculum or Daniel Shiffman's P5js videos.

A third approach, which may be more difficult, is to first imagine something that you think needs to exist in the world and then figure out what you need to learn and do to make that happen. Here are a few suggestions:

  • Make a Bot. Cheap Bots Done Quick was a popular service for making Twitter bots that is now defunct, but a Blue Sky version of it lives on in "Blue Bots, Done Quick!". Make an account for your bot, use that bot account to log in to the BBDQ website, and program the bot's output with Tracery code. There are also several "freemium" services for creating Discord bots.
  • Modify an Existing Work. Once you learn some basics of HTML, you should have all you need to know in order to modify existing HTML projects. Choose a web poem by Nick Montfort, for example, "Through the Park" or "Taroko Gorge", and modify its data to make it something else.
  • Emulate a grid. One of the pioneers of computer art, Vera Molnár, created striking, deceptively simple compositions out of decomposed grids and other patterns. Write some code that emulates one of her works.
  • Draw a new emoji. Use code to draw the shapes necessary to render a new emoji.
  • Generate a novel. Even if it's not November, you can complete the NaNoGenMo challenge and write code to generate a book of at least 50,000 words.
  • Generate a landscape. Make land.
  • Custom Pixel. Process an image so that each pixel is replaced and rendered in some new, arbitrary way.
  • Data Portrait. Create a visual representation of something quantifiable about yourself.

And to learn more about creative programmers, explore literary works in the ELMCIP database or the [Electronic Literature Collection], or research any of the following individuals (in no particular order): Vera Molnár, Manfred Mohr, Tega Brain, Lauren Lee McCarthy, Ranjit Bhatnagar, Liza Daley, Nick Montfort, Allison Parrish, Kate Compton, Lillian-Yvonne Bertram, Rosa Menkman, Nettrice Gaskins, Cory Arcangel, Lingdong Huang, Goal Levin, Darius Kazemi, Andy Wallace, Sam Lavigne, Everest Pipkn, Erik Loyer.

Making it Meaningful

Examples

Resources and Tools

Bibliography

Hartman, Charles O. Virtual Muse: Experiments in Computer Poetry. 1st edition. Hanover, NH: Wesleyan, 1996.
Kuhn, Virginia. “The Rhetoric of Remix.” Transformative Works and Cultures 9 (March 30, 2012). https://doi.org/10.3983/twc.2012.0358.