Our complete progression of courses guides students from second grade through high school.

Our series of elementary computer science courses guides students from visual block-based coding to professional line-based coding. Students develop foundational computer science knowledge through full-year courses while learning to apply coding to math, language arts, science, and social studies through our Core Content Packs.

Other elementary programs exclusively use drag-and-drop block-based coding, leaving students without the skills to structure and code line-based programs with the necessary precision. Rather than abandoning students to a sudden climb in difficulty, our Skylark language presents students with a gradual path to conquer this challenging transition over a series of courses.

Other elementary programs exclusively use drag-and-drop block-based coding, leaving students without the skills to structure and code line-based programs with the necessary precision. Rather than abandoning students to a sudden climb in difficulty, our Skylark language presents students with a gradual path to conquer this challenging transition over a series of courses.

Skylark is TechSmart’s introductory educational coding language, invented to ease the transition from visual coding to line-based code. Every Skylark block represents real Python code. That means students not only** **get a gentle introduction to code, but one that lets them gradually “level up” to the line-based code used in college and careers.

Learn More About Skylark

As students advance through our courses, their Skylark blocks progress through three levels of sophistication. Blocks begin worded appropriately for younger students and gradually take on the vocabulary and syntax of written Python code.

Skylark’s unique hybrid programs combine blocks and Python code in the same editor. This enables our courses to gradually replace blocks with the line code that powers them.

Every block maps onto clear and straightforward Python code. By the end of their transition, students will write the same line-based Python common in professional environments.

Our elementary school progression consists of four year-long courses. Students advance through a sequence of computer science concepts where each course builds upon the previous one, all while creating progressively more sophisticated programs set in a colorful fantasy world.

Aetherial is a world made up of four elemental realms: earth, fire, water, and air. The Aetherial narrative tells the story of four young heroes, one from each land, who meet unexpectedly one day and decide to travel the realms together, learning about each other’s unique strengths and encouraging cooperation among the different nations. Each Skylark lesson is a chapter in these characters’ story, and every exercise centers around their adventures.

The first course in the Skylark curriculum starts students on a lifelong path of loving code. Core coding concepts are taught using engaging characters and stories that weave throughout the Skylark course progression, allowing students to tie fundamental learnings to familiar, friendly faces. The course emphasizes student creativity, giving them powerful tools for self-expression in a digital space.

- Events
- Frames
- Sprites
- Variables
- Input and Output

- Conditionals
- Randomness
- Coordinates
- Mouse and Keyboard Input

- Write programs that make computers follow instructions
- Create animations that move characters around on screen
- Precisely time and control character movement
- Process text-based information from the user
- Write code that makes decisions, choosing between multiple options
- Specify position on-screen based on coordinates
- Write code that reacts to input from the mouse and keyboard

Boulder’s Heavy Lifting

Boulder’s character introduction animation, where he pushes a huge rock across the screen as part of a construction project

Coding Concepts

- Variables
- Changing Sprite Speed

Earth Dance

An animation where citizens of the earth city follow Splash’s random dance movements

Coding Concepts

- Random Choice
- Conditionals

Swat Team

A game where the player tries to take out bugs by clicking as many as they can within a time limit

Coding Concepts

- Mouse Input
- Coordinates

Egg Chicken

Splash plays a game in the fire city where she tries to catch a falling egg as close to the ground as she can

Coding Concepts

- Advanced Conditionals
- Number Ranges

The second Skylark course continues from the first, introducing new, more advanced coding concepts and new capabilities for creative expression. The narrative arc introduced in the first course continues through CS20, concluding the first adventure with the established characters. Students in CS20 gain a mastery of block-based coding that allows them to create an incredible variety of custom programs.

- Boolean Logic
- Collision
- Lists
- List Loops (For-Each)
- List Indexes

- Counting Loops (For-Range)
- While Loops
- Sprite Instances
- Drawing Text
- Spritesheet Animation

- Combine decision-making questions to create complex logical statements
- Write code that reacts to when characters collide on-screen
- Store multiple pieces of data in a single collection (list)
- Use loops to repeat code
- Use loops to process data stored in lists
- Create new copies of program elements dynamically as the code runs
- Students write text to screen in a special drawing section of the code

Pipe Music

A musical program where the user can click on different sections of a sprite to create different sounds

Coding Concepts

- Boolean Logic
- Number Ranges

Light as a Rock

A game where Splash is trying to keep a bubble-enclosed Boulder

from hitting the ground

from hitting the ground

Coding Concepts

- Sprite Collision
- Advanced Conditionals

Up, Up, and Away

A game where Breeze carries Boulder up to the air city, dodging

floating islands

floating islands

Coding Concepts

- Lists
- Nested Conditionals

Coach Flame

A two-player ping-pong game, where two players each control a child from the air city playing with a ball

Coding Concepts

- Drawing Text
- Spritesheet Animation

The second half of the Skylark curriculum focuses on transitioning students towards the Python curriculum in middle school. Taking the fundamentals that students have learned in previous courses, CS30 begins to transition students into formatting and typing code in Python syntax. Meanwhile, the characters from the first half of the Skylark curriculum begin a brand new adventure narrative to carry students through the course.

- Main Program
- Comments
- Assignment Syntax
- Data Types
- Boolean Values
- Mathematical Operators
- Text Input & Output

- Conditional Syntax
- Comparison Syntax
- Indentation
- Import and Library Access Syntax
- Coordinate Tuples
- Procedural Shape Drawing

