Online Reference Materials
p5.js is a JavaScript library which makes coding accessible for artists, designers, educators, and beginners. It is a member of the Processing family of free, open-source arts-engineering toolkits. Here are some quick links you may find helpful:
- p5.js Reference
- p5.js Examples
- W3 Schools JavaScript Reference
- DevDocs.io JavaScript Reference
Textbooks and Examples Shown in Class
This semester we will be dipping into the following two textbooks:
- Lauren McCarthy, Getting Started with p5.js (O’Reilly)
- Dan Shiffman, Learning Processing (Elsevier)
These books provide example programs written for p5.js on Github. We will encounter and study many of these examples in class:
- Code examples for Getting Started With p5.js
- Code examples for Learning Processing (p5.js version)
Regarding the Learning Processing book, please note the following:
- Dan Shiffman has made an excellent website providing very helpful videos.
- The (paper) book uses examples written in Java, but Shiffman’s Github provides versions of those examples in both Java and JavaScript. There are minor differences, but the underlying concepts are the same.
External Tutorials
If you’re feeling lost or falling behind, you may find another online tutorial helpful. It can sometimes help to hear the same material explained by someone else. Check out:
- Khan Academy graphical introduction to JavaScript
- CodeSchool JavaScript Road Trip
- W3Schools JavaScript Tutorials
- Lynda.com JavaScript Tutorials (Note: free to CMU students!)
Similar Curricula
p5.js is used around the world for introductory education in creative coding and media arts. The people who develop p5.js are themselves educators, and in the open-source spirit of the project, make their curricula available online. You may even recognize some of their exercises in our class. Curricula by external educators include:
- Lauren McCarthy’s Creative JavaScript (NYU)
- Dan Shiffman’s The Nature of Code (NYU)
- Dan Shiffman’s Intro to Computational Media (NYU)
- John Kuiphoff’s Introduction to Interactive Computing (College of NJ)
- Paolo Pedercini’s EMS2: 60-210 (CMU)
Here are some other reference curricula for introductory programming education (Note: non-JavaScript):
- Dilsun Kaynar & Penny Anderson’s CMU 15-110 (Python)
- Roger Dannenberg & Jim Roberts’ CMU 15-104, Fall 2014 (Python & Processing)
- David Kosbie’s CMU 15-112 (Python)