Bush School IDMD Spring Semester 2021
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!
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.
- ZOOM for IDMD - video conferencing application - join here each day and time IDMD classes are held
- IDMD WEBSITE - lessons, exercises, projects, student-portfolios, references
- Google Classroom - code extracts, worksheet and document submissions, additional materials
- GITHUB repository - code submissions for exercises and projects, published student portfilios
- P5JS Web Editor - web code editor for p5js
- Student Portfolios - Links to Student Porfolios
- IDMD Slack Messaging - Links to IDMD Slack Messaging for Code Extracts etc.
- Online textbooks - Getting Started with P5JS & Learn Javascript with P5JS
- Bush PORTAL - links for all tools, official assignments, schedules, syllabus, grade rubric
- Conference Appointments:
- Async Zoom Scheduler - Wed/Thu 9:00 AM to 5:30 PM
- Ad-Hoc 1-1 Conf Scheduler Weekdays: 3:00-8:00 PM
- EMAIL - check your Bush email when all other forms of communication fails!
- Daily Health Screening before Campus Arrival
- Faculty/Staff On Campus Form
- Lunch Assignments & Remote Students Roster
- Assigned Classroom Spaces for Hybrid Schooling
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.
- Course Website: IDMD 2021 Website
- Bush Portal: IDMD Portal
- Online textbook: Getting Started with P5JS
- P5JS Basics: Wiki Page for Help Examples and Reference
- Other Course materials: Google Drive IDMD
- Assignment Submissions via Your Github Site
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.
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.
Topics: Installfest, git, github, why p5.js, environment setup, using the reference, digital color, coordinate system
Topics: Programming flow, animation loops, functions, parameters, variables, max, min, sound
Topics: Conditional statements, logical operators, events, mouseX, mouseY, mouesIsPressed, frameCount, random, dist, mousePressed, mouseReleased, max, min
Topics: keyPressed events, while and for loops, using text and fonts, using images
Topics: Review for loops, while loops, arrays, return statements, data vis
Topics: Continue for loops, while loops, arrays, return statements, data vis
Topics: Tweening Shaking Timer
- Overview
- Exercises and Project submissions ahead of comments
- Tweening, Random, Shaking
- Timer based trigger exercise
Topics: Review_Catchup
- Online Book References
- Open your local copy you have previously downloaded to yout laptop. If not download above and open locally.
- Chapetr 9: Functions
- Chapter 11.1 to 11.8: Arrays
Topics: Repl editor, Debugging, Perlin Noise
Topics: 2D & Dynamic Perlin Noise, Sliders, html text, Particles
Topics: Catch-up with Pending assignments & projects
Topics: Classes, Objects, Interactions, Animations
Topics: Final Project Assignments
Topics: Submit Final Project
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.




