Introduction to Programming for Non-Majors
a computational media approach | Gillian Smith | CS 1004 | WPI
These course materials are for CS 1004: Introduction to Programming for Non-Majors, taught at Worcester Polytechnic Institute. This course is taught using p5.js, a free and open-source Javascript library for creative coding that is based on the Processing project. The course is heavily project-based, and uses a form of ungrading assessment model that relies heavily on self-reflection and self-evaluation.
Students complete Skills Labs that offer some structure for reinforcing core concepts, but still give significant room for creative expression and experimentation:
Lab 1: Three Points in Space - getting started with p5.js, procedural code execution, calling functions
Lab 2: Generative Art - variables, control flow (if/else, for loops), user input (keyboard, mouse)
Lab 3: Image Processing - loading images, arrays, pixels, considering efficiency/complexity
Lab 4: Data Visualization - strings, loading data from a file, creating/modifying simple objects
Students also work in groups to complete term-long projects (approximately 5 weeks of programming time). These happen in parallel with the labs; some students will learn concepts from labs early, others late. The Project Guides section includes an outline of how projects are structured each week.
Finding Inspiration - based upon declared areas of interest, students seek out examples of programming used in that domain
Project Goal Setting - once teams have been formed, students get to know each other, create asset maps to identify strengths and areas to learn, and define an initial project goal and plan for first week
Project Sprints - each week, students report what they have completed, what they did not complete, and what they plan to do for next week. They also identify questions they have or problems they are running into, for course staff to review and offer assistance.
Final Project Milestone - students submit their final working project and present it in class, as well as a group-written postmortem on the project
There are a number of class activities that introduce core concepts. Some are documented in this repository; most are improvised.
WPI teaches undergraduate courses on 7 week terms. It's a fast pace! Each week has roughly:
2 hours of in-class activities focused on the concepts needed for the next lab, where they program alongside lecture, with frequent breaks for checking progress, answering questions, or challenging them to do more
2 hours of time to work on projects
1 hour of time to work on skills labs (with TA, in 20-person lab setting)
up to 10 hours of students working outside of class
Last updated
Was this helpful?