GitHub Profile

creative code portfolios

Professional Practice Learning Goal #2 requires that all students present a professional body of work in an online context, demonstrating a critical awareness of audience and selection of work. Because we're exploring the professional practice of creative technologists, our "online context" will be the development of a GitHub portfolio. If you're not already familiar with GitHub, you can think of it as LinkedIn meets Behance for coders and developers. In addition to being a space to share your work and connect with others in your field (potential collaborators as well as recruiters), GitHub is also a space for "maintaining" and "versioning" your code as well as for the structured development of "open source" projects (all of which are concepts we will cover in class).

from the syllabus

If you don't have one already, you will need to create a GitHub account for your online portfolio. If this is your first time setting up a GitHub account, you might consider signing up for the GitHub Student Developer Pack which comes with all sorts of valuable freebies.

Below is the narrative for the first half of the semester. There are various different assignments to choose from (so long as you complete a minimum of two assignments, designated by the red underline). Because everyone is going to be entering this course with different coding experience, everyone will likely start the semester at a different point in the narrative below. Read through the narrative and choose the point that feels right for you.

You're ready to make creative coding a central part of your professional practice...


You've written a little HTML before, and have experimented with some online coding stuff... but you wouldn't really say you know how to code. You're very interested to learn though, and you're willing to put in the extra time it takes to catch up! You wish you had taken Nick's intro course, Net Art && Cultures, but you're excited to hear that he created a playlist of videos that cover most of the basics (how to setup a web project, how to avoid some common mistakes, how to write basic HTML, CSS and a bit of JavaScript, and how to get it on the Internet). So you watch that crash course (~3.6hrs) on YouTube (regularly referencing the description below the video for relevant links).

You take a moment to admire the hand coded sketch you created while following along with the videos, and you feel empowered. You decide to spend a bit more time experimenting with it. Inspired, you remix the code around, deleting a few bits and editing some others. You've got some ideas you're not sure how to code, so using the new web dev lingo you learned from the videos you search on duckduckgo for a solution (you don't trust Google of course, on account of all the data they mine from you). There you come across an answer to your question on a website called stackoverflow, so you copy the code into your code editor and with a few minor tweaks you've got things working (mostly). So you update your GitHub project, copy the URL and proudly submit it to the canvas page as your first assignment.

You've got a GitHub account and you've created a repo, but you don't really get GitHub. You know GitHub has something to do with "open source", which is a term you've heard before and generally understand, but don't know that much about. So you read over Nick's notes on FLOSS (Free/Libre Open Source Software) and check out some of the videos on the playlist he curated, before watching the video he made on the new media concept of "versioning" (~18mins). Having a new appreciation for the history, theory and politics of a movement you've now become a part of, you decide to brush up a bit more on your GitHub skills. You already know how to get stuff up on GitHub using their website's interface (~24mins), but you also want to learn how to do it directly in your code editor (~17mins) and maybe even the terminal (~21mins) (like the l33t h4x0rz do).

You feel good about your GitHub skills, you're no expert but you've got a personal workflow (~19mins) that you're comfortable with. You've already got some experience coding, HTML and CSS (these netnet demos on HTML and CSS are fairly simple for to you), but JavaScript is still something fairly new. You were hoping you'd get to learn it in this class and so you're excited to find out that Nick's got an entire playlist on JavaScript. You watch the first video, an introduction to the concept of "randomness" (~22mins) (a simple idea, yet rich with creative potential). With a newly expanded understanding of software, you're ready to start learning JavaScript. The next video on Nick's playlist explains what JavaScript is (~33mins) before diving into writing it. You watch the subsequent videos on JS variables (~48mins), data types and operators and how to control the flow (~1hr) of a program (both of which are concepts you can review at any time with netnet). After watching the 4th video on Nick's JavaScript playlist on the classic 10print algorithm (~42mins), you've got ideas for a few variations of your own and start experimenting. A couple of hours go by (but you could've sworn you were only coding for a few minutes) and you're pretty proud of what you've created, who knew text in a terminal could look so gorgeous. You update your GitHub repo and submit the URL as an assignment on the canvas page (optionally see starter code on GitHub).


You've got a pretty good understanding of JavaScript, but you want to learn how to take your artistic algorithmic prowess to the next level. You're excited to learn that Nick teaches an entire class on algorithmic composition and he's shared some of the tutorials from that class here. So you start by watching his intro video on Form+Code (~42mins) covering some of the history and ideas behind the practice, before watching the first (~1hr) and second (~53mins) parts of his tutorials on how to create algorithmic visual compositions using the p5.js library. Satisfied with the variation you made through the concepts learned in those videos, you submit the URL to your repo as an assignment on the canvas page (optionally see starter code on GitHub).

You've spent plenty of time experimenting with p5.js at this point and have a fairly decent grasp of the JavaScript programming language, but when you hear the word "composition", you think of music... not visual art. The arts have a clear visual bias, which you've always been a little annoyed with, coming from a music and experimental sound background. So you're pleased to learn that Nick follows these videos with another set on algorithmic music. After watching the intro video on Musical Algorithms (~40mins) and having your prior understanding of originality and authorship shaken to it's core, you decide to take a shot at audio programming, first by watching Nick's video on the basics of the Web Audio API (~1.25hrs) and then part 2 on applying algorithmic concepts to the Web Audio API (~1.5hrs). At this point you've got some interesting ideas, after exploring some of the examples in Nick's interactive Web Audio API notes you copy+paste bits and pieces into your own sketch, push that to your GitHub account and submit the URL to your algorithmic music repo as an assignment on the canvas page (optionally see starter code on GitHub).


At this point, you've got a pretty good understanding of HTML, CSS and JavaScript. After all, you registered for this class because code has been your artistic medium of choice for a while and you're ready to take your practice to the next level. You've been making p5 sketches for a while and what to know what this "Artware". You rather not wait till the middle of the semester to start engaging with some of those ideas so you decide to dive into some of Nick's more advanced tutorials. These inspire all sorts of interesting ideas you turn into artware demos which you submit as assignments on the canvas page.

Before you realize it you've got a couple pretty cool creative code sketches in your GitHub account, just in time too! We've reached the middle of the semester and it's time to start collaborating with others on our class Internet Artware project!