This page contains lesson plans from some of the sessions run at CC Fests. Enjoy, share, and give feedback. You can click on the name of the session leader to email them. The lesson plans are linked in the documentation.


Virtual reality is one of the fastest growing fields of technology and is changing the way that we experience the world. Join us to have the opportunity to build your own 3D virtual reality environment using the A-Frame Javascript Library. Our instructors will show you how to build, animate, and modify interactive shapes and structures, and by the end you'll have created your own virtual reality world!

Documentation: Website

Experience Level: Beginner

Virtual Reality with A-Frame

by Taylor Want


Make simple api calls using python. Create a quick script to get detailed weather information. Learn how to read API documentation, create a call, and parse data.

Documentation: Github

Experience Level: Beginner

Python API Calls

by Kyle James


You know p5.js, but now it's time to learn how to do all the cool stuff you've seen other people do. We'll start with raindrops, and then you'll have some free time to see what else you can accomplish with objects.

Documentation: p5.js web editor example

Experience Level: Advanced

p5.js Object Orientation

by Jeff Olson


Learn how to create an animated data visualization with p5. Based on an interdisciplinary project that I'm doing with 10th grade science and design engineering classes this year.

Documentation: Website

Experience Level: Intermediate

Data viz with p5.js

by Katy Garnier


We will explore some of the basic functions in the p5.sound library to make a basic theremin with the mouse. We will learn how to add visuals, play musical notes and make an interactive instrument in a p5.js sketch.

Documentation: Google Doc

Experience Level: Intermediate

Creating sounds with p5.js

by Liam Baum


In this session, we'll create a meme generator by matching random images to random captions in p5.js. We'll learn how to use arrays to select random elements from a list and add images and fonts to our p5 sketches.

Documentation: Peblio

Experience Level: Intermediate

Meme generator in p5.js

by Esther Hersh & Regina Vetka


In this session, participants will be introduced to the full-year computational media curriculum currently being implemented in NYC public schools through the NYC-DOE CS4All initiative. Participants will also have a chance to explore teacher notes written by current Processing Foundation fellows and HS CS teachers Jose Orea and Courtney Morgan. The teacher notes are designed to help educators implement and adapt this curriculum for their classroom.

Documentation: Website

Experience Level: Beginner

Exploring the Introduction to Computational Media curriculum by CS4All

by Jose Olivares & Aankit Patel


When people think "terminal app", they think of simple programs with boring text. Not true! Learn to make interactive terminal apps and games by unleashing the full power of XTerm + ANSI escape sequences on Repl.it!

Documentation: Repl.it

Experience Level: Intermediate

Interactive Terminal Apps with Repl.it

by Tim Chen


Learn about how learning works! By exploring a computer simulation that shows a computer learning how to navigate around mazes, we will learn why superstition exists, why going slowly is crucial to learning, and how to better adapt to changing situations.

Documentation: Github

Experience Level: Advanced

Learning about Learning

by Xiaohan Zhang


Objects are abstract and difficult for intermediate programmers to understand and know how to use effectively.

Documentation: Google Doc

Experience Level: Intermediate

Introducing Object - Simulating Bubbles

by Derrick McMillen


This tutorial will show you how to make a paint canvas in p5.js with a rainbow brush (and keyboard controls)! Written for a session at CC Fest LA, this tutorial is geared towards those new to p5.js but familiar with basic coding concepts (functions, variables, conditionals).

Documentation: Blog post

Experience Level: Beginner

Rainbow Paintbrush

by Kelly Lougheed


We can use the random() function to make randomized art, to procedurally generate a drawing, or to put together mad-lib style pieces of text. We'll talk about algorithms like the random walker and concepts like emergence, and we'll have plenty of time to play with the code.

Documentation: Website and slides

Experience Level: Beginner

The Power (and Beauty) of Random

by Kevin Workman


CSS and Web Design

by Scott Gruber

Introduction and hands-on workshop on CSS Grid Layout, Codepen.io and Firefox developer tools.

Documentation: Website

Experience Level: Advanced


Applying artistic concepts from impressionist art, and mathematical concepts related to implicit functions, and computer science concepts of repetition and logic, this work focuses on leading students through the production of strokes for texture and shape definitions to create a sample scene in an impressionist art style.