- Structure code as a single program, rather than a series of instructions to individual characters
- Replace many simple block combinations with typed Python code
- Reinforce knowledge of coding structures from previous courses
- Draw custom shapes based on screen positions

Fire Painting

A program where the user can paint with flames, which move after they’re created

Coding Concepts

- Assignment Syntax
- Mathematical Operators

Strongman

An interactive animation where two members of the rock city are competing to see who can push a giant rock faster

Coding Concepts

- Text Input & Output
- Assignment Syntax

Shell Guard

A game where the user has to fire blasts of water to defend against

oncoming bugs

oncoming bugs

Coding Concepts

- Conditional Syntax
- Comparison Syntax

Essence De Sheep

An interactive animation where the heroes help members of the water city gather the scent of the sky sheep

Coding Concepts

- Conditional Syntax
- Comparison Syntax

Building on CS30, this course transitions students further away from using blocks and further into the professional world of line-based coding. By the end of the course, student code is written and formatted almost entirely like traditional Python programs. As the characters from the Skylark narrative world come to the end of their adventures, the students’ journeys on the path of Python are just beginning!

- Program Flow
- Loop Syntax
- Accessing Object Fields
- Calling Object Methods
- Event Reorganization
- Main Loop

- Event Loop
- Quit Event
- Mouse and Keyboard Syntax
- Collision Event Syntax
- Timing

- Replace all simple blocks with typed Python code
- Move code out of individual groups based on purpose (events) and construct a single large program with standard Python code organization
- Write code that reacts to outside occurrences (such as mouse and keyboard input) in a more Python-like fashion

Fire Storm

A game where the user tries to keep a fire character moving against steadily-increasing wind

Coding Concepts

- Loop Syntax
- Accessing Object Fields

Rock-a-Bye

An interactive animation where the heroes help build a machine to get rid of giant rocks from the water city

Coding Concepts

- Event Reorganization
- Main Loop

The Rocky Road

A program where the user drags in map tiles to create a landscape

Coding Concepts

- Mouse and Keyboard Syntax
- Event Loop

On Moss

A game where the user tries to keep moss off of boulders before it can take over completely

Coding Concepts

- Collision Event Syntax
- Mouse and Keyboard Syntax

Coding is a learning medium that can increase engagement and understanding in other subjects. At the elementary school level, we offer bundles of grade-appropriate coding exercises in the core subjects, each designed around national standards from Common Core, NGSS, and NCSS.

Curious Labs is four mythical creatures who have banded together to discover everything they can about the world we live in. With a character representing each of the four core subjects, every activity focuses on the Curious Labs heroes learning about a math, science, social studies, or language arts concept in order to solve a problem and help out humans.

Elementary core content packs are designed to be used in conjunction with the Skylark core curriculum in order to integrate programming into other core subject areas. Students use simple coding concepts learned in Skylark CS10 in order to code programs that excite their interest in math and related concepts. The core content packs feature the narratives and fantastical creatures from the Curious Lab, with the math pack focusing on Isaac, the unicorn engineer.

Solving for Dogs

Ada and Isaac promised to help a pack of snow rescue dogs by making them boots to keep their feet warm! But before they can start that project, they have to plan it out. Help them figure out how much material they’ll need in order to make all the boots.

Math Standards

- Use multiplication and division within 100 to solve word problems in situations involving equal groups, arrays, and measurement quantities
- Multiply or divide to solve word problems involving multiplicative comparison
- Solve multistep word problems posed with whole numbers and having whole-number answers

Fair Fractions

Two brothers are always arguing about who got more: more dessert, more sleep, more vacation time. Isaac wants to help them, but unfortunately they can only give him their amounts as fractions. Help him use common denominators to determine who got the bigger portion.

Math Standards

- Compare two multi-digit numbers based on meanings of the digits in each place, using >, =, and < symbols to record the results of comparisons.
- Compare two fractions with different numerators and different denominators, e.g., by creating common denominators or numerators.
- Multiply a whole number of up to four digits by a one-digit whole number, and multiply two two-digit numbers.

Fair Fiction

Seshat’s books are all over the place in heaps. Isaac wants to help her organize them to be neat and tidy, figuring out every way she could store them so that each shelf has the same number of books on it.

Math Standards

- Find all factor pairs for a whole number in the range 1-100.
- Recognize that a whole number is a multiple of each of its factors.
- Determine whether a given whole number in the range 1-100 is a multiple of a given one-digit number.

Garden Guru

Yukichi wants to build a daikon garden to remind him of home, but he needs to figure out what materials he needs. Help Isaac calculate the perimeter and area of the garden to determine the necessary supplies.

Math Standards

- Apply the area and perimeter formulas for rectangles in real world and mathematical problems.
- Use the four operations to solve word problems involving distances, intervals of time, liquid volumes, masses of objects, and money.
- Know relative sizes of measurement units within one system of units including km, m, cm; kg, g; lb, oz.; l, ml; hr, min, sec

- Counting within 1000, skip-count by 5’s, 10’s, and 100’s
- Logically interpret products of whole numbers
- Logically interpret whole-number quotients of whole numbers
- Use multiplication and division within 100 to solve word problems in situations involving equal groups, arrays, and measurement quantities
- Understand division as an unknown-factor problem
- Fluently multiply and divide within 100
- Solve two-step word problems using the four operations
- Represent two-step word problems using equations with a letter standing in for the unknown quantity
- Assess the reasonableness of answers using mental computation and estimation strategies
- Fluently add and subtract within 1000

