
Understands basic Arithmetic 
Neophyte

Arithmetic Basics

Can read Cartesian coordinates 
Neophyte

Cartesian Coordinates

Arithmetic: Multiplication/Division/Negatives/Decimals/Inequalities 
Hacker

Arithmetic Basics 2

Elementary understanding of sine. (Amplitude, period) 
Coder

Sine Wave Basics

Can plot mathematical functions 
Coder

Function Plotter

Basic shape area and perimeter formulas (rectangles, circles, triangles) 
Coder

Area and Perimeter Basics

Can solve right triangles (Find missing angles and sides) 
Coder

Trigonometry with Right Triangles

Pythagorean theorem 
Coder

Pythagorean Theorem

Basic Algebra (first order polynomials, averages, sqrt, pow) 
Coder

Algebra Basics

Second order polynomials 
Developer

Second Order Polynomials

Spherical coordinates 
Developer

Spherical Coordinates

Polar coordinates 
Developer

Polar Coordinates


Variables 
Hacker

Variables

processing shape functions (rect, ellipse, line, triangle) 
Hacker

Processing Shapes

Can use if/else statements 
Hacker

If/else Statements

While Loops 
Hacker

While Looper

Access array elements 
Hacker

Array Access

Understands basic processing builtin functions: draw, setup, keyPressed 
Hacker

Processing Functions

Mouse and Keyboard input (keyPressed, keyReleased, mousePressed, mouseReleased) 
Hacker

Processing Mouse and Keyboard

function declaration vs function calls 
Hacker

Functions Declaration vs Call

Access object properties 
Hacker

Object Property Access

Processing image function 
Hacker

Processing Images

Local vs Global Scoping 
Hacker

Scoping

Class declaration with constructor 
Coder

Class Declaration

for...of loops 
Coder

For Of Loops

Array methods (length, push, can look up an use additional methods) 
Coder

Array Methods

for loops 
Coder

For Loops

Can use return statements in functions 
Coder

Returns

Class methods 
Coder

Class Methods

Callbacks/higher order functions 
Developer

Callbacks

Rudimentary understanding of functional programming (map, reduce, apply, filter) 
Developer

Functional Programming Basics

Statically vs dynamically typed programming 
Developer

Static vs Dynamic Typing



Can independently navigate web pages (open, forward/back, refresh, enter username/password) 
Neophyte

Web page naivigator

Can navigate to their Scratch account and lesson 
Neophyte

Scratcher

Intuitive use of left vs right click 
Neophyte

Left/Right Click

Can use a keyboard 
Neophyte

Keyboarder

Copy, Paste, Undo shortcuts 
Hacker

Copy Paste Undo

Single user git basics (pull, push, clone, commit, etc) 
Developer

Singleuser Git Basics







Can read and follow directions 
Neophyte

Reads and Follows Directions

Works through lessons independently 
Hacker

Works Independently

Can explain programming issues with proper vocabulary or diagrams 
Coder

Explainer Basics

Can translate appropriate pseudocode 
Coder

Pseudocode

Correct use of indentation and reasonable use of whitespace in code 
Coder

Indentation and Whitespace

Can read external reference materials 
Coder

External Referencer

Able to answer and explain programming fundamentals questions from Coder level students 
Developer

Can Answer Coder Level Questions

API calls 
Developer

API Calls

Codes neatly according to a reasonable convention (consistency and clarity are what's important) 
Developer

Coding Convention

Peer coding project (both contributing significant code to the project.) 
Developer

Peer Coding Project

Proficient in programming syntax (can write in a variety of languages and look up new syntax when needed 
Developer

Proficient in Programming Syntax

Ask a good question on Stack Overflow 
Developer

Stack Overflow

Create a Coder or above level exercise for other students 
Developer

Coder Exercise Maker




Prevent and debug infinite loops 
Hacker

Infinite Loop Debugger

Basic RGB color knowledge (Red, Green, Blue, White, Black, Purple, Yellow) 
Hacker

RGB

Student Portfolio with project 
Hacker

Porfolio

Uses debugging techniques (such as using console.log or running test programs) 
Coder

Debugging techniques

Creation of independent project which demonstrates proficiency of concepts 
Coder

Independent Project

Makes use of function parameters to simplify code 
Coder

Function Parameters

Can make meaningful modifications to example projects or lessons 
Coder

Meaningful Modifications

Write skilllevelappropriate efficient code (use of loops, functions, "do not repeat yourself") 
Coder

Efficiency Basics

Works outside of classtime (More than one day a week) 
Coder

Works at Home

Compete in a programming competition outside of code club (example: ludum dare) 
Developer

Outside Programming Competition

Designs and builds own projects 
Developer

Designs and Builds Projects

Simple example interview questions 
Developer

Simple Interview Questions

Mid level example interview questions 
Developer

Mid Level Interview Questions

Big O notation 
Developer

Big O Notation

Website with programming portfolio (github pages) 
Developer

Web Portfolio


Rectangular Collision Detection 
Coder

Rectangular Collision Detection

can design and build simple algorithms (sorting, reverse string, fibonnaci, etc...) 
Coder

Algorithms Basics

Understanding of vector addition and subtraction 
Coder

Vector Basics

Equations of motion 
Developer

Equations of Motion

A* pathfinding 
Developer

A* Pathfinding

Vector math (arithmetic, cross/dot product) 
Developer

Cross and Dot Product

Can implement gravity 
Developer

Gravity

Collision detection (rectangle,circle,triangle, composite) 
Developer

Primitive Collision Detection
