Tips to run a programming session

We are a rookie team and our last programming session did not go well, spending a couple of hours with nothing to show for it.

We have 6 kids:

  • 2 on the computer
  • 2 setting the robot at the starting position
  • 2 in the “measuring team”

The measuring team does not have much to do and get distracted easily.
Loading the program takes some times, and often we are not sure what exact changes have been made, creating chaos and frustration.

Do you guy have any suggestions on how to run a programming session and keep all kids engaged?
any tips or methods ?

thanks

Hi @MP_216 Are you using VEXcode IQ Blocks? If so, I can point you to some STEM Labs which may be helpful.

1 Like

I’m not a programming expert. I will say as a mentor/coach I’ve struggled with more than 1 student being the programmer. I’m sure there are lots of tips that the pros use to manage multiple developers on one project, but I don’t know them or how to scale them down.

What I can say is… start with having them write pseudo code in detail. This is just writing out what the robot should do in regular language, not computer code. For example
Step 1 Robot Moves forward in a straight line 12 inches
Step 2 Robot turns to the left 90°
Step 3 Robot Lifts arm to 120°
With that the code can be broken down into manageable pieces that are written and tested before moving on

If at all possible have some practices for the programmer and 1 assistant to be by themselves working on autonomous, (The same thing would be great for drivers too). Too many students with not enough to do is chaos :stuck_out_tongue_winking_eye:

Make use of the Comments capability to put lots of notes on what each part of the code is supposed to be doing so it can be found etc.

3 Likes

Hi -
We are using the VEXcode IQ blocks. We are enrolled in the Squared Away 2019-2020 tournament and the kids have one robot built. They are working on the autonomous part where the robot needs to pick up cubes and drop these on platforms.

Thanks Chris-

We tend to dedicate sessions to building or programming.
So when we do programming, we don’t build , as we need the robot to be operational when we want to try the next steps. As a result, the entire team is focused on programming.
The coding itself is not an issue, the kids are really quick to pick that up. It is more as you said, "Too many students with not enough to do is chaos "

For programming we tend to have a very iterative process. Run the program, see what works, what can be improved. Try multiple times to make sure we get consistent results before a change is made.
It is difficult to keep the 6 kids focused in that process.

I wonder if teams have found a good method to make that process work.
or is there a better approach?

thanks

I find that you can get a lot of extra value by having a student record a video of each run. Slow motion replays can really help students trouble shoot segments of the program and cut down on the number of iterations. It has the added bonus of creating an interesting an important job function for one or two students who can be in charge of recording, reviewing and documenting each run and actually being able to contribute feedback to the programmers.

1 Like

Thanks Twindadaz, great suggestion.

Do you have all 6 building at the same time on the build days? Whatever you are doing there to be successful probably has applications in programming! 6 all building at the same time usually results in chaos, too, for me.

1 Like

hi Chris -

for building we try to divide in 2 teams: for example: 1 team building the mount, the other building the claw …

Has anybody tried to divide the coding in 2 teams as well: for example one team working on the programming for picking up the green cubes from the 1st starting position, while the second team is coding after reset from the second starting position.
The issue is that one team will be always waiting for the second team to be finished with the robot.
not clear that this is better approach.

Maybe have 2 or 3 different sub teams each with their own strategies and programming for autonomous, and decide before each tournament which one is being used based on reliability, score etc. And if they all work well, usually a team gets 3 programming attempts, run them all.

There will still be the issue of waiting for the robot, but it should not be more than a minute or 2 while another team is testing.

1 Like

Hi, @MP_216, it looks like you are trying to maximize all 6 of your students’ time when you have your programming sessions. You don’t need all 6 of them working on the code at the same time. Here are some approaches we’ve taken (we’re a team of 4).

  • Pair program - have 2 work together and actually on the computer at the same time. One person types, other person helps out and gives second set of eyes to make sure code is correct. This is actually used in real wold practice.

  • Break program into sub routines/functions - have different programmers own creating reusable functions. These can all be done in parallel and independently. You can use something like GitHub to do the branching and merging. This may be more advanced. Our team uses RobotC, which works great with Git. I’m not familiar with the VEXcode IQ Blocks. Can you actually see the text and be able to manipulate that in a text editor?

  • Having others that aren’t working on the coding, do all of the measurements, conversions, debug, video recording, etc. as other here have mentioned.

  • Do all 6 have to be working on programming (or programming related tasks)? We usually have multiple things going on at the same time. If we have 1 or 2 members programming, the others can be working on prototypes, building replacement components, or simply practice their driving.

1 Like

I agree with a lot of what you said. I think the key is to know the students!

There are some that can work more independently and others that need some more frequent reminders to stay on task. It’s a good idea to break them into pairs and give them each a different mission.

For example here are some different missions:

  • Pick up the green cube and put it on the platform
  • Move the blue cube out of the way, then get a red cube and put it in the goal
  • Put balls in a cube

This only works if you have more than one computer. Writing pseudo code is super important!

Some of my students are pretty adept at coding and I can leave them alone to do the task. In that case, I might split the practice and do both coding and building. I will set up another activity for the other students to build other contraptions with VEX IQ parts. It doesn’t have to be for the robot. Since, we have extra parts and I might have them try different gear ratio activities or build other simple machines.

1 Like

Thanks Spaghetti_code and Pengthom.
Right now, we are doing better. Adding the video helped a lot. Plus we try to have a pair working on robot build improvement as well.

In terms of coding, we are using VexCode IQ block. this is a very nice program, but it is not well suited to merge different codes together. maybe when Vex code IQ text SW will come out, it will be easier to have collaborative work.

1 Like