- Use multiplication and division within 100 to solve word problems
- Situations involving equal groups, arrays, and measurement quantities
- Use drawings with symbols to represent unknowns
- Interpret a multiplication equation as a comparison
- Multiply or divide to solve word problems involving multiplicative comparison
- Solve multistep word problems posed with whole numbers and having whole-number answers
- Read and write multi-digit whole numbers using base-ten numerals, number names, and expanded form
- Compare two multi-digit numbers based on meanings of the digits in each place
- Use >, <, and = symbols to describe comparison relationships
- Fluently add and subtract multi-digit whole numbers using the standard algorithm
- Multiply a whole number of up to four digits by one-digit whole number
- Multiply two two-digit numbers
- Find whole-number quotients and remainders with up to four-digit dividends and one-digit divisors
- Illustrate and explain multiplication and division calculations using equations, rectangular arrays, and/or area models

- Use +-*/ to solve word problems involving time, liquid volumes, mass, money, etc.
- Problems involving simple fractions and decimals
- Convert between measurement units
- Represent measurement quantities using diagrams
- Write simple expressions that record calculations with numbers and interpret numerical expressions without evaluating them
- Fluently multiply multi-digit whole numbers using the standard algorithm.
- Find whole-number quotients of whole numbers with up to four-digit dividends and two-digit divisors
- Divide using strategies based on place value, the properties of operations, and/or the relationship between multiplication and division
- Illustrate and explain the above division calculation by using equations, rectangular arrays, and/or area models.
- Add, subtract, multiply, and divide decimals to hundredths, using concrete models or drawings and strategies based on place value, properties of operations, and/or the relationship between addition and subtraction
- Work with coordinates and number line axes to explain position and distance
- Represent real world and mathematical problems by graphing points on a coordinate plane, and interpret coordinate values in the context of the situation

- Make sense of problems and persevere in solving them
- Reason abstractly and quantitatively
- Attend to precision
- Use appropriate tools strategically
- Look for and make use of structure
- Look for and express regularity in repeated reasoning

Elementary core content packs are designed to be used in conjunction with the Skylark core curriculum in order to integrate programming into other core subject areas. Students use simple coding concepts learned in Skylark CS10 in order to code programs that excite their interest in language arts and related concepts. The core content packs feature the narratives and fantastical creatures from the Curious Lab, with the language arts pack focusing on Seshat, the sphinx playwright and actress.

The Raven on Stage

Seshat has found an amazing, spooky poem that she wants to adapt into a play! Help her create a new creative work that expresses Poe’s “The Raven” in a different medium.

Language Arts Standards

- Make connections between the text of a story and a visual presentation of the same content
- Identify where each version reflects specific descriptions and directions
- Explain the differences between poems, drama, and prose

Scene Stealer

Seshat wrote a scene for her friends to perform on stage, but she can’t figure out a good ending. Look at what she wrote so far and see if you can decide how it should end.

Language Arts Standards

- Explain how a character’s actions contribute to a sequence of events
- Describe how each successive part of a text builds on earlier sections

Lab Attack

Seshat has a story to tell you about a strange surprise in Ada’s lab. Take the story she told in the first-person and convert it to an animated third-person story.

Compare and contrast the point of view from which different stories are narrated, including the difference between first- and third-person narrations.

Compare and contrast the point of view from which different stories are narrated, including the difference between first- and third-person narrations.

Language Arts Standards

- Compare and contrast the point of view from which different stories are narrated, including the difference between first- and third-person narrations.
- Write narratives to develop real or imagined experiences or events using effective technique, descriptive details, and clear event sequences.
- Use technology to produce and publish writing as well as to interact and collaborate with others; demonstrate command of keyboarding skills.

Dragon Defense

Seshat wants to give a public speech to encourage people not to be afraid of Ada. She has a bunch of facts about dragons, but she needs your help to put them together into a good persuasive speech that will convince people not to be scared.

Language Arts Standards

- Write opinion pieces on topics or texts, supporting a point of view with reasons and information.
- Develop and strengthen writing as needed by planning, revising, and editing.

- Describe characters in a story (traits, motivations, feelings, etc.)
- Explain how a character’s actions contribute to a sequence of events
- Refer to parts of stories, dramas, and poems using terms such as chapter, scene, and stanza
- Describe how each successive part of a text builds on earlier sections
- Distinguish their own point of view from that of the narrator or those of the characters
- Explain how specific aspects of a text’s illustrations contribute to what is conveyed by the words in a story

- Make connections between the text of a story and a visual presentation of the same content
- Identify where each version reflects specific descriptions and directions
- Explain the differences between poems, drama, and prose
- Refer to the structural elements of poems and drama when writing or speaking about a text
- Refer to details and examples in a text when explaining what the text says

- Determine a theme of a story, drama, or poem from details
- Describe how characters in a story or drama respond to challenges, or how the speaker in a poem reflects upon a topic
- Summarize a text
- Quote accurately from a text to explain and draw inferences
- Analyze how visual and multimedia elements contribute to the meaning, tone, or beauty of a text
- Compare and contrast stories in the same genre on their approaches to similar themes and topics

