New to teaching VEX-any help would be much appreciated

For a new group of students, how soon do you get into programming?

I’m the author of ConVEX, the other free (but open source) runtime library for the cortex. However, the teams I mentor (team 8888 et al.) all use ROBOTC.

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.

For about 11 days every season I hate RobotC. It’s driven around their update to code around a Master Code update that VEX pushed before the championships.

The other 354 days I love them. Good GUI, good code, amazing support, buy their product. They have good licenses for a year, you should look at that. They have the ability for your parents to buy a year license that will give them a chance to help their roboteers.

I’ve worked with easyC and robotC now, and I like robotc hands down. easyC is overly simplified and requires you to work within the context of their block system. This is extremely tedious and will slow people down a ton. Furthermore, I found it quite a bit harder to make coherent programs and functions because easyC hides all of your variables and constants inside certain blocks.

You will be doing the kids a giant favor by getting them used to typing out all the commands from scratch anyway. RobotC has an autofill feature that gives a list of commands based off of what you are typing, and the motors and sensors setup wizard is so much easier. After you run that wizard, you can compile the code and all your motors and sensors will be remembered by the editor and they work with the autocomplete.

Just had a novice class last night… Just some common items to make sure you address.

  1. case sensitivity - not just spelled right, get the case right. Robot C generally helps with this but it is quite the crutch
  2. Don’t forget the semi-colons. Robot C has a much friendlier message than gcc for this. But you still need them in most places.
  3. Curly braces, parens, and brackets. When do I need them when don’t I need them? When do I use each one? Some confusion on when to use one.
  4. Where’s my decimal point? (integer math and lack of rounding)

We used virtual worlds and progressed from MovingForward.c using time to eventually using sensors. We introduce functions for the drive and stop parts that get repeated over and over again in the basketball drills exercise.

Gets them started nicely.

When I started out with this team, I taught them the fundamental RobotC commands, but then I walked them through how you use those commands to create a bunch of defined functions. The defined functions allowed the kids to program their robot but without having to type so much, so they were able to get their robot to do some complex moves early on. We started referring to the use of these defined functions as “MentorC”.

For example, I had them use defined functions so their programming looked like this:

DriveForwardSpeedDistance(Speed, Distance);

It was something they could easily understand, and when they needed to do something that didn’t have a defined function, then they had to go back and dig into the fundamentals of the code again. Normally, kids aren’t taught about defined functions until they have a lot more experience with the fundamentals, but I kinda flipped things around and it seemed to provide a reasonable crutch to get them started on the concepts and to realize what they were able to do with their machines. I think this approach helped to demystify what code is and what their robots have the potential to do. If nothing else, it cuts down on the typing they have to do at first, which at their age can be excruciatingly slow and loaded with typos.

I couldn’t resist jumping back into the conversation after this post :slight_smile: One of my favorite moments in our Professional Development courses occurs after the class has covered ROBOTC’s Natural Language and has progressed all the way through to functions with parameters. After I’m done explaining the process and have given everyone some hands on time, I show the connection with Natural Language and bring everything full-circle (note that this can be done with most ROBOTC commands and all user-defined functions).

First, right click on a command or function in ROBOTC and select the ‘Go to Definition/Declaration’ option.

This will open up the related header/C file and will show where the function/command is defined in the ROBOTC library.

It’s one of those great “ah-ha!” moments that are awesome to witness, and can be a great launching point into a discussion about code libraries and how to create/use header files in ROBOTC.

Extra tip of the day: if you set the ‘Window -> Menu Level’ to Super User, you can view all of the ROBOTC library files currently being used by a program through the ‘View -> System Files’ menu.

I will throw this in to show that powerhouse teams have also used EasyC for great success as well. I would say the EasyC introduces programming concepts a bit more friendly due to the visual nature, but RobotC does a better job allowing for user function usage. I think getting the students to understand the logic and reasoning behind the programming is far more important than which langue you use. I know many companies use graphical languages as well as the mass amount of text based companies out there. We are lucky enough to use both. I have the students use EasyC in the first year and then move to RobotC in the second. Competition Robots are allowed to have either, in disclosure our worlds robot used RobotC. I would recomend using the free trials in order to see which one you feel more comfortable teaching.

Well, I have signed up for the CMU workshop in July…so, hopefully that will give me a much needed introduction to everything.

Also, I was wondering where I could find some powerpoints or other teaching materials for the upcoming class? At this moment, I am just trying to get a basic skeleton curriculum ready in time before August.

By the way, Many THANKS! for everything.

Any educator looking to get started with a VEX competition team (either the VEX Robotics Competition or the VEX IQ Challenge) should consider contacting their local REC Foundation regional support manager. They know the local VEX community and can help you get started. You can find a map of regional managers here. Have fun!

Thanks! I will do that.

Thanks! :slight_smile: Being kinda slow at coding, I had to think this through a little… consequently my “ah-ha!” was spread out over an hour or so. It first started out more like “uuuuhhhh… uhhh…” :slight_smile:

Are there any books or other resources that you recommend before starting the year? I assume that I have all the VEX parts because they have had the program going for at least a year or so.

If e-mail or PM me with your e-mail address, I can send you a document called, “Vext Steps”, which has an overview of driving bases. It’s incomplete, as I ran out of time and stopped coaching a few years ago, so I’m not posting it publicly.

It’s meant to be an update on some very outdated documents that I had posted here: Overview 16 projects Coaching Tips

I’m a cookie mom, writing for cookie moms, so the ideas are low-level, simply stated. While it’s just a bare beginning, the advantage is that you can probably skim the documents to get a very basic overview of some robotics principles in under an hour and maybe pick up a few chuckles along the way.

1 Like

Anyone have any powerpoints (on RobotC), or otherwise? I have received some valuable resources from some lovely people here on the board, an I am very grateful.

Since our team runs year-round, and new students can join at any time, we setup a “Clawbot Training Workstation” so that new kids can learn the VEX Robotics system and basic programming quickly on the trainer, then join onto one of the existing teams.

If anyone else is using the Clawbot system for similar training, our team would like to offer you instructions and printable pages for building your own trainer(s). Here’s the link to a web page with the downloads:

REC Foundation recently interviewed one of our high-school members about our training system:

Our team has doubled in size this year, and we’re anticipating more growth this fall, so we might be adding a second training workstation soon.

The ClawBot Workstation awesome idea! Will have to make me some:)

Had to laugh when I saw the title of this page, not sure I want to download any viruses.


LOL. I’ll get the web page edited a bit.