Courses designed for mastery.

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

Elementary SchoolMiddle SchoolHigh School

Elementary School

More than just an introduction to code.

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.

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.

Introducing Skylark.


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

01

Block Code

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.

02

Hybrid 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.

03

Line Code

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.

Coding Courses

Our elementary school progression consists of three 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.

Screenshot of game

Aetherial

A world of adventure that connects each coding activity.

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.

CS10: Coding in Skylark 1

Course Description

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.

Language:

Coding Concepts
  • Events
  • Frames
  • Sprites
  • Variables
  • Math Operators
  • Animation
  • Scale
  • Input and Output
  • If-Else Conditionals
  • Randomness
Outcomes
  • Write programs that make computers follow instructions
  • Create animations that move characters around on screen
  • Precisely time and control character movement and animation
  • Dynamically change the scale of characters using decimal values
  • Process text-based information from the user
  • Write code that makes decisions, choosing between multiple options
  • Include random elements to make games fun and unpredictable

Students will code:

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

CS20: Coding in Skylark 2

Course Description

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, traveling alongside familiar characters as they visit new worlds and make new friends. Students in CS20 gain mastery of block-based coding that allows them to create an incredible variety of custom programs.

Language:

Coding Concepts
  • Coordinates
  • Mouse and Keyboard Input
  • Sprite Collision
  • Else-If Conditional Clauses
  • Boolean Logic
  • Nested Conditionals
Outcomes
  • Specify position on-screen based on coordinates
  • Write code that reacts to input from the mouse and keyboard
  • Write code that reacts to when characters collide on-screen
  • Ask more complex logical questions sequentially in code
  • Ask more complex logical questions simultaneously in code
  • Ask complex logical questions with dependencies in code

Students will 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
Coding Concepts
  • Sprite Collision
  • Advanced Conditionals
Up, Up, and Away
A game where Breeze carries Boulder up to the air city, dodging
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

CS30: Transition to Python 1

Course Description

The final course in 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. 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!

Language:

Coding Concepts
  • Main Program
  • Code Organization
  • Comments
  • Assignment Syntax
  • Data Types
  • Mathematical Operators
  • Text Input & Output
  • Conditional Syntax
  • Comparison Syntax
  • Indentation
  • Boolean Values
Outcomes
  • 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
  • Differentiate between types of data in greater detail
  • Use new Python-only operators, functions, and types
  • Control Python code flow based on indentation level
  • Write short programs entirely in typed Python code

Students will code:

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
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

Middle School

The path to build strong coding skills.

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.

Why Python?


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

Coding Courses

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.

CS100: Intro to Python Coding

Course Description

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.

Language:

Coding Concepts
  • Text Input and Output
  • Statements
  • Expressions
  • Variables
  • Concatenation
  • Mathematical Operators
  • Conditionals
  • Comparisons
  • Booleans
  • Logical Operators
  • While Loops
  • Libraries
  • Randomness
  • Debugging
Outcomes
  • 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

Students will code:

A Day at the Beach
A mad-libs style program where students fill in words to create a
fun story
Coding Concepts
  • Input & Output
  • Variables
  • Data Type Conversion
Fortune Teller
A digital version of the traditional child’s papercraft, with custom
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

CS101: Coding in Python 1

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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

CS102: Coding in Python 2

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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

High School

Preparing students to compete for coding jobs.

At the high school level, students need to prepare for coding 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 language. By the end of these courses, students will gain fluency in a widely-used professional coding language, build a comprehensive computer science portfolio, and earn multiple Coding Competency Certifications.

Why Python?


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

Coding Courses

These four rigorous courses prepare students to step directly into the computer science industry by focusing on problem-solving and critical thinking. Taught in Python, they are designed to build a depth of knowledge in computer science and strong coding fluency.

CS201: Coding in Python 1

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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

CS202: Coding in Python 2

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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

CS203: Coding in Python 3

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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
Gemlin 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

CS204: Coding in Python 4

Course Description

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.

Language:

Coding Concepts
  • 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
Outcomes
  • 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

Students will code:

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

Take the first step.

Let’s talk about how we can help.

Take the first step.

Let’s talk about how we can help.

Take the first step.

Let’s talk about how we can help.