- Ask and answer questions to demonstrate understanding of a text, referring explicitly to the text as the basis for the answers
- Describe the relationship between a series of events, procedures, or steps using language that pertains to time, sequence, and cause/effect
- Use information gained from illustrations and the words in a text to demonstrate understanding of the text
- Write narratives to develop real or imagined experiences or events using effective technique, descriptive details, and clear event sequences
- Read and comprehend informational texts
- Read with sufficient accuracy and fluency to support comprehension
- Engage effectively in a range of collaborative discussions
- Summarize a written, visual, or other type of text aloud
- Use knowledge of language and its conventions when writing, speaking, reading, or listening

Elementary core content packs are designed to be used in conjunction with the Skylark core curriculum in order to integrate programming into other core subject areas. Students use simple coding concepts learned in Skylark CS10 in order to code programs that excite their interest in science and related concepts. The core content packs feature the narratives and fantastical creatures from the Curious Lab, with the science pack focusing on Ada, the dragon scientist.

Thrive Alive

Ada has found a new, strange creature by the shore of a lake. She’s never seen it before, but she’s pretty sure there’s plenty to learn about how it lives by examining its physical traits.

Science Standards

- Construct an argument that plants and animals have structures that support their survival, growth, behavior, and reproduction
- Use a model to describe that animals receive different types of information through their senses, and respond in different ways

Energy Connection

Isaac has built the Chair of the Future, and is demonstrating it for Ada. Each feature of the chair converts electrical power into a different type of energy. See if you can find them all!

Science Standards

- Make observations to provide evidence that energy can be transferred from place to place by sound, light, heat, and electric currents.

Animal Hand-Me-Downs

Ada has developed a machine in her lab that can simulate all possible children given any set of parents. When she loads up these weird creatures into the machine, what will their offspring look like?

Science Standards

- Analyze and interpret data to provide evidence that plants and animals have traits inherited from parents and that variation of these traits exists in a group of similar organisms.

Echo Loco

Ada can’t stop wondering what it must be like to be a bat and see the world through echolocation. So Isaac built her a simulation in his VR system so she can test it out for herself.

Science Standards

- Use a model to describe that animals receive different types of information through their senses, process the information in their brain, and respond to the information in different ways.

- Define a simple design problem that can be solved by applying scientific ideas about magnets
- Analyze and interpret data to show that plants and animals inherit traits from their parents
- Show that variation in inherited traits exists in a group of similar organisms
- Develop models to describe that organisms have unique and diverse life cycles but all have in common birth, growth, reproduction, and death
- Use evidence to construct an explanation for how the variations in characteristics among individuals of the same species may provide advantages in surviving, finding mates, and reproducing

- Make observations to provide evidence that energy can be transferred via sound, light, heat, and electrical currents
- Apply scientific ideas to design, test, and refine a device that converts energy from one form to another
- Construct an argument that plants and animals have structures that support their survival, growth, behavior, and reproduction
- Use a model to describe that animals receive different types of information through their senses, and respond in different ways

- Make observations and measurements to identify materials based on their properties
- Develop a model to describe movement of matter among plants, animals, decomposers, and the environment
- Use models to describe that energy in animals’ food was once energy from the sun
- Support an argument that differences in the apparent brightness of the sun compared to other stars is due to their relative distances from the Earth
- Develop a model using an example to describe ways the geosphere, biosphere, hydrosphere, and/or atmosphere interact

- Define a program that reflects a specific need or want, including specified criteria for success
- Generate and compare multiple possible solutions to a problem
- Plan tests that determine whether the program meets criteria and run them, identifying failure points and points that can be improved
- Iterate on a program by predicting the outcome, running the program to verify, and revising the program to better fit the intended outcome

Over hundreds of engaging coding activities using the Python language, middle school students build a depth of knowledge in computer science and develop strong coding skills.

Students progress from making simple text-based console programs to building complex games and apps with full graphics and sound. Each instructional unit culminates in a collaborative project that students build and manage using a professional product development cycle.

Students progress from making simple text-based console programs to building complex games and apps with full graphics and sound. Each instructional unit culminates in a collaborative project that students build and manage using a professional product development cycle.

Python is a professional programming language with a low floor and high ceiling. One of the easiest languages to read and understand, learning Python can lead to careers in web development, artificial intelligence, data science, game development, and more.

Learn More About Python

Students take a sequence of three courses in the Python language. They progress from computer science fundamentals to advanced coding concepts, all while making engaging graphical apps and games.

This quarter-long course is a great starting point for students to begin coding without requiring an entire semester of instruction. In an abridged format, the course still manages complete coverage of some of the most important fundamental coding concepts, while still allowing students to make engaging text-based games and simple interactive programs that fire the imagination.

- Text Input and Output
- Statements
- Expressions
- Variables
- Concatenation
- Mathematical Operators
- Conditionals

- Comparisons
- Booleans
- Logical Operators
- While Loops
- Libraries
- Randomness
- Debugging

- Write programs that make computers follow instructions
- Write code that makes decisions, choosing between multiple options
- Write code that loops, repeating instructions until certain outcomes are reached
- Pull in outside libraries that increase the capabilities of their programs

A Day at the Beach

A mad-libs style program where students fill in words to create a

fun story

fun story

Coding Concepts

- Input & Output
- Variables
- Data Type Conversion

Fortune Teller

A digital version of the traditional child’s papercraft, with custom

fortunes

fortunes

Coding Concepts

- Conditionals
- Nesting
- Logical Operators

Last Cookie

A logic game where two players compete to see who takes the last cookie from a jar

Coding Concepts

- While Loops
- Logical Operators
- Conditionals

