Course Plan - Griffith-ICT/1701ICT-Creative-Coding GitHub Wiki
Introduction
- Welcome to course
- Creative - part of BCIM and QCA (creative courses)
- Coding - provides the 'interactive' part of BCIM, draws from ICT strengths
This course teaches a few things:
- Programming
- In the modern world programming is a vital skill
- Many jobs now depend on programming
- This course is designed as a gentle introduction to programming, we will be learning JavaScript
- Interactivity
- A pure design program may not cover interactivity
- Programming allows creative works to become interactive
- Procedural art
- Some art is most easily generated procedurally
- An example is art generated from a large dataset
- For example, visualisations
These three things are the core focus of the course: Programming fundamentals, Interaction, Procedural art/Visualisation
The tool: p5.js
The programming world consists of a plethora of languages, libraries, and tools. Where to start?
With a focus on visualisation and interaction we need a language that is suited for visual presentations, is easy to learn, and supports interactivity.
JavaScript is a great language, as it forms the foundation of the web (inherently visual and interactive).
Early computers weren't visual and typically had very primitive forms of interaction. As a result many early languages weren't designed for visualisation or interaction. JavaScript is one of the few languages designed from the beginning for interaction which has become very popular, primarily by being the language of the web.
Ben Fry and Casey ... realised that creative coding was unnecessarily difficult with standard languages and tools and in ... developed Processing. Processing is based on Java, a language which can be notoriously difficult to master, but Fry and ... were able to strip out the complex parts and build a very approachable tool. The interactive web and JavaScript have taken off in the last few years and as a result a JavaScript version of p5.js has been developed.
p5.js is JavaScript, but it won't be able to run standalone in a normal web page without the associated p5.js libraries, which have two purposes:
- Make JavaScript easier to write for beginners
- Tailor the coding environment specifically for interactive and visual tasks
Note that JavaScript has grown into a comprehensive programming language that can rival many other successful languages like Java. p5.js provides a 'sandbox' environment that limits it somewhat to specific tasks around visualisation and interaction. However, the skills you learn in this course with JavaScript will be mappable to other uses in future courses such as the Interactive App Development course where you will be using JavaScript for interactive websites.
p5.js is just a tool and there are many other alternatives. The most important aspect of this course exploring how to create interesting visualisations and interactions.