2D Math + Python Foundations
This year uses a FIRST LEGO Challenge robot car on a map as a living 2D world. Students learn matrix representations of vectors, 2D representations of linear equations, and foundational Python by writing function calls, loops, and if/else logic with the FIRST LEGO Python library.
We ground every concept in navigation: points, vectors, and equations become decisions a robot makes as it drives across a 2D map.
Spring 2026
Course focus
Key themes
- 2D space, points, vectors, and matrix representations
- 2D representations of linear equations on a map
- Python fundamentals: functions, loops, and conditionals
Hands-on moments
- Program a FIRST LEGO Challenge robot car to navigate a 2D map.
- Use the FIRST LEGO Python library and function calls to control movement.
- Practice loops and if/else logic to make navigation reliable.
Outcomes
- Explain vectors and linear equations with 2D map examples.
- Write beginner Python programs using functions, loops, and conditionals.
- Connect robot movement to 2D math representations.
Week-by-week plan
Subject to change based on cohort pace and feedback.
- 01
Course kickoff and 2D maps
MathReading MaterialCoordinate plane, points, and map orientation.
- 02
Points and distance
MathReinforce coordinate plane concepts from Week 01 and explore distance between two points.
Computer SetupInstall LEGO Education SPIKE App (https://education.lego.com/en-us/downloads/spike-app/software/) or verify browser access to https://spike.legoeducation.com/.
PythonLEGO Spike Prime IDE setup and driving SPIKE PRIME using helper functions with the FIRST LEGO Python library.
RobotReading MaterialDrive calibration and distance moves with move_for_degrees to reach map checkpoints.
- 03
Linear equations and coordinate systems
MathReading MaterialUse systems of two-variable linear equations to understand non-perpendicular ("wacky") coordinate systems and convert between them.
- 04
Vectors in AI, 3D Space, and Python Basics
MathWord embeddings (king - man + woman = queen), 3D coordinate systems, and locating points in 3D space.
PythonReading MaterialGoogle Colab setup, variable types (int, float, str, list), and NumPy matrix multiplication.
- 05
Vector addition and scalar multiplication
MathAdding vectors together and multiplying vectors by scalars for movement planning.
PythonReading MaterialIntroduction to for loops for iterating through vector components.
- 06
What is intelligence?
MathIntroduction to input and output.
AIWhat makes a task "intelligent"?
AIReading MaterialGoogle Teachable Machine: training a dogs vs. cats classifier.
- 07
Finding the best line, one step at a time
MathAbsolute error, slope of the error, and the gradient descent update rule.
PythonLists, for loops, functions, and matplotlib scatter/line plots for gradient descent.
AIGradient descent: start with a random guess and improve step by step.
AIReading MaterialLearning rate: controlling the size of each update step.
- 08
Review Week — Connecting the Dots
MathComprehensive review of coordinate systems, vectors, and their applications.
PythonReview of variables, lists, for loops, functions, and matplotlib plotting.
AIConnecting all concepts: from abstraction to gradient descent.
AIReading MaterialComprehensive challenge: implement linear regression from scratch.
- 09
Bringing Python skills to LEGO Spike
MathExterior angles of regular polygons (360 ÷ n).
PythonConfig blocks, custom functions (drive_straight, turn), for loops for repeated patterns, and mission lists for multi-step routes.
RobotReading MaterialDrive polygons, tune config variables, and navigate a multi-waypoint course.
- 10
To be updated
MathTo be updated.
- 11
To be updated
MathTo be updated.
- 12
To be updated
MathTo be updated.
- 13
To be updated
MathTo be updated.
- 14
To be updated
MathTo be updated.
- 15
To be updated
MathTo be updated.
- 16
To be updated
MathTo be updated.
Topics under consideration
The following topics from Weeks 07–16 are under review and will be assigned to specific weeks as the course progresses.
Math
- y = mx + b and representing lines on the map
- Solve for the intersection of two lines
- Break routes into line segments and waypoints
- Distance targets as conditions
- Add vectors to track total displacement
- Combine transforms to plan a route on a grid
- Tolerance and small error corrections
- Define points, vectors, and line equations for a custom mission
Python
- Decomposition: break programs into small functions
- Lists for route segments and checkpoints
- Dicts and configs for centralized tuning
- Modules and multi-file organization
- Testing with assert and quick A/B checks
- Micro-UI/menu for selecting runs
- Logs, notes, and debrief records for repeatability
- Write a plan and outline modules before coding
- Implement with the FIRST LEGO Python library and test
- Refactor functions and clean up code structure
Robot
- Align then actuate an attachment motor
- Distance sensor approach and standoff
- Repeat multi-leg paths using shared tuning
- Two-mission chain in one launch
- Turn-in-place vs arc turn comparisons
- 2:30 run discipline with reset roles
- Time-boxed rehearsal and checklist habits
- Sketch the path and assign team roles
- Run a full mission and capture results
- Polish the final run for reliability
- Demo the final mission and reflect on improvements