E-Lemonade

A business simulation game where the player runs a lemonade website and tries to maximize profit over one week

Coding Concepts

- Random Choice
- While Loops
- Calling Functions

This course begins the progression of the Coding in Python sequence, introducing the early fundamentals of coding. It blends detailed technical knowledge with engaging coursework, allowing students free-range creativity without sacrificing academic rigor. Students taking this course will receive the basic tools and building-blocks to code not only the assigned programs, but also to design and develop their own unique games and interactive experiences.

- Text Input and Output
- Statements
- Expressions
- Variables
- Mathematical Operators
- Conditionals
- Booleans
- Logical Operators
- While Loops
- Libraries
- Randomness

- Debugging
- Coordinates
- Windows
- Drawing Lines and Shapes
- RGB Colors
- Tuples
- Procedural Animation
- Event Loops
- Mouse and Keyboard Input
- Timing and Framerate

- Write programs that make computers follow instructions
- Write code that makes decisions, choosing between multiple options
- Write code that loops, repeating instructions until certain outcomes are reached
- Pull in outside libraries that increase the capabilities of their programs
- Create code that opens windows on a computer and draw graphics with shapes and colors
- Animate shapes using traditional frame-based animation techniques
- Interpret signals from the mouse and keyboard to control their programs

Last Cookie

A logic game where two players compete to see who takes the last cookie from a jar

Coding Concepts

- While Loops
- Boolean Logic
- Conditionals

E-Lemonade

A business simulation game where the player runs a lemonade website and tries to maximize profit over one week

Coding Concepts

- Random Choice
- While Loops
- Calling Functions

Shade Imposter

A color-perception game where the player tries to guess which shape is a different shade

Coding Concepts

- Drawing Shapes
- RGB Colors

Tortoise vs Hare

An animation that pits smooth, regular movement against random

leaps to see who will finish a race first

leaps to see who will finish a race first

Coding Concepts

- Procedural Animation
- Event Loop
- Quit Event

This course builds on the basics learned in CS101, rounding out the students’ knowledge of CS coding fundamentals. The course introduces image-based graphics, allowing students to produce the sorts of familiar games and dynamic interactive programs that they are already enthusiastic about.

- Lists
- Indexes
- For-Each Loops
- For-Range Loops
- Sprite Images
- Spritesheet Animation

- Collision
- Writing Functions
- Arguments vs Parameters
- Return Values
- Default Parameters
- Passing by Reference

- Store and organize multiple items at once using a list data structure
- Analyze and manipulate lists with looping code
- Create code image objects from .jpg and .png images
- Load animations from a sheet of frame images
- Analyze when two image objects are colliding on screen and write code that reacts to it
- Organize their code to be more efficient and useful
- Use functions to write multiple sections of code that communicate with each other

Word Train

A word game where players have to come up with words starting with the previous player’s last letter, without repeating letters

Coding Concepts

- Strings as Lists
- Indexes
- For-Each Loops

TechSmart Studio

A painting program where the user can select a color and click to

draw

draw

Coding Concepts

- Lists
- Color Tuples
- Procedural Drawing

Sky Dodge

An “infinite runner” game where the user controls a dragon and tries to pop balloons by breathing fire at them while avoiding clouds

Coding Concepts

- Sprites
- Spritesheet Animation
- Sprite Collision

Pop Darts

A timing game where the player tries to pop as many balloons as possible with as few darts as possible in a given time limit

Coding Concepts

- Functions
- Return Values
- Sprite Collision

Coding is a learning medium that can increase engagement and understanding in other subjects. Our middle school content packs empower teachers to integrate coding into math and science courses, tightly coupled with the core subject’s scope and sequence. All activities are designed to further understanding of both computer science and the core subject.

This Core Content pack is designed to integrate into existing middle school Integrated Math courses in order to introduce coding alongside math content, and to illustrate how coding and math can support each other and the many benefits that each can provide to the other. The course is designed such that students may code engaging math-centric programs without any prior coding knowledge, learning the basics of coding as they progress through the course.

Can Cat Fit

A program that calculates whether a cat can fit into a box by using multiplication and inequalities.

Integrated math Standards

- Solve inequalities in one variable
- Define inequalities to represent a problem
- Use units to guide the solution of multi-step problems

Equation Quizzer

A practice aid that automatically makes equations of form ax + b = c, asks students to solve them, and checks the answer.

Integrated math Standards

- Solve two-step equations in one variable
- Create equations in one variable
- Explain each step of solving an equation

The Perfect Jump

A game where players need to solve an inequality to find the right speed the hero needs to jump to the next level.

Integrated math Standards

- Solve multi-step inequalities
- Define inequalities to represent a problem
- Explain the reasoning behind the process of solving an equation

Graphy Bird

A game where players define a line on a coordinate plane using slope-intercept form to make a bird fly past obstacles.

Integrated math Standards

- Graph equations on the coordinate plane
- Define equations in slope-intercept form
- Use function notation

- Understand solving equations as a process of reasoning and explain the reasoning
- Solve equations and inequalities in one variable
- Understand the concept of a function and use function notation
- Experiment with transformations in the plane
- Make geometric constructions
- Summarize, represent, and interpret data on a single count or measurement variable
- Interpret linear models
- Use basic fundamental coding structures common to all coding languages

- Attend to precision
- Reason abstractly and quantitatively
- Make sense of problems and persevere in solving them
- Model with mathematics
- Use appropriate tools strategically
- Look for and make use of structure

