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.
- 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.
- 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.
- 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.
- Functions Make Life Easier!
-
Students discover that they can make their own functions.
- 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).
- 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!
- Introduction to Data Structures
-
Students encounter Data Structures in the context of using coordinates to model 2D animation. They explore constructors and fields, creating a "digital bakery" using structures to model cakes.
- Structures, Reactors, and Animations
-
Students implement animation using a modified Model-View-Controller paradigm called Reactors. Using a data structure to represent the position of an object, they write
draw-state
functions to draw single frame from instances of that structure andnext-state-tick
functions to generate new instances from previous ones. They learn how to use Reactors to combine their structure and functions into a complete animation. - Functions That Ask Questions
-
Students are introduced to if-then-else expressions, writing conditionals that deal with simple types (Numbers, Strings, Booleans, etc) and data structures of their own to implement a more complex animation.
- Key Events
-
Students are introduced to key events, and use if-then-else expressions to write a key-event handler that moves an image left and right as part of an interactive animation.
- Refactoring
-
This lesson focuses on code quality. Starting from a working program, students refactor the code to be more readable, writing helper functions thinking structurally about a complex program.
- Your Own Drawing Functions
-
This lesson removes earlier scaffolding from working with Reactors, having students brainstorm an original animation of their own and implement it from start-to-finish. This requires them to plan out what kind of data structure they will need, and how it will be drawn and updated.
- Build Your Own Animation
-
Students create a game of their own design using what they have learned so far.
- 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.
- Adding Collisions
-
Students use the distance formula and their data structures to determine when two or more characters in their games have collided. They extend their
update
handlers to generate a new structure that represents the game after a collision has occurred. - Scoring
-
Students extend the data structure that represents their game to include a score, then modify their helper functions and event handlers to update and display that score.
- Adding Levels
-
Students parameterize other parts of their game, so that the experience changes as the score increases. This track delves deeper into conditionals and abstraction, offering students a chance to customize their games further while applying those concepts.
- Making Pong
-
Students use the Animation Design Worksheet to decompose a 2-player game of Pong, and implement it as a Reactor-based program.
- Going Deeper: Nested Structures
-
Students refactor code from a simple animation to include structures within structures, and see how to use nested structures in their own games and animations to manage complexity.
- Feature: Timers
-
Students parameterize other parts of their game, so that the experience changes as a new data field, a timer, changes. This track delves deeper into conditionals and abstraction, offering students two possible uses for a timer feature, and a chance to customize their games further while applying those concepts.
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.
-
Contracts Reference — Complete student-facing documentation for all the functions used in these lessons (also printed in the back of the student workbook).
-
Glossary — A list of vocabulary words used in this pathway. We also provide a bilingual glossary, which defines all vocabulary words across our lessons in English and Spanish.
-
Standards Alignment — Find out how our materials align with National and State Standards, as well as some of the most commonly used math textbooks.
-
Teacher-Only Resources — We also offer several teachers-only materials, including an answer key to the student workbook, keys to all the exercises, and pre- and post-tests for teachers who are participating in our research study. For access to these materials, please fill out the password request form. We’ll get back to you soon with the necessary login information.
-
Online Community (Discourse) — Want to be kept up-to-date about Bootstrap events, workshops, and curricular changes? Want to ask a question or pose a lesson idea for other Bootstrap teachers? These forums are the place to do it.
These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, 1738598, 2031479, and 1501927). 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.