Platform 
Name 
Summary 
Rank Requirements 

processing images 
You can use the image function to display any images you have loaded in processing 


For Of Loops 
Iterate through a loop of items 


Rectangular Collision Detection 
How to detect if two rectangles are colliding with each other 


Array Access 
A type of variable which hold multiple values at once 


Processing Shapes 
How to use the basic processingjs shape functions 


Function declaration vs call 
Functions must be told what they do (declared) and when to do it (called) 


RGB colors 
Red Green Blue color system 


Processing Mouse and Keyboard Input 
processing has builtin functions that activate when you press on the mouse or keyboard 


Processing Functions 
processingjs has a bunch of built in functions that you should memorize. 


If/else statements 
A logic structure that let's us tell something to only happen "if" something is true 


Equations of Motion 
Equations which describe how a body moves and reacts to applied forces 


for loops 
for loops are a short hand for while loops with iterators 


Array Methods 
Special functions (methods) you can call on arrays 

JavaScript 
JavaScript Console 
How to use Chrome's JavaScript console 

HTML 
Portfolio 
Create a portfolio website to show the work you have done, and let friends play your games 


Object Property Access 
Objects are variables with a bunch of properties which you can access and modify 


While Loops 
Repeat a section of code while a condition is true 


Circular Collision Detection 
Detecting collision between two overlapping circles 


Big O notation 
a method for describing worstcase number of computations required by an algorithm 


Indentation 
Indent inside of your code blocks for improved readability 


SingleUser Git Basics 
Maintain a github account and learn to add, commit, push, and pull in order to save your projects remotely 


Meaningful Modifications 
Go beyond the material in your lessons and create something with the concepts you've just learned 


Debugging techniques 
Simple techniques to help you debug your programs by yourself 


Efficiency Basics 
Techniques to make your code faster and in less lines 


Read External Reference Materials 
There are many sources on the web which can help you learn, here is what to look for and how to use the information you find 


Pseudocode translation 
Translate back and forth between humanreadable instructions and code that your computer understands 


Simple Algorithms 
An algorithm is a process or set of rules meant to achieve a result such as sorting a list or detecting overlapping regions in space 


Pythagorean theorem 
Find the distance between two points in space by solving the right triangle made between the points and their x/yaxes 


API calls 
Using functions provided by an outside source allowing your program to interface with their data 


Coding Convention 
A set of rules and guiding principles that provide a standard for writing your programs 


Static vs Dynamic Typing 
Variable typing and memory size allocation 


Simple Interview questions 
Some examples of problems you may see in a coding interview for an internship or job 


Function Callbacks 
Passing a function to another function to be ran (called) after the initial function finishes 


Functional programming basics 
What is functional programming? How to use basic functions such as map, reduce, apply, filter 


Dot and Cross Products 
Vector functions which describe how "aligned" two vectors are 


A* Pathifinding 
A grid based pathfinding algorithm 


Function Parameters 
Provide inputs to your functions using parameters 


Class Declaration 
Declare a class and create a constructor 


Sine and Cosine Waves 
Learn to use the sin() and cos() functions in your projects to create oscillations and rotations 


Mid level example interview questions 
Mid level example interview questions 


Scoping: Local vs Global 
Understand the difference between locally scoped variables and globally scoped variables 


Midlevel programming interview questions 
More difficult examples of programming job/internship questions you may find 


Spherical Coordinates 
The 3Dequivalent of polar coordinates using a radius and two perpendicular angles (theta and phi) 


Return statements 
Use return statements to receive output from a function for use in your program 


Polar Coordinates 
An alternative to x/ycoordinates which instead uses radius and an angle to define a position 


Plotting Mathematical Functions 
Create graphs to help visualize and make sense of collected data 


Variables 
Variables store data which you can modify and then look at later. 


Cartesian Coordinates 
Coordinates let us say where something in on a flat surface. 


Vectors 
A type of data which can represent different qualities such as position, speed, and direction as an arrow which can be analyzed and manipulated 


Class Methods 
These are the actions a class object are able to perform. 


Algebra Basics 
Solve first order polynomials for a given variable 


Understands basic Arithmetic 
Understands basic Arithmetic 


Can use a keyboard 
Can use a keyboard 


Can use if/else statements 
Can use if/else statements 


Prevent and debug infinite loops 
Prevent and debug infinite loops 


Access array elements 
Access array elements 


function declaration vs function calls 
function declaration vs function calls 


Access object properties 
Access object properties 


Processing image function 
Processing image function 


Copy, Paste, Undo shortcuts 
Copy, Paste, Undo shortcuts 


Class declaration with constructor 
Class declaration with constructor 


Class methods 
Class methods 


for...of loops 
for...of loops 

Scratch 
Scratch User Interface 
Can navigate to their Scratch account and lesson 


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


Arithmetic 
Multiplication Division Negatives Decimals Inequalities 

Processing.js 
Basic Processing Functions 
Understands basic processing builtin functions: draw, setup, keyPressed 


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


Mouse Navigation 
Intuitive use of left vs right click 

Processing.js 
shape functions 
processing shape functions (rect, ellipse, line, triangle) 


Cartesian coordinates 
Can read Cartesian coordinates 


Makes use of function parameters to simplify code 
Makes use of function parameters to simplify code 


Can plot mathematical functions 
Can plot mathematical functions 


Designs and builds own projects 
Designs and builds own projects 


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


Polar coordinates 
Polar coordinates 


Equations of motion 
Equations of motion 


Second order polynomials 
Second order polynomials 


Create a Coder or above level exercise for other students 
Create a Coder or above level exercise for other students 


Works through lessons independently 
Works through lessons independently 


Simple example interview questions 
Simple example interview questions 


Can make meaningful modifications to example projects or lessons 
Can make meaningful modifications to example projects or lessons 


Website with programming portfolio (github pages) 
Website with programming portfolio (github pages) 


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


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


Can read external reference materials 
Can read external reference materials 


Student Portfolio with project 
Student Portfolio with project 


A* pathfinding 
A* pathfinding 


Read and follow directions 
Can read and follow directions 


Asking Good Questions 
Ask a good question on Stack Overflow 


Vector addition and subtraction 
Understanding of vector addition and subtraction 


return statements 
Can use return statements in functions 


Communication 
Can explain programming issues with proper vocabulary or diagrams 


pseudocode 
Can translate appropriate pseudocode 


Type Systems 
Statically vs dynamically typed programming 


Callbacks 
Callbacks/higher order functions 


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


Gravity 
Can implement gravity 


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


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


Code formatting 
Correct use of indentation and reasonable use of whitespace in code 


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


Vector math 
Vector math (arithmetic, cross/dot product) 


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


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


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


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


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


Spherical coordinates 
Spherical coordinates 


Code Scope 
Local vs Global Scoping 


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


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


Sine 
Elementary understanding of sine. (Amplitude, period) 


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


Independent project 
Creation of independent project which demonstrates proficiency of concepts 


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


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


Object Creation 
Understands how to create new objects in memory 