This Core Content pack is designed to integrate into existing middle school Algebra courses in order to introduce coding alongside math content, and to illustrate how coding and math can support each other and the many benefits that each can provide to the other. The course is designed such that students may code engaging math-centric programs without any prior coding knowledge, learning the basics of coding as they progress through the course.

Can Cat Fit

A program that calculates whether a cat can fit into a box by using multiplication and inequalities.

Algebra 1 Standards

- Solve inequalities in one variable
- Define inequalities to represent a problem
- Use units to guide the solution of multi-step problems

Equation Quizzer

A practice aid that automatically makes equations of form ax + b = c, asks students to solve them, and checks the answer.

Algebra 1 Standards

- Solve two-step equations in one variable
- Create equations in one variable
- Explain each step of solving an equation

The Perfect Jump

A game where players need to solve an inequality to find the right speed the hero needs to jump to the next level.

Algebra 1 Standards

- Solve multi-step inequalities
- Define inequalities to represent a problem
- Explain the reasoning behind the process of solving an equation

Graphy Bird

A game where players define a line on a coordinate plane using slope-intercept form to make a bird fly past obstacles.

Algebra 1 Standards

- Graph equations on the coordinate plane
- Define equations in slope-intercept form
- Use function notation

- Reason quantitatively and use units to solve problems
- Understand solving equations as a process of reasoning and explain the reasoning
- Solve equations and inequalities in one variable
- Solve systems of equations (linear systems)
- Understand the concept of a function and use function notation
- Build a function that models a relationship between two quantities
- Construct and compare linear, quadratic, and exponential models and solve problems
- Use basic fundamental coding structures common to all coding languages

- Attend to precision
- Reason abstractly and quantitatively
- Make sense of problems and persevere in solving them
- Model with mathematics
- Use appropriate tools strategically
- Look for and make use of structure

At the high school level, students need to prepare for college and job opportunities. That’s why our high school classes build on the rigor and comprehensiveness of our middle school curriculum with a focus on increasing student independence, critical thinking, and problem-solving skills.

Students learn both coding fundamentals and advanced object-oriented thinking using the Python and Java languages. By the end of these courses, students will gain fluency in two professional coding languages, build a comprehensive computer science portfolio, and earn multiple Coding Competency Certifications.

Students learn both coding fundamentals and advanced object-oriented thinking using the Python and Java languages. By the end of these courses, students will gain fluency in two professional coding languages, build a comprehensive computer science portfolio, and earn multiple Coding Competency Certifications.

Python is a professional programming language with a low floor and high ceiling. One of the easiest languages to read and understand, learning Python can lead to careers in web development, artificial intelligence, data science, game development, and more.

Learn More About Python

Java is a popular language, and learning it prepares students for many college and career opportunities. Since it bears strong similarities with other object-oriented languages, learning Java makes it easy to learn many other common languages.

Learn More About Java

These six rigorous courses prepare students for college and careers by focusing on problem solving and critical thinking. Taught in Python and Java, they are designed to build a depth of knowledge in computer science and strong coding fluency.

This course begins the progression of the Coding in Python sequence, introducing the early fundamentals of coding. It blends detailed technical knowledge with engaging coursework, allowing students free-range creativity without sacrificing academic rigor. The course emphasizes logical thinking and problem-solving, critical thinking, and real-world coding application. Students taking this course will receive the basic tools and building-blocks to code not only the assigned programs, but also to design and develop their own unique games and interactive experiences.

- Text Input and Output
- Statements
- Expressions
- Variables
- Mathematical Operators
- Conditionals
- Booleans
- Logical Operators
- While Loops
- Libraries
- Randomness

- Debugging
- Coordinates
- Windows
- Drawing Lines and Shapes
- RGB Colors
- Tuples
- Procedural Animation
- Event Loops
- Mouse and Keyboard Input
- Timing and Framerate

- Write programs that make computers follow instructions
- Write code that makes decisions, choosing between multiple options
- Write code that loops, repeating instructions until certain outcomes are reached
- Pull in outside libraries that increase the capabilities of their programs
- Create code that opens windows on a computer and draw graphics with shapes and colors
- Animate shapes using traditional frame-based animation techniques
- Interpret signals from the mouse and keyboard to control their programs

Last Cookie

A logic game where two players compete to see who takes the last cookie from a jar

Coding Concepts

- While Loops
- Boolean Logic
- Conditionals

E-Lemonade

A business simulation game where the player runs a lemonade website and tries to maximize profit over one week

Coding Concepts

- Random Choice
- While Loops
- Calling Functions

Shade Imposter

A color-perception game where the player tries to guess which shape is a different shade

Coding Concepts

- Drawing Shapes
- RGB Colors

Tortoise vs Hare

An animation that pits smooth, regular movement against random leaps to see who will finish a race first

Coding Concepts

- Procedural Animation
- Event Loop
- Quit Event

This course builds on the basics learned in CS201, rounding out the students’ knowledge of CS coding fundamentals. The course introduces image-based graphics, allowing students to produce the sorts of familiar games and dynamic interactive programs that they are already enthusiastic about. Emphasis is on code organization and the process of designing larger programs.

- Lists
- Indexes
- For-Each Loops
- For-Range Loops
- Sprite Images
- Spritesheet Animation

- Collision
- Writing Functions
- Arguments vs Parameters
- Return Values
- Default Parameters
- Passing by Reference

