It depends how in-depth you
really want to get. We don't go too much into detail with our students because it's not really necessary to just get the robot running. This is more or less what we cover with our students:
- What an integer is
- What an object is
- How to declare, set/initialize, etc. both of the above
- if/else statements
- What functions/methods are
- How to declare/write, call, use, etc. a function or method
- An overview of what WPILib is and how to use it (i.e. how to figure out what functions you can/should call with the different objects)
- Some of the most commonly used classes, like Victor, Joystick, Solenoid etc.
- How to declare a pointer and how it changes how to call its functions (using the -> instead of .), though we don't really go into what the difference is unless someone really wants to know
- How to read inputs from sensors (analog and digital from both the DS and the robot itself) and use those values
- Where to put the different parts of the code (i.e. what should go in our Shooter class vs. our DriveBase class and where to put autonomous stuff vs. teleop stuff)
This year, we ran two Saturday workshops for 25 and 103 to go over programming stuff. The first session was for programming basics, so just how to write simple code in general. The second session focused on WPILib and how we use it to write code for the robot.
To help drive it all home, we work with the students have them rewrite the code for the previous robot. In our case, we had each student assigned to a different system on the robot, so one student was responsible for getting drives and brakes to work while another did the pneumatic things. They'll ask us questions and we lead them in the right direction (like "Remember when we talked about the Joystick class and the different functions it has? Try looking for something to help you in there.") but we won't do any of the work for them.