My team’s programmers are looking to create a digitized curriculum for teaching new programmers and a set of labs for them to do.
I am already aware of the WPILib docs, but in my opinion they are not the best resource for teaching programming without something to tie them together and are more of a reference. So as the title states, I’m looking for examples of any documentation that is used by other programming teams to help teach new programmers and any tips as to content that I should include outside of the obvious necessities.
Our team uses Java and command-based, but if you have examples that are a different language or a paradigm other than command-based I would still appreciate it.
This pre-season we split our large programming group into two sections, those who have some prior programming experience and members totally new to programming.
For the new members first learning to program, we had them start with the blockly games https://blockly.games/ Focusing on Maze and Turtle to introduce programming concepts of variables, loops and conditionals.
The next step for these new members is an elevator simulator that our software mentor put together that introduces the concepts of sensors and bad code breaking systems, also using block programming.
Now we are currently having the new members work in groups with Romi robots. Starting with example code and adding features such as drive a distance, drive straight both using encoders.
For the members with prior programming experience we introduced them to the FRC control system hardware and started with the ROMI robots in small groups.
Now the more experienced group is working on code for previous year robots implementing selected subsystems, shooters, elevators etc. Introducing PID and other more advanced concepts.
My team doesn’t currently have any Romis and I doubt we’re going to get any anytime soon. However, we do have access to one actual robot we use for testing and teaching and we can use simulation. Will the FIRST programming modules work in simulation without a Romi connected? I also have not gone through it myself, but do you believe the content is good enough to adapt for simulation or a real robot?
The FIRST training modules are broken into 2 sections. The first goes through beginner Java language and programming concepts (i.e. what are conditionals and loops). The second (i havent seen myself yet, but should be released shortly if it hasnt been already) will go through WPILib functionality (I presume TimedRobot vs command-based, how to use motor controllers and sensors, etc).
So while they use the Romi throughout, it’s very much not a requirement as it’s the same library that would be used on the full FRC robot.
Having said that, I also highly recommend Spectrum’s trainings and everything else @techplex suggested.