- Store and organize multiple items at once using a list data structure
- Analyze and manipulate lists with looping code
- Create code image objects from .jpg and .png images
- Load animations from a sheet of frame images
- Analyze when two image objects are colliding on screen and write code that reacts to it
- Organize their code to be more efficient and useful
- Use functions to write multiple sections of code that communicate with each other

Word Train

A word game where players have to come up with words starting with the previous player’s last letter, without repeating letters

Coding Concepts

- Strings as Lists
- Indexes
- For-Each Loops

TechSmart Studio

A painting program where the user can select a color and click to draw

Coding Concepts

- Lists
- Color Tuples
- Procedural Drawing

Sky Dodge

An “infinite runner” game where the user controls a dragon and tries to pop balloons by breathing fire at them while avoiding clouds

Coding Concepts

- Sprites
- Spritesheet Animation
- Sprite Collision

Pop Darts

A timing game where the player tries to pop as many balloons as possible with as few darts as possible in a given time limit

Coding Concepts

- Functions
- Return Values
- Sprite Collision

The second half of the Python curriculum begins to cover more advanced CS topics in more depth, compared to previous courses. Students begin to learn the advanced coding skills that truly prepare them to write detailed, realistic programs, as well as learning all the tricks and techniques that can give their personal programs the next level of polish and creative expression.

- Dictionary Data Structure
- Dictionaries as Objects
- 2D Lists (Grids)
- Font Objects
- Digital Typography
- Sound Files

- Mixers
- Channels
- Asset Attribution
- JSON Files
- Loading and Saving from Data Files

- Organize data in relation to each other with dictionaries
- Approximate real-world objects by storing groups of data together
- Combine multiple levels of lists to create grid-based programs
- Play sound files in programs
- Use fonts in programs to position and draw text on screen
- Store data outside programs in a Python-like format

Sundae Bar

A purchasing app that calculates ice cream costs based on user choices

Coding Concepts

- Dictionaries
- Looping Through Keys
- While Loops

Memrecall

A memory game where the player flips cards and tries to find matching pairs

Coding Concepts

- 2D Lists (Grids)
- Pixel vs Grid Coordinate Conversion
- Functions

Stepping Tones

A music-making program where students select positions in a grid to play different notes on a beat

Coding Concepts

- Sounds
- 2D Lists (Grids)
- Functions

Gremlins Match

A color-matching game where the player has limited time to form little gemlin creatures into rows or columns of three

Coding Concepts

- 2D Lists (Grids)
- JSON Files
- Fonts

The final course in the Python curriculum completes the coverage of coding fundamentals and paves the way for coding in Java. Students learn the building blocks “object-oriented” coding in Python, as well as complex topics they will need in real-world coding scenarios. By the end of this course they will have gained the ability to write not only their own large-scale programs, but also code libraries that can be shared used to support other new coders.

- Class Objects
- Creating Custom Classes
- Overloading Operators
- Writing and Using Custom Libraries
- Encapsulation & Privacy Levels
- Class Inheritance

- Abstract Classes
- Text-Based Data Files
- Advanced String Parsing & Manipulation
- Catching Exceptions
- Raising Exceptions

- Organize data to approximate real-world objects in a professional format
- Write code with an understanding of how it will be used by other coders
- Determine the necessary access and privacy levels for their public code
- Build on and expand the work of other coders as a starting point for their programs
- Read in and manipulate arbitrary text data from outside files
- Protect code from erroneous input and outside code by creating and manipulating system error messages

Blob Lab

A interactive animation where the user clicks to create cute bouncing blobs that disappear after a few moments

Coding Concepts

- Classes
- Constructors
- Methods

Let's Roll

A dice simulator where the user can roll up to 5 dice separately

Coding Concepts

- Classes
- Methods
- Procedural Drawing

Particular Particles

A series of particle effect animations based on different arrangements, colors, and speeds for each particle

Coding Concepts

- Inheritance
- Abstract Methods
- Custom Libraries

Robot Vs Wild

An action game where the user is a tiny robot that must navigate past nature-based obstacles

Coding Concepts

- Inheritance
- Abstract Methods
- Custom Libraries

The first course in the Java progression is intended to be an entry point to coding, suitable for students who did not have access to coding classes in middle school. The Java curriculum is a high-impact set of coding courses, teaching students professional-level coding in a widely-used language while training their critical thinking and problem-solving skills. In addition to engaging, creative coding exercises, students in Java also practice paper problems: offline exercises that focus students specifically on code organization and logical thinking.

- Statements
- Variables
- Expressions
- Text Input and Output
- Data Types
- Conditionals
- Mathematical Operators
- Booleans
- Logical Operators
- While Loops
- For Loops
- Debugging
- Methods

- Objects vs. Primitives
- Arrays
- Collections
- Strings as Collections
- Sprites
- Frames
- Input
- Time
- Sound
- Grids
- Methods
- Default Parameters
- Passing by Reference

- Write code that gives the computer instructions using Java symbols and structures
- Perform mathematical calculations with coding
- Read in and process outside information, both text and hardware (mouse and keyboard)
- Write code that makes decisions, choosing between given options
- Write code that loops, repeating sections of the program either a set number of times or until a given condition is met
- Manipulate data that is stored in related groups such as lists and objects
- Animate images using traditional frame-based animation techniques
- Play sounds in programs
- Combine structures, such as arrays, to make more complex structures, such as grids
- Organize code into common Java structures to make it more efficient

