Skip to content

Curriculum Overview ​

Welcome to the XBot programming curriculum. You will go from writing your first Java code to making a robot drive itself.

No programming experience? Start here. The curriculum assumes you know nothing about programming and teaches you everything step by step. Java Basics covers the minimum you need to begin, and the Java track below goes deeper when you want it.

Work through the steps in order. Each challenge builds on the one before it.

Setup ​

Get your accounts, tools, and a copy of the code before writing anything.

StepWhat You Will Do
OnboardingSet up accounts and install the software you need
Environment SetupFork the practice project and open it in IntelliJ
Java BasicsThe minimum Java you need to get started

Programming on the competition robot during the season? In-Season Onboarding covers the extra hardware tools you will need.

Reference ​

Background you will be pointed at from the challenges, and can come back to any time.

PageWhat It Covers
Running the SimulatorDrive your code on a virtual field, and watch it in AdvantageScope
Robot ArchitectureSubsystems, Commands, the Scheduler, and how they fit together
Robot Coordinate ConventionsWhich way is positive, for both the robot and the field
Mapping Buttons to CommandsBinding commands to gamepad buttons
Git IntroductionWhat source control is, and the terms you will see
Clone with GitHub DesktopGetting a copy of a repository onto your computer

Java track ​

Java Basics is deliberately short -- just enough to start driving a robot. These two pages go further, and you can work through them alongside the challenges rather than before them.

PageWhat It Covers
Object-Oriented ProgrammingEncapsulation, inheritance, polymorphism, abstraction
Intermediate JavaGenerics, lambdas, Optional, collections, streams, enums

Of the two, get comfortable with classes and objects before the Auto-stopping Collector challenge -- that is the first time you write a class from scratch rather than filling in a method.

Challenges ​

Hands-on exercises in the XbotEdu practice project. Each one has unit tests, so you can check your own work without a physical robot.

StepWhat You Will Build
Basic Robot PrinciplesWatch the command scheduler run, and see commands conflict
Tank DriveDrive a robot with two joysticks
Altering Tank DrivePrecision mode and arcade drive, mapped to buttons
Moving to a Target PositionDrive to an exact distance and stop there
Making a Pull RequestSubmit your work for review
Rotating to a Target OrientationTurn to a heading, including the tricky angle math
Command GroupsCombine commands into an autonomous square
Providers & FactoriesHow the team's code creates objects it cannot build directly
Dependency InjectionWhy your classes are handed what they need, and how
Upgrading Using the SeriouslyCommonLibReplace your own control code with the team's library
Running on a Real RobotDeploy your code to a RoboRIO
Auto-stopping CollectorBuild a subsystem and commands from scratch

Once those are done, there is one more, considerably harder:

AdvancedWhat You Will Build
Advanced Swerve ChallengesDrive a swerve chassis: steer and drive each module independently

AI Tools ​

ModuleWhat You Will Learn
AI Tools SetupConfigure and initialize OpenCode
Built-in CommandsSlash commands, undo, share, custom commands
Workflow TipsWriting prompts, Plan vs Build mode
Responsible AI UseEthics, code review, simulation, safety

What's Next? ​

After finishing the curriculum, move on to Core Programming to learn the patterns the competition code is built on: maintainers, swerve drive, properties and tuning.

Practice Repo ​

All exercises use XbotEdu -- a practice robot project with unit tests so you can code without a physical robot.

bash
git clone https://github.com/Team488/XbotEdu.git
cd XbotEdu
./gradlew test

Built for XBot Robotics Team 488