Open This Document

Short link to this page:

Class Description

Create cool programs with a variety of projects: 3D graphics and animation, sound and music, speech synthesis and recognition, simple text adventure games, and simulations. Professional programmer Dave Briccetti will guide you through programming in Python, and in JavaScript with the p5.js library, and in creating electronic music using Sonic Pi and the Ruby programming language. No programming experience is required. If you do have experience you’ll still find plenty to challenge you.

See a detailed log from this class in 2019.

Course Materials

We will pull lessons from the following, depending on your interests:

Provide Some Information about Yourself

Please complete this form.

Class Log

June 22

JavaScript and p5.js

Lines sketch

We started with JavaScript and p5.js, learning about the canvas and the background color. We used the line function to draw line segments, and then used the mouse position to place one end of the line segments, creating an interactive artwork. We worked through Challenge 1 on the course web page. One student finished Challenge 2.

June 23

For advanced students who finish exercises early: Play with and modify this adventure game.


We reviewed the solution to the multiple lines program, and started on Challenge 2. Students might finish Challenge 2 for homework, and may review the solution video. We began work on a star field program, practicing with the random function.

June 24


We reviewed the resources in the p5.js course. We created a random star field program with different colors, and then did Challenge 3. We began working in 3D, making a sphere and a cube, and learned how to rotate it on any of the three axes. We started on a rising elevator program.

Rising Elevator

June 25


We made the elevator car rise, using a variable and decrementing it in the draw function. We used push and pop to isolate the effects of transformations, and then created a sketch with multiple 3D objects, placed at different positions. The students started on Challenge 4, Multiple 3D Shapes Artistic Sketch.

June 26


Speech Synthesis and Recognition


Getting started; Hello, World; input

June 29


Smart Thermostat
Continuing Learning Python

input, if, tuples

June 30


random functions

  • choice
  • randint

Throwing dice and flipping coins. Using variables to count the number of heads and tails.

July 1


High-Low Guessing Game

July 2


Dave’s Example Code

Github repository

Review High-Low Game
Counting dice throws program
  • Graph results in spreadsheet
  • Scala, Processing simulation

Prepare for Tomorrow

  • Download and install Sonic Pi
  • Quick Sonic Pi demo

July 3

Name Picker Improvement Case Study


Sonic Pi