The Algebra Inside Your Video Game: Computer Science in Math
Many students love video games, but how many really understand what it takes to make one? In Code.org's Computer Science in Algebra, we pull back the veil on Computer Science and reveal to students the underlying fundamental math that makes everything tick. Using an easy to learn block based language, students will learn to create images, animations, and interactive video games that are driven by algebraic functions. Through the process of developing their video games, students will discover how computer programmers use the coordinate plane, algebraic functions, and logic to create the games that they love.
Code.org partnered with Bootstrap to develop an exciting and engaging curriculum that allows students to discover that is built on proven pedagogy and practices.
Functional Programming is Math!
The Functional Programming paradigm used in this course will look very familiar to algebra teachers, becuase the language operates just like algebraic functions do! Students can write functions (both algebraic and programmatic) to solve for word problems, such as:
A rocket blasts off, traveling at 7 meters per second. Write a function called rocket-height that takes in the number of seconds that have passed since the rocket took off, and which produces the height of the rocket at that time.
It's more than just Coding
Algebra goes beyond just solving for x, and Code.org CS in Algebra goes beyond this writing code. Through learning to program, students will also practive problem decomposition, clear communication through documentation, testing their own functions against example cases and input/output tables, and much more. Many of the practices employed by CS in Algebra directly correlate to key concepts in the Common Core math standards: data types teach domain and range, test cases introduce students to input/output tables, and our block based programming language allows students to write functions with manipulatives.
Across the entire CS in Algebra curriculum, students will develop the skills of a computer scientist through the development of Computational Thinking Practices, including Creativity, Collaboration, Communication, Persistence, and Problem Solving
|Unit of Study||Description||Standards|
|Videogames and Coordinate Planes||Students reverse-engineer a simple videogame into a series of coordinates, and explore Cartesian space. Once they are comfortable with coordinates, they brainstorm their own games and begin programming simple arithmetic expressions with Evaluation Blocks.||
|Contracts, Strings and Images||Students are introduced to a set-mapping representation for functions, in which the function translates points from a Domain to a Range. Students generalize their understanding of functions to include Strings and Images.||
|Defining Functions||Students define values of various types, as well as linear functions.||
|The Design Recipe||Students are introduced to the process for deriving functions from Word Problems using worked-through examples, called the Design Recipe.||
|Game Animation||Students solve Word Problems that describe animation, and define functions that map character positions in their game from one frame to the next.||
|Boundary Detection||Students discover Boolean types and inequalities in the plane, and use them to create programs that test locations of a character on the screen. They then solve Word Problems that deal with Boundary-Detection, writing code to detect when a character has gone off-screen.||
|Piecewise Functions||Students use geometry and conditional branching to move their player characters in response to key-presses. The Word Problem for key-events describes a function that behaves differently under different sub-domains, requiring students to learn about Piecewise Functions.||
|Collision Detection||Students derive, discuss, and prove the Pythagorean theorem, then use this theorem—in conjunction with Booleans—to detect collisions in their games.||