/MSc-Coding-1

Course materials for MSc Coding 1

Coding One: Advanced Creative Coding

Professor Mick Grierson

Introduction

Welcome to Coding One: Advanced Creative Coding. In this course we look at a range of methods for working with media through programming in ways that are specifically useful in Creative Computing contexts. We also refine and develop our understanding of core programming concepts and computational techniques used by artists and those in the creative industries generally.

The course is divided in to 2-week blocks that focus on specific areas, exploring them in ways that relate to certain types of coding expertise and technical approaches. The course is 'Advanced' in terms of the concepts we will engage with, not necessarily the programming approaches that we will use. However, a basic background in programming is assumed - but don't worry if you are just starting out. Those who are just beginning or need to refresh their memory of basic concepts can always take this Creative JavaScript crash course which you can do in a couple of hours :

Schedule:

The schedule is a journey through different dimensions. We start in 1D, then progress to 2D, then 3D, and end up in ND.

Sound and Signal processing - Week 1 and 2

  • Looking at waveforms and making basic synths
  • Using filters and waveforms for altering sounds
  • Building a drum machine
  • Creating soundscapes
  • Programming knowledge - basic structure, variables, arrays and conditionals

2D graphics - Week 3 and 4

  • Image representations
  • Image filters / convolution filters
  • Creating 2D patterns with polar coordinates and loops Using other algorithms for generating patterns (fractals, packing systems etc.)
  • Programming knowledge - intermediate structure, more arrays, more conditionals, for loops, polar coordinates, 2D vectors

Recap and revision - Week 5

3D graphics - Week 6 and 7

  • Creating a 3D engine from scratch
  • Creating 3D geometry from scratch
  • Fixed function pipeline approaches
  • Shading and lighting
  • Programming knowledge - 3D vectors, creating perspective, using matrices for transformations

Shaders - Week 8

  • Fragments shaders
  • Creating basic shapes, lines and noise
  • Vertex Shaders
  • Creating geometry
  • Modifying and lighting Geometry
  • Programming knowledge - GLSL concepts, variables and structure, contemporary graphics pipeline

Assessment - Week 9

  • Students work on their materials for submission

For this course, assessment is through practical project and weekly homework projects. Briefs and Dates for assignments will be added to the moodle page by the CCI Admin team during this term.

How we will learn

How we will learn

  • Explore application ideas slowly
  • Incorporate ideas from sound, then apply these to graphics
  • Look at a range of image and video approaches (3D etc.)
  • Generate artworks as outcomes.
  • Move back and forth between ideas and technical concepts
  • Gently introduce and refresh technical topics (Variables, Conditionals, Loops, Functions, Objects, objects, types, functions, conditionals, loops.
  • Explore through creative application / sound and image making
    • If think you already know what you’re doing, try it this way instead. It’s good fun :-)

Getting started using JavaScript