The Stages
The course progressively builds complexity while reinforcing core concepts of good software development practices, controls fundamentals, and code organization. It starts with basic code to control a 2026 kitbot and progresses through more complex robots and mechanisms.
Stage Section Overview
Section titled “Stage Section Overview”Stage 0: Java Fundamentals
- Teaches students foundational principles for programming in Java
- Recommended for all students who are not already experienced with Java programming
- For a guide on setting up the necessary programming environment, please refer to “Course Setup” in the learning course
Stage 1A: Basic FRC Programming
- Introduces students to the 2026 Kitbot, which will be utilized throughout Stage 1
- Teaches the basics of FRC motor controller and gamepad interaction
- Students will have a functional teleoperated kitbot program and a basic auto
Stage 1B: Introduction to Command-Based Programming
- Introduces command-based programming (using Commands v3)
- Introduces concepts such as triggers, scheduling, and suppliers
- Students will use what they learned in 1A to write kitbot code that uses command-based principles
- Students will have a functional teleoperated kitbot program and a more advanced auto
Stage 1C: Control and Telemetry
- Introduces PID control
- Introduces logging and telemetry
- Students will have a functional teleoperated kitbot program with automatic movement capabilities and increased live data acccess
Stage 2: 2025 Robot
- Introduces feedforward control and mechanism dynamics
- Provides techniques for additional teleoperated automation
- Students will write entire
Mechanisms on their own - Introduces Commands v3 state machines
- Discusses various code structure and organization choices that will have to be made in any given robot project
- Covers one technique to prevent mechanisms from colliding with the rest of the robot
Additionally, all stages will naturally include a significant amount of debugging experience as students write their code. Debugging is a critical skill that all students should know as, inevitably, some code won’t work as expected on the first try.