An effort to outline a curriculum and resources for learning programming FRC robots.
Crash course to get students to the point that they can write, build, deploy, run, and debug robot code.
- Lesson 0 Software Installation
- Lesson 1 Building Robot Code
- Lesson 2 Learning Java and Command Based Robot Code
My notes: ProgrammingCurriculum
Starting this repository to organize my thoughts on what needs subjects need to be covered for someone to become competent at programming FRC robots. There is a lot of ground to cover to go from not programming to programming FRC robots.
I started volunteering with FIRST as a programming mentor in 2018. As a someone with 35 years of programming experience, programming robots was completely novel. The learning curve was very steep and I approached learning this like I would learning any new technology for the job. I took a course controlling mobile robots. Trying to sort through the overwhelming haystack of FRC programming resources, some out of date, many incomplete, and all scattered across many websites.
Here, my goal is to organize where the good, accurate, and well structured FRC programming resources are. I also hope to outline a curriculum that will take a student with little to no programming experience and give them a path to programming complex robot behaviors. Along the way, outlining general computer science principles and good programming and engineering practices.
I'm compiling notes to accompany some of the good YouTube tutorial videos I've found. I'm starting with this three part introduction to command based programming by team 4627 The idea being to add some depth in the form of additional discussion, links to supporting documentation, and updates for things that have changed.
Next up, start creating a curriculum, slides, notes, and a lesson plan for instruction.
Example robot programs. Have students clone a repo, complete the missing code segments, build the code, and test their robot.
- Modified Command Based Robot Template
- Command Based Robot w/ Arcade Drive
- One motor & encoder subsystem with a PID tunable task
- Display values to SmartDashboard for debugging
- NetworkTables to have editable variables (PID tuning)
Some source files for outlines, notes, and slides are in .org Emacs Org-mode. Some of the .md (Markdown) files are generated from the .org files by Emacs. Most of the README and lesson files are directly edited markdown files, as it is easier to get the links and embedded images correct that way.