Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions docs/curriculum/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,29 @@

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](getting-started/java-basics) covers the minimum you need to begin, and the [Java track](#java-track) below goes deeper when you want it.
**Everyone starts here**, whatever your programming background. Do the [Setup](#setup) steps, then work through the [Challenges](#challenges) in order -- each one builds on the one before it. The robot concepts are new to almost everybody.

Work through the steps in order. Each challenge builds on the one before it.
## Do I know enough Java?

This curriculum teaches **robot programming**, not the Java language. It assumes you can already:

- read and set a variable
- use `if` statements
- write a method that takes parameters and returns a value
- read code that uses classes and objects

[Java Basics](getting-started/java-basics) is a quick tour of that, enough to recognize what you are looking at in the robot code.

**If that list is unfamiliar, learn the language first.** Two free options:

| Resource | Why |
|----------|-----|
| [CodeHS AP Computer Science A](https://codehs.com/info/curriculum/apjava) | Our first choice. Runs entirely in the browser with nothing to install, and autogrades as you go. The first few units are all you need to begin. |
| [Helsinki Java MOOC](https://java-programming.mooc.fi/) | A thorough, well-regarded free course if you would rather go deeper. |

You do not have to finish either one before starting. The early challenges need very little Java -- read a joystick value, call a method -- so most people work through the language material **alongside** the first few challenges. The one thing to have solid before the [Auto-stopping Collector](challenges/auto-stopping-collector) challenge is **classes and objects**, since that is where you start writing a class of your own.

Already comfortable with Java? Skim [Java Basics](getting-started/java-basics) for the conventions we use, skip the [Java track](#java-track), and go straight to the challenges.

## Setup

Expand Down Expand Up @@ -32,7 +52,7 @@ Background you will be pointed at from the challenges, and can come back to any

## Java track

[Java Basics](getting-started/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.
[Java Basics](getting-started/java-basics) is deliberately short -- just enough to start driving a robot. These two pages go further on the language itself, and pair well with [CodeHS](https://codehs.com/info/curriculum/apjava) if you are learning Java from scratch. Work through them alongside the challenges rather than before them.

| Page | What It Covers |
|------|----------------|
Expand Down
Loading