The Strive Core Curriculum teaches students to think deeply and creatively about tough problems. Strive students apply the mathematics they’re learning in school to write computer programs that help them to visualize their ideas and debug their own thinking.

This is Strive Learning Map, used to track a student’s progress through the Strive curriculum. The Curriculum will be customised to the student’s pace and preferences, and will progress through 7 different levels, but may skip a few levels if they have already mastered them. Each level takes between 5-15 hours and gets more challenging as the levels progress.

# Unit 1. Variables

Variables keep track of quantities that change such as position, size, and colour.

Rocket - Mouse Movement [🐍 Python]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Sunrise [🐍 Python] | Simulate a sunrise over the mountains | Easy | Easy | |

Avatar [Python 🐍] | Animate your own game avatar | Easy | Easy | |

Moonlight Meteor [🐍 Python] | Simulate a meteor as it streaks across the night sky | Easy | Easy | |

Area Calculator [Python 🐍] | Draw interactive shapes and compute their area dynamically | Easy | Easy | |

Analog Clock [Python 🐍] | Create a colorful analog clock with ratios and rotation | Medium | Medium | |

Rocket - Mouse Movement [🐍 Python] |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Moonlight Meteor | Animate the nighttime sky | Easy | Easy | |

Googly Eyes | Eyes that always follow your mouse | Easy | Medium | |

The Area Calculator Challenge | Calculating the areas of various shapes | Medium | Medium | |

Charlotte's Web | Create an interactive spider web! | Medium | Easy | |

Pyramid | A 3D Illusion Pyramid on the 2D Plane | Easy | Easy | |

Landscape | Draw a simple landscape | Easy | Easy |

# Unit 2. Functions

Functions make it easy to bundle related instructions together and to map inputs to outputs.

Pythagoras' Proof [🐍 Python]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Basic Introduction to Functions | A very simple project to show beginners the absolute basics of what a function is | Easy | Easy | |

Function tree 🐍 | See the power of writing a function by calling it from within itself | Medium | Medium | |

Retro Screensaver using Shapes 🐍 | A cool retro screen saver that has many shapes and Perlin noise | Easy | Easy | |

Christmas Tree Using Functions 🐍 | A decorated Christmas tree created using functions | Easy | Easy | |

Strive - Rocket Blast Off 🐍 | Create Rocket that blasts off into space. | Easy | Easy | |

Avatar Studio [Python 🐍] | Build a simple studio for Designing Game Avatars | Easy | Easy | |

Function Viewer [🐍 Python] | Create a simple graphing calculator by defining functions | Easy | Easy | |

Pythagoras' Proof [🐍 Python] | ||||

City Generator [🐍 Python] | Make a lovely city with houses, hospitals, buildings, and streets | Easy | Easy |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Scribble Machine | Make a multicolor scribbling machine | Easy | Easy | |

Rainbow Machine | Create sketch that can draw a rainbow! | Easy | Medium | |

Digital Clock | A digital clock showing the current time | Medium | Medium |

# Unit 3. Logic

Boolean algebra is the logical foundation for computers, and we use it to make decisions using conditional statements.

Spirals - Rotation [Python 🐍]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

3D Solar System | Take a look at our Solar System in 3 dimensions. Create our Sun and the 8 planets that orbit around it. | Difficult | Medium | |

Art Sketchpad - Group class | Apply geometry and uniform probability distributions to make art | Easy | Easy | |

🆕 Braided Trigonometry [🐍 Python] | Create a Braids and use them to form a heart shape, using Trigonometry, analytically! | Medium | Medium | |

Painting Mashup [🐍 Python] | Conditional statements to use inequalities to make a color mix-match. | Easy | Easy | |

🆕[3D] Working Satellite [🐍 Python] | Move and rotate the satellite & control its body and wings | Medium | Medium | |

🆕[3D] Satellite [🐍 Python] | Use solid shapes to draw a simple satellite in 3D. It has a body, solar panels, dish, and antennas | Medium | Easy | |

