MVCode Clubs Learning Plan

Each student works independently, and is tracked towards common learning outcomes.

Badges, points and ranks help motivate students to achieve their goals.

Requirement Rank Badges

Math

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

Programming Fundamentals

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

Reading Comprehension

Computer Fundamentals

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 Single-user Git Basics

Developer Toolchain

Product Development and Design

Art and Graphic Design

Problem solving and Computational Thinking

Focus and Effortful Practice

Communication

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

Robotics and Engineering

Programming Languages

Creativity and Design

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

Engineering and Applied Math

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