Skip to content
Nick Briz edited this page Nov 22, 2022 · 4 revisions

Collaborative Artware Wiki

MAAD 23655 (Autumn 2022)

In this course we'll be working together as an open source arts collective. We'll produce an online app which explores the expressive space between software as a tool and software as art. We'll learn the processes and tools that professional creative technologists use when working together to produce "software art" projects. This is an intermediate level coding course with work being predominantly written in JavaScript (server side and client side). While proficiency in JavaScript is not required, it's recommended that students have a background in basic programming concepts (data types, variables, functions, conditions, loops, etc) as this course will build on those to introduce more intermediate level concepts and programming paradigms.

On this Wiki you'll find a collection of class notes, references and documentation. This will be updated throughout the quarter.


process / workflow


misc dev notes


video tutorials

the DOM API (front-end)

The DOM (document object model) API is the most fundamental browser API, it's how we manipulate our page's HTML/CSS through JavaScript and forms the foundation of any web application.

DOM Events (front-end)

"event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions, sensor outputs, or message passing from other programs or threads", the DOM provides us with an API for doing just that in the browser.

the Fetch API (front-end)

intro to AJAX (Asynchronous JavaScript)

When we visit a website our browser makes an HTTP request for that HTML as well as an subsequent HTTP requests for loading any assets (fonts, images, videos, etc). The difference between a web "page" and a web "app" is the ability to dynamically change the content of our site through user interaction and other events, which often requires the ability to make our own HTTP requests.

the Fetch API (front-end)

accessing 3rd Party REST APIs

The most common use case of the Fetch API is making HTTP requests to servers on the Internet running "REST APIs", which enable us to integrate third party data or services into our own web applications. You can find the finished example from this tutorial on the class GitHub

custom server (back-end)

In this tutorial we'll learn how to create our own custom server from scratch using nodejs, as well as learn how to import JS modules (libraries and frameworks) from npm before learning how to create a server with express.js, the most popular framework for creating servers in JavaScript today.

anonymity (back-end)

online surveillance (part I)

We hear a lot about online "privacy" in our present age of social media, big data and surveillance capitalism. Things like "cookies", "IP Addresses" and "location data" are often discussed in conversations about "online tracking" but we rarely ever understanding exactly what any of that means at the level of code. In this tutorial we'll exactly how all that works.

tracking (back-end)

online surveillance (part II) / custom REST API (part I)

In this tutorial we'll build on some of the concepts we learned in the last one to explore one of the more contemporary methods used to track users online. We'll also start learning some of the concepts necessary for creating our own custom REST APIs which we will build on in the next tutorial.

custom REST API (back-end)

custom REST API (part II)

In this tutorial we'll build on some of the concepts covered in the last tutorial where we started discussing how to create our own custom REST APIs. This enables our client side code to send and receive data to/from our server, where we can store that data.