🆕[3D] Trapped Ball in a Crazy Box [🐍 Python] | Make a Ball that bounces off the internal walls of a crazy flashing Box! | Medium | Medium | |

🆕[3D] Strive Dice [🐍 Python] | Create a rotating 3D Dice with different coloured sides | Medium | Medium | |

Art Sketchpad Trial class [Python 🐍] | Apply geometry and uniform probability distributions to make art | Easy | Easy | |

Zork [🐍 Python] | Classic text-based adventure awaits | Easy | Easy | |

Straight Lines [🐍Python] | Build an interactive tool to study systems of linear equations | Medium | Easy | |

Painting Mashup | Conditional statements to use inequalities to make a color mix-match. | Easy | Easy | |

🆕 Working Rocket [🐍 Python] | Extend the previously created rocket to play sounds and to move by keyboard in the background of randomly shining stars | Difficult | Easy | |

Perigal's Proof of Pythagoras’ Theorem [🐍 Python] | Construct a visual proof of Pythagoras’ theorem using quadrilaterals | Difficult | Difficult | |

Properties of Triangles [Python 🐍] | Draw a triangle with given 3 vertices and discover its properties | Medium | Medium | |

Art Sketchpad [Python 🐍] | Apply geometry and uniform probability distributions to make art | Easy | Easy | |

Pong [Python 🐍] | Create the classic “Pong” game using inequalities | Medium | Easy | |

Cartesian to Polar (🐍 Python) | Move a point on the plane with your mouse, calculate its polar coordinates from rectangular coordinates | Medium | Difficult | |

Bouncing Ball [Python 🐍] | Create a colorful ball that bounces off the edges of the canvas | Easy | Easy | |

Spirals - Trigonometry [Python 🐍] | Create a beautiful spiral pattern based on simple rules | Easy | Easy | |

Spirals - Rotation [Python 🐍] |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Painting Mashup | Pointillism? Abstraction? How about both!? | Easy | Easy | |

Catch the Snitch! | Hone your Quidditch skills with a little practice catching the Golden Snitch | Easy | Easy | |

Square Fill | Expanding squares that fill the canvas | Medium | Easy |

# Unit 4. Loops

Loops make it easy to repeat instructions according to set conditions.

Estimating PI - Monte Carlo Method (🐍 Python)

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Pixelated Face Reveal 🐍 | A nice demonstration of using the Webcam to affect pixels to reveal your face! | Medium | Medium | |

🆕 Numbers’ Circle [Python 🐍] | This module teaches the fundamental idea of modular arithmetic. It relates remainders to number circles. The goal is to understand that in modular arithmetic, we are dealing with a different number system, where equivalence relation is not as usual, and | Medium | Medium | |

🆕 The Quadratic Function [🐍Python] | Learn about the Quadratic Equation and the quadratic function, how the graph is manipulated by the constants, and see the theme of Analytical Geometry. | Medium | Medium | |

Estimating Pi - Greek Polygons Method [Python 🐍] | Inscribe a circle by a polygon and inscribe a polygon by a circle to get an upper and lower bound on the value of PI | Medium | Medium | |

Colliding Blocks Making Pi (Python 🐍) | See the digits of pi emerge when two blocks collide | Easy | Medium | |

Multiplication Circles [Python 🐍] | Create a beautiful visualization using modular arithmetic | Easy | Medium | |

Chessboard [Python 🐍] | Create an interactive colored chessboard | Easy | Easy | |

Minecraft Blocks [Python 🐍] | Craft the soil and grass of Minecraft blocks | Medium | Easy | |

Mandala Art [Python 🐍] | Make Mandala art with symmetry | Easy | Easy | |

Estimating PI - Monte Carlo Method (🐍 Python) |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Color Wave | Send waves of color across a grid | Medium | Easy | |

Ferris Wheel | Animate a ferris wheel spinning at night | Medium | Medium | |

Rotating Polygons | A mesmerizing visual of rotating of polygons | Easy | Medium | |

Flower | A beautiful flower using loops | Easy | Easy |

# Unit 5. Types and Objects

Many applied Maths problems involve bundling data together and presenting it to users, often through text.

