|
Can read Cartesian coordinates |
Neophyte
|
Cartesian Coordinates
|
Understands basic Arithmetic |
Neophyte
|
Arithmetic Basics
|
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
|
Polar coordinates |
Developer
|
Polar Coordinates
|
Spherical coordinates |
Developer
|
Spherical Coordinates
|
|
Local vs Global Scoping |
Hacker
|
Scoping
|
While Loops |
Hacker
|
While Looper
|
processing shape functions (rect, ellipse, line, triangle) |
Hacker
|
Processing Shapes
|
Can use if/else statements |
Hacker
|
If/else Statements
|
Access array elements |
Hacker
|
Array Access
|
Understands basic processing built-in 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
|
Variables |
Hacker
|
Variables
|
/rank_requirements/170 |
Hacker
|
|
for loops |
Coder
|
For Loops
|
Array methods (length, push, can look up an use additional methods) |
Coder
|
Array Methods
|
Class declaration with constructor |
Coder
|
Class Declaration
|
Class methods |
Coder
|
Class Methods
|
for...of loops |
Coder
|
For Of Loops
|
Can use return statements in functions |
Coder
|
Returns
|
Statically vs dynamically typed programming |
Developer
|
Static vs Dynamic Typing
|
Callbacks/higher order functions |
Developer
|
Callbacks
|
Rudimentary understanding of functional programming (map, reduce, apply, filter) |
Developer
|
Functional Programming Basics
|
|
|
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
|
Can independently navigate web pages (open, forward/back, refresh, enter username/password) |
Neophyte
|
Web page naivigator
|
Copy, Paste, Undo shortcuts |
Hacker
|
Copy Paste Undo
|
Single user git basics (pull, push, clone, commit, etc) |
Developer
|
Single-user Git Basics
|
|
|
|
|
|
|
Can read and follow directions |
Neophyte
|
Reads and Follows Directions
|
Works through lessons independently |
Hacker
|
Works Independently
|
Correct use of indentation and reasonable use of whitespace in code |
Coder
|
Indentation and Whitespace
|
Can read external reference materials |
Coder
|
External Referencer
|
Can translate appropriate pseudocode |
Coder
|
Pseudocode
|
Can explain programming issues with proper vocabulary or diagrams |
Coder
|
Explainer Basics
|
API calls |
Developer
|
API Calls
|
Proficient in programming syntax (can write in a variety of languages and look up new syntax when needed |
Developer
|
Proficient in Programming Syntax
|
Able to answer and explain programming fundamentals questions from Coder level students |
Developer
|
Can Answer Coder Level Questions
|
Ask a good question on Stack Overflow |
Developer
|
Stack Overflow
|
Create a Coder or above level exercise for other students |
Developer
|
Coder Exercise Maker
|
Peer coding project (both contributing significant code to the project.) |
Developer
|
Peer Coding Project
|
Codes neatly according to a reasonable convention (consistency and clarity are what's important) |
Developer
|
Coding Convention
|
|
|
|
Student Portfolio with project |
Hacker
|
Porfolio
|
Basic RGB color knowledge (Red, Green, Blue, White, Black, Purple, Yellow) |
Hacker
|
RGB
|
Prevent and debug infinite loops |
Hacker
|
Infinite Loop Debugger
|
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
|
Uses debugging techniques (such as using console.log or running test programs) |
Coder
|
Debugging techniques
|
Write skill-level-appropriate efficient code (use of loops, functions, "do not repeat yourself") |
Coder
|
Efficiency Basics
|
Works outside of classtime (More than one day a week) |
Coder
|
Work From Home
Works at Home
|
Compete in a programming competition outside of code club (example: ludum dare) |
Developer
|
Outside Programming Competition
|
Big O notation |
Developer
|
Big O Notation
|
Designs and builds own projects |
Developer
|
Designs and Builds Projects
|
Website with programming portfolio (github pages) |
Developer
|
Web Portfolio
|
Mid level example interview questions |
Developer
|
Mid Level Interview Questions
|
Simple example interview questions |
Developer
|
Simple Interview Questions
|
|
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
|
Collision detection (rectangle,circle,triangle, composite) |
Developer
|
Primitive Collision Detection
|
Vector math (arithmetic, cross/dot product) |
Developer
|
Cross and Dot Product
|
A* pathfinding |
Developer
|
A* Pathfinding
|
Equations of motion |
Developer
|
Equations of Motion
|
Can implement gravity |
Developer
|
Gravity
|