instagram

The earlier version of our materials is also available en español. Let us know if you can lend a hand translating the new version!

Lesson Plans

Computing Needs All Voices

Students learn about a diverse group of programmers through a short film and a gallery walk of our Pioneers in Computing and Mathematics poster series, then consider the problem solving advantages that diverse teams foster.

🎮 The Numbers Inside Video Games

Students play a simple video game, identifying which components are constant, which are variables, and how they change. They discuss their favorite games and think about the work involved in making them.

Project: Build a Video Game

Students build a video game of their own design! Every game must have a player (their avatar), a danger (something to avoid), and a target (something to chase). Students build their world using function composition, animate characters through linear functions, handle keypresses with piecewise functions, detect boundaries with compound inequalities, and detect collisions with the distance formula. (Lessons that contribute to this project are marked with "🎮")

Coordinates and Game Design

Students learn that characters' positions in video games can be described using coordinates, then brainstorm the context and characters for the games they will design.

Order of Operations

Students learn to model the structure of arithmetic expressions with a visual tool known as "Circles of Evaluation".

Simple Data Types

Students begin to program, exploring how Numbers, Strings, Booleans and operations on those data types work in a programming language. Booleans offer an excellent opportunity for students to explore the meaning and real-world uses of inequalities.

Contracts

Students encounter a useful representation of functions called a "Contract", which specifies the Name, Domain and Range of a function. Students learn how useful this representation is when trying to apply Functions in the programming environment, using image-producing functions to provide an engaging context for this exploration.

Function Composition

Students learn to combine image transformation functions using Circles of Evaluation.

Project: Create Your Own Logo

Students use functions that produce and transform images to create their own personal logo. This project supports the learning goals of Function Composition.

Defining Values

Students learn to improve readability, performance and maintainability of code by defining values that repeat in code, just as we would define variables in math.

Surface Area of a Rectangular Prism

Students define the shapes used to build a rectangular prism, print them, cut them out, and build the rectangular prism. Then they use their model to calculate the surface area.

Transforming and Composing Images

Students explore image transformation and composition, applying their knowledge of ratios and coordinates to scale and position shapes precisely while recreating images of flags of varying complexity.

Project: Make a Flag

Students recreate a flag of their choice by transforming and composing image functions and applying their knowledge of ratios and coordinates to scale and position the shapes precisely. This project supports the learning goals of Transforming and Composing Images.

🎮 Making Game Images

Students choose, import, scale and orient images for their game, practicing reading comments to make sense of and begin to edit a large body of code.

Functions Make Life Easier!

Students discover that they can make their own functions.

The Vertical Line Test

Students learn to distinguish functions from other relations.

Function Notation

Students learn to read function notation and evaluate expressions using function definitions, tables, and graphs. Students also describe the order of operations involved in algebraic function compositions such as f(g(h(x)))

Functions: Contracts, Examples & Definitions

Students learn to connect function descriptions across three representations: Contracts (a mapping between Domain and Range), Examples (a list of discrete inputs and outputs), and Definitions (symbolic).

Project: Create Your Own Function

Students develop and define a function of their own. The function must take in an image and manipulate it using at least three transformations. This project supports the learning goals of Functions: Contracts, Examples & Definitions.

Functions Can Be Linear

Students explore the concept of slope and y-intercept in linear relationships, using function definitions as a third representation (alongside tables and graphs).

Defining Linear Functions

Students explore the concept of slope and y-intercept in linear relationships, using function definitions as a third representation (alongside tables and graphs).

Solving Word Problems with the Design Recipe

Students are introduced to the Design Recipe as a scaffold for breaking down word problems into smaller steps. They apply the Design Recipe to fixing a file that launches a rocket!

🎮 Functions for Character Animation

Students define functions that control the movement of the target and danger in their games.

Problem Decomposition

Students take a closer look at how functions can work together by investigating the relationship between revenue, cost, and profit.

Simple Inequalities

Students identify solutions and non-solutions of inequalities using an interactive starter file. This lesson also reviews the Boolean data type.

Compound Inequalities: Solutions & Non-Solutions

Students build upon their understanding of Booleans and simple inequalities to compose compound inequalities using the concepts of union and intersection.

Sam the Butterfly - Applying Inequalities

Students discover that inequalities have an important application in video games: keeping game characters on the screen! Students apply their understanding to edit code so that it will keep Sam the Butterfly safely in view.

Piecewise Functions and Conditionals

Students learn how to define a function so that it behaves differently depending on the input.

🎮 Player Animation

Students apply their knowledge of piecewise functions to write a function that will move the player in their game in different directions and at different speeds depending on which key is pressed.

Distance in Video Games

Students discover that in order for video game scores to change based on collisions, the computer needs to calculate the distance between two coordinates. This motivates exploration of the Pythagorean Theorem and its relationship to the distance formula.

Collision Detection - Distance and Inequality

Students use function composition and the distance formula to detect when characters in their games collide.

Student Workbooks

Sometimes, the best place for students to get real thinking done is away from the keyboard! Our lesson plans are tightly integrated with a detailed Student Workbook, allowing for paper-and-pencil practice and activities that don’t require a computer. That’s why we provide a free PDF of the core workbook, as well as a link to the book with every optional exercise included.

Of course, we understand that printing them yourself can be expensive! Click here to purchase beautifully-bound copies of the student workbook from Lulu.com.

Other Resources

Of course, there’s more to a curriculum than software and lesson plans! We also provide a number of resources to educators, including standards alignment, a complete student workbook, an answer key for the programming exercises and a forum where they can ask questions and share ideas.

These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, 1738598, 2031479, and 1501927). CCbadge Bootstrap by the Bootstrap Community is licensed under a Creative Commons 4.0 Unported License. This license does not grant permission to run training or professional development. Offering training or professional development with materials substantially derived from Bootstrap must be approved in writing by a Bootstrap Director. Permissions beyond the scope of this license, such as to run training, may be available by contacting contact@BootstrapWorld.org.