Solar System [Python 🐍]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Emoji Invasion | Escape the emoji invasion, and set a highscore | Easy | Easy | |

Chaos Game (Python 🐍) | Create a beautiful, chaotic pattern from a few simple rules | Medium | Medium | |

Straight Lines - Reflecting a Point (Python 🐍) | Reflect a point from a line on the cartesian plane | Medium | Difficult | |

Solar System [Python 🐍] |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Surf's Up! | Surf's up on a wave you generate | Easy | Easy | |

Fish Family | Simulate a family of fish swimming around the ocean | Easy | Easy | |

Solar System | A mini solar system visualisation | Easy | Easy |

# Unit 6. Lists

Lists enable us to keep related items in order, from high scores in a game to scientific observations.

Rainstorm [🐍 Python]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

3D shooter 🐍 [3D] | Have a blast shooting down these “Angry birds” in this simple but awesome 3D shooter. | Difficult | Difficult | |

Video Processing Magic | Use your webcam to capture live video and modify pixels to make a ball move on the screen. | Medium | Medium | |

Snake with Grid [🐍 Python] | Build the classic arcade game Snake! | Medium | Easy | |

Many Bouncing Balls with Lists [Python 🐍] | Create a set of bouncing balls | Medium | Easy | |

Sine Wave Synth [🐍Python] | Visualize the waves that create the sounds we hear when playing an instrument! | Medium | Easy | |

Rainstorm [🐍 Python] | ||||

Graphing Calculator (Python 🐍) | Create several points on a graph and apply functions on them to change their current position | Easy | Easy | |

Flappy Bird [Python 🐍] | Create the famous game Flappy Bird | Medium | Medium | |

Caesar Cipher [Python 🐍] | Apply modular arithmetic to build a Caesar Cipher | Medium | Easy | |

Block Breaker with Lists [🐍 Python] | Reconstruct a classic arcade game with inequalities | Medium | Easy | |

Morse Code [Python 🐍] | Encode and decode messages from Morse to English and vice versa | Medium | Medium | |

Firestorm [Python 🐍] | Simulate fire using a particle system | Easy | Easy |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Ecosystem Tracker | Create an ecosystem and keep track of its members as they come and go | Medium | Easy | |

Sine Wave Synth | Jam on your own software instrument | Difficult | Medium | |

Snowy Day | A beautiful scene showcasing snowfall | Easy | Easy |

# Unit 7. Classes

Classes are the blueprints for objects that bundle data together with the functions that operate on that data.

Bouncing Balls with Classes [Python 🐍]

‣

**Projects**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

Single Boid [Python 🐍] | Create one boid, control its speed and orientation with mouse and change its color based on its position | Medium | Medium | |

Asteroids Hunter [🐍 Python] | Build the classic arcade game Asteroids! | Difficult | Easy | |

Air Hockey [🐍 Python] | Build a classic arcade game with vectors and inequalities | Medium | Medium | |

Conway's Game of Life [🐍 Python] | Create a two dimensional word with tiny cells and code the rule that governs the game of Life! | Medium | Medium | |

Spiral Galaxy [🐍 Python] | Simulate a galaxy by parameterizing the elliptical paths of its stars. | Medium | Medium | |

Typing Shooter [🐍 Python] | Build a game to train typing skills | Difficult | Easy | |

Block Breaker with Classes [🐍 Python] | Reconstruct a retro arcade game | Medium | Easy | |

Space Defenders [🐍 Python] | Team up to defend the earth from invaders! | Medium | Medium | |

Boids [Python 🐍] | Simulate the flocking behavior of boids | Difficult | Medium | |

Bouncing Balls with Classes [Python 🐍] |

‣

**Keystones**

Project Name | Description | Code Difficulty | Math Difficulty | Final Output |
---|---|---|---|---|

My Avatar | Build yourself with simple shapes | Medium | Easy | |

Turtles All the Way Down | Build an assistant to help you paint the canvas | Medium | Medium | |

Typing Shooter | Shoot those alphabets before they fall. | Medium | Easy |