Depends upon the age of the kids. We start younger than you guys I think with 6th graders but sometimes get new kids at older ages. Learning capacity is generally higher in high school (even though they seem stupider as they get older, they are just actively ignoring you then)
The build and using tools takes a good while to get a robot built and understanding why you can’t cantilever the wheels or put all the weight in the back. So once they get those concepts of using the tools and what a robot looks like, you can wait a few weeks on the programming.
We start programming info usually when there are wheels ready to be programmed. Focusing on strong base designs is where we normally start the kids and once the wheels are on, they want to drive it ASAP. So that means programming!
First we try and introduce the motors & sensors setup in the competition template. Describe the sections of the program, go over the various types of motors and sensors, and how to use the wizards.
Then get them to do basic control of the robot from the vexRT] and motor]. Get them driving and controlling two joysticks worth of stuff. This usually makes them quite happy and encourages them to drive like crazy fiends. Then they notice they lose every autonomous - so introduce the timers when they realize this. This works well and they then want to learn to use the sensors once they see the variability of timing.
(Warning: You may never get them back if they get too good at timing. Say you are a team named 81J who have quite successfully used timers for years and can predict the timing better than a control loop. Their driving skills more than compensate for their need for fancy programming.)
Now they are making autonomous routines. Drive for distance, arm to height, etc. Start simple and work up from there. Year 1 robots generally don’t end up with many sensors but there are exceptions. Year 2+ gets lots of sensors since they all want to win. They realize what it takes and have some build experience under their belts. Try simple autons at first or you will lose them. Make them want to code more, it takes longer but they will get there with some help.
You then get into red versus blue or different program strategies then. Once they are hooked sufficiently, you can get into making functions to make task based programs versus repetitive code (programming techniques using defines, data structures, get/set routines), then teach some P loops to overcome momentum and managing error, creating background tasks, making filters on out of range data, PID and wherever they want to go.
Also, scroll through jpearman’s programming tips thread and pick a few items as they come up.