Documentation: PDF and website

Experience Level: Intermediate

Impressionist Computational Art

by Zoë Wood


This session explores the use of Sine and Cosine functions in animation with p5js. My hope is to remove some of the fear associated with these more "mathy" subjects, and help artists develop an understanding of basic trig that serves their personal practice.

Documentation: Website

Experience Level: Intermediate

Animating with Trigonometry

by Dexter Shepard


I want to do a demo of the professor focused features on OpenProcessing, and show how it is easy to bring students together and study creative coding. Would like to discuss Open Education experiment I have done on OpenProcessing, and analyse open classes and their interaction with the community via a datavisualization piece: https://openprocessing.org/labs/opviz. Last year at ccfest I noticed there were still many teachers not aware that many problems they brought up could be easily solved on OpenProcessing. Also, I want to announce some exciting updates on the future of the website.

Documentation: Website

Experience Level: Beginner

Teaching Creative Coding using OpenProcessing

by Sinan Ascioglu


Let's talk about breaking the silo - how to integrate creative coding into every subject area. We'll go over examples of cross-curricular coding projects, code a news broadcast, and talk about how the activity and others could be used in classrooms beyond a computer science class.

Documentation: Google Slides

Experience Level: Beginner

Code the News: Cross Curricular Coding

by Leandra Tejedor


We will use trigonometry and pythagorean theorem to make the beginnings of a game (basically, a game "shell").

Documentation: Website

Experience Level: Intermediate

Using Trigonometry to make a Simple Game

by Zach Brewer


Learn the basics of Computational Thinking with OpenSCAD, a 3D programming language. Learn how to use loops, decisions, arithmetic, variables and modules to quickly create complex 3D models you can 3d print. No previous coding or 3D experience required!

Documentation: Google Docs

Experience Level: Beginner

Building to Code with OpenSCAD

by Justin Gohde


ml5: Friendly Machine Learning

by Yining Shi and Cristobal Valenzuela

 Yining and Cris

Yining and Cris

This workshop will be focused on doing deep learning in the browser with javascript. We will use ML5, an experimental library that does not require any setup tools or complicated frameworks to install. This will be a beginner-friendly workshop and no previous knowledge of machine learning is required. 

Documentation: website

Difficulty:  Beginner


The class opens with a framework to consider computer ethics and concludes with a strategy to engage CS students in Lincoln-Douglas style debates based on contemporary computer ethics problems.

Documentation: Google Slides

Difficulty Level: Intermediate

Infusing Ethics through Debate in the CS Classroom

by Jeffrey Kaufman


Photobooth

by Serena Parr

 Serena leading her session on photobooths

Serena leading her session on photobooths

Make a webcam photo booth with p5.js. Learn how to customize it, and publish it to the internet using Glitch.

Documentation: Google Docs, Slideshow, Glitch example

Difficulty Level: Beginner

 


Creative Live Communication

by Jingwen Zhu

 Jingwen leading her session on socket.io

Jingwen leading her session on socket.io

Creative Live Communications is a workshop for students to learn about creating their own online communication platforms. Students will learn the basics of javascript programming and basic interaction design methods. The technical contents of the workshop will include: server-side programming, front-end development and UX design.

Documentation: Github

Difficulty Level: Advanced


Coding with Sonic Pi

by Liam Baum

 Liam leading his session on the Sonic Pi.

Liam leading his session on the Sonic Pi.

Sonic Pi is a coding environment used to create music as both composition and performance. We will explore some of the basic functions to create sounds and rhythm, ways to manipulate these sounds, adding samples and playing multiple sounds at once. We will also look at how Sonic Pi can be used for live coding performances of music.

Documentation: Sonic Pi, Sonic Pi Online Tutorial, Sonic Pi Online Forum, Liam's education blog on the forum, Link to Liam's resources

Difficulty Level: Beginner

 


How to write Twitter Bots

by Todd Anderson

 Todd leading his session on Twitter Bots.

Todd leading his session on Twitter Bots.

An introduction to twitter bots, small programs that generate text and tweet it out. The workshop covers text generation with Tracery and bot hosting on Cheap Bots, Done Quick.

Documentation: Github

Difficulty Level: Beginner