View on GitHub


Bush School Interactive Digital Media Design Course

Bush School IDMD Spring Semester 2021

IDMD - Interactive Digital Media Design

Software influences all aspects of contemporary visual culture. This course is an introduction to computer programming within the context of the visual art. Students in this course will learn the fundamentals of computer programming – conditional control structures, iteration, data structures, functions, classes, objects, and event-driven design. We will create projects based on student interest including, but not limited to games, machine-learning inspired art, simulations of physical, biological and social phenomena.

We will learn and create using the programming language Javascript and the library p5.js, a full featured library that allows one to create interactive digital art for the web. Below is an example of a game you could develop using P5JS and Javascript!

Bouncing Bubbles Model Javascript Program

alt text

Click here for live code of bouncing bubbles and try clicking them inside resulting new tab or window. Like what you see? This course will be all about developing skills to simulate nature on your computer in a fun, engaging manner and learn Javascript on the side!

Remote/Hybrid Classroom Applications

In our IDMD classroom we are already using tools and techniques that are naturally adapted to a remote learning format. We will continue using our already established tools and techniques for learning IDMD. We will add to that, a video conferencing solution to complete our toolset needed for remote learning! All applications (except email) are to be run using your Chrome Browser on your laptop.

  1. ZOOM for IDMD - video conferencing application - join here each day and time IDMD classes are held
  2. IDMD WEBSITE - lessons, exercises, projects, student-portfolios, references
  3. Google Classroom - code extracts, worksheet and document submissions, additional materials
  4. GITHUB repository - code submissions for exercises and projects, published student portfilios
  5. P5JS Web Editor - web code editor for p5js
  6. Student Portfolios - Links to Student Porfolios
  7. IDMD Slack Messaging - Links to IDMD Slack Messaging for Code Extracts etc.
  8. Online textbooks - Getting Started with P5JS & Learn Javascript with P5JS
  9. Bush PORTAL - links for all tools, official assignments, schedules, syllabus, grade rubric
  10. Conference Appointments:
  11. EMAIL - check your Bush email when all other forms of communication fails!

2021 Weekly Schedule

alt text

On-Campus Schedule

alt text

Remote Schedule

alt text

Expectations for School Work

alt text

A Reminder

We are all going through some extraordinary times due to the coronavirus. I would like to ask you to be safe and considerate of others. Let us take time to be vigilant about wearing masks, washing hands, not touching our face and avoiding being in large groups. Most of all, be calm about things beyond our control.

alt text

Course Documents

Learning Modes and Typical Student Workflow

Learning by Doing First - Student-Based Asynchronous Workflow

In this mode of learning we will simultaneously start a consolidatded student-paced session spanning multiple P5JS topics, supported by working on visual and creative projects within Paired Programming teams. Subsequently we will use the online text books for a more complete discussion of ideas and creative extensions. We will mostly be using this workflow model, switching to Synchronous in small bursts as directed by your teacher or as needed to support student needs.

Doing by Learning First - Lecture-Based Synchronous Workflow

We will use this method of learning sparingly, reserved for difficult topics that might require a lecture-based instructional unit. The lectures below are designed in that manner and always available as a reference while we live in the world of Asynchronous “Learning by Doing First” model above.

Mini Lesson for newly admitted Upper School Students!

Click here to access mini lesson


Week of Jan 4

Topics: Installfest, git, github, why p5.js, environment setup, using the reference, digital color, coordinate system

Week of Jan 11 & 18

Topics: Programming flow, animation loops, functions, parameters, variables, max, min, sound

Week of Jan 25 After Orientation

Topics: Conditional statements, logical operators, events, mouseX, mouseY, mouesIsPressed, frameCount, random, dist, mousePressed, mouseReleased, max, min

Week of Feb 1 - Review & Code Exercises

Week of Feb 8 & 15th

Topics: keyPressed events, while and for loops, using text and fonts, using images

Week of Feb 22 After Mid-Winter Break

Topics: Review for loops, while loops, arrays, return statements, data vis

Week of Mar 1

Topics: Continue for loops, while loops, arrays, return statements, data vis

Week of Mar 8

Topics: Tweening Shaking Timer

Week of Mar 15 - Short comments week

Topics: Review_Catchup

Week of Mar 22

Topics: Repl editor, Debugging, Perlin Noise

Week of Mar 29

Topics: 2D & Dynamic Perlin Noise, Sliders, html text, Particles

Week of Apr 5

Topics: Catch-up with Pending assignments & projects

Week of Apr 19 After Spring Break

Topics: Recursion, Fractals

Week of Apr 26

Topics: Recursion, Mandelbrot Set

Week of May 3

Topics: Objects, Array Lists

Week of May 10 Final Project

Topics: Catching-up on assignments and 1-1 Conferences

Final Week of Semester!


Course Credit

This course draws from the materials used in the UW Human Center for Design Engineering Master of Science curriculum. Significant credit is also due to the many member founders of the Processing Foundation whose tireless efforts have advanced the cause for open, accessible, and free CS education across the world.