Dog Volume

A whimsical program that compares the size of different types of dog.

Coding Concepts

- Arithmetic Operators
- Numerical Input
- String Concatenation

Appetite Advisor

A cooking app that recommends recipes based on what ingredients the user has available.

Coding Concepts

- Conditionals
- Booleans
- Logical Operators

Power Bet

A card game where two players can strategically spend chips to make their cards better.

Coding Concepts

- Objects vs. Primitives
- Object Instantiation
- Using Methods

Moving Picture Show

A program that uses the console to display a simple animation.

Coding Concepts

- Arrays
- For Loops
- For Each Loops

The second Java course builds on the basic fundamentals of the first course in order to teach the more complex nuances of the Java language. The precision-oriented, focused content is suitable as preparation for the AP computer science exam. Students learn the real-world coding skills that will allow them to create professional, meaningful programs, and upon finishing the course receive a Certificate of Coding Competency in Java from the University of San Diego.

- Defining Classes
- Program Organization
- Overloading
- Static and Final
- Subclasses
- Inheritance
- Interfaces

- Math and Logic
- Non-Decimal Mathematical Bases
- Recursion
- Searching Algorithms
- Sorting Algorithms
- Advanced Input and Output

- Organize their code into professional structures such as objects / classes
- Learn about “object-oriented design” -- thinking of code in terms of real-world objects and categories of objects
- Manipulate code objects to control the way they interface with other Java code
- Learn about how their code may interface with others coders’ programs
- Extend and customize both their own code objects and those written by others
- Understand the unique mathematical formats commonly used in coding
- Understand traditional searching and sorting techniques
- Evaluate and compare traditional algorithms for speed and efficiency
- Use advanced techniques for handling mouse and keyboard input

Coding is a learning medium that can increase engagement and understanding in other subjects. Our high school content packs empower teachers to integrate coding into math and science courses, tightly coupled with the core subject’s scope and sequence. All activities are designed to further understanding of both computer science and the core subject.

This Core Content pack is designed to integrate into existing high school Integrated Math courses in order to introduce coding alongside math content, and to illustrate how coding and math can support each other and the many benefits that each can provide to the other. The course is designed such that students may code engaging math-centric programs without any prior coding knowledge, learning the basics of coding as they progress through the course.

Can Cat Fit

A program that calculates whether a cat can fit into a box by using multiplication and inequalities.

Integrated Math Standards

- Solve inequalities in one variable
- Define inequalities to represent a problem
- Use units to guide the solution of multi-step problems

Equation Quizzer

A practice aid that automatically makes equations of form ax + b = c, asks students to solve them, and checks the answer.

Integrated Math Standards

- Solve two-step equations in one variable
- Create equations in one variable
- Explain each step of solving an equation

The Perfect Jump

A game where players need to solve an inequality to find the right speed the hero needs to jump to the next level.

Integrated Math Standards

- Solve multi-step inequalities
- Define inequalities to represent a problem
- Explain the reasoning behind the process of solving an equation

Graphy Bird

A game where players define a line on a coordinate plane using slope-intercept form to make a bird fly past obstacles.

Integrated Math Standards

- Graph equations on the coordinate plane
- Define equations in slope-intercept form
- Use function notation

- Interpret the structure of expressions
- Solve equations, inequalities, and systems of equations with one or more variables
- Represent and solve equations and inequalities graphically
- Understand and interpret functions
- Model functional relationships between two quantities
- Visualize geometric theorems, properties, and transformations
- Summarize, represent, and interpret data on two categorical and quantitative variables
- Students learn a few basic fundamental coding structures common to all coding languages

- Attend to precision
- Reason abstractly and quantitatively
- Make sense of problems and persevere in solving them
- Model with mathematics
- Use appropriate tools strategically
- Look for and make use of structure

This Core Content pack is designed to integrate into existing high school Algebra courses in order to introduce coding alongside math content, and to illustrate how coding and math can support each other and the many benefits that each can provide to the other. The course is designed such that students may code engaging math-centric programs without any prior coding knowledge, learning the basics of coding as they progress through the course.

Can Cat Fit

A program that calculates whether a cat can fit into a box by using multiplication and inequalities.

Algebra 1 Standards

- Solve inequalities in one variable
- Define inequalities to represent a problem
- Use units to guide the solution of multi-step problems

Equation Quizzer

Algebra 1 Standards

- Solve two-step equations in one variable
- Create equations in one variable
- Explain each step of solving an equation

The Perfect Jump

Algebra 1 Standards

- Solve multi-step inequalities
- Define inequalities to represent a problem
- Explain the reasoning behind the process of solving an equation

Graphy Bird

Algebra 1 Standards

- Graph equations on the coordinate plane
- Define equations in slope-intercept form
- Use function notation

- Create equations and inequalities in one variable and use them to solve problems
- Solve linear equations and inequalities in one variable, including equations with coefficients represented by letters
- Write a function that describes a relationship between two quantities
- Write equations that represent functions
- Write and graph linear equations using point-slope form
- Solve systems of equations by graphing
- Solve systems of linear equations exactly and approximately (with graphs)
- Construct linear and exponential functions, including arithmetic and geometric sequences
- Students learn a few basic fundamental coding structures common to all coding languages

- Attend to precision
- Reason abstractly and quantitatively
- Make sense of problems and persevere in solving them
- Model with mathematics
- Use appropriate tools strategically
- Look for and make use of structure