Helping teams learn programming

Helping teams learn programming

The following discussion is quoted from the Facebook Group FLL: Share & Learn.

How much should a coach be helping with the team’s programming?

This question was posed by a rookie coach. As you read the answers below, keep in mind that in FIRST LEGO League, kids do the work. Coaches/mentors are there to guide, not do the work. In short, when it comes to the actual competition, it’s hands off. The general consensus is that most coaches provide teams the resources to learn (programming camps in the pre-season, books, websites, etc.) and help the kids learn in a non-competition arena using a “dummy robot” and generic learning materials, designed to teach the kids concepts. How they put it all together in an actual contest is left up to the team. My advice is that coaches/mentors should shy away making lessons/training too close to the competition scenarios. Coaches should also not go over the level of the students in teaching programming and building techniques. e.g. teaching PID to 4th graders, when they are are not remotely close to understanding and using it themselves. There are some great ideas below to learn from. - Asha Seshan

Response by Gloria Gibson

I teach as much as I can with our “dummy” robot it’s the small book robot and then I have butcher block paper with different lines and mazes on it where I teach them programming. So once they know move blocks and turn blocks then I have a make a square from their introduce the loop and then we go through each sensor using the loop. Once I get good concepts and are able to maneuver on the maze where I can be more hands-on then they moved to the board and start doing missions

Response by Carrie Koepke

The maximum help I give is asking questions. I intentionally know nothing about programming . . .I will ask “what are you trying to get the robot to do?” or “is your program efficient?” or “can you explain what the blocks make the robot do and why?” . . . beyond that it is all the kids. I am sure because I can not teach them programming, they could do better - but there is something wonderful about them truly figuring it out on their own and owning their work.

Yes, resources are important! In our particular town, most kids are learning basics in elementary school, so they come with a knowledge base ready to go.

Response by Amy Strobel-Brandemuehl

I help my daughter and the rest of her team as they came into the team not knowing anything. I didn’t know much but help them find info on Google how to do things

Response by Asha Seshan

Great question. The answer is Coaches in FLL do not build and program the competition robot. Many don’t have a clue how to! 🙂 They can and do point the kids to resources to learn, some hold programming classes to teach the basics of programming (some teams have summer camp). In those classes they would be working on generic materials (not this year’s competition mat). When it comes to the actual competition game, the kids do it themselves.

Response by Swati Gupta

Coaches and mentors can guide and teach kids how to use various blocks, sensors, techniques in general but not in particular for the actual missions. Let them figure it out and enjoy the accomplishment.

Response by Evonne Reynolds

We struggled through our first season and then I found the site so we kept meeting in the spring to go through the lessons and learn better ways to do things. It was great!

In the real world, a programmer is going to take classes to learn the basics and work with others (who may sometimes know more) to collaborate. If my team comes to me and says, “The robot keeps going in different directions every time.” Then I’m going to sit down with them and help them navigate the internet to find ideas.

Response by Greg Fedrick shows them how to do basic functions for beginners

Response by James McGill is what we use. It is about teaching the team to fish vs. fishing for them.

Response by Karine Voinot Josien

Karine Voinot Josien I have a team full of rookies this year so what I told the kids is I would teach them which block to use to make the robot do what they want but it is their job to put it all together. For example I am happy to teach them which block to use with the color sensor but then they can figure out how to integrate that in their program on their own.

Response by Haruna Nakamura Cofer

Also the more the adults do for the kids, the less fun the kids have. I tell new coaches not to worry if they don’t know how to build and program, because the robot kit is made FOR kids so they will figure it out, probably better and faster than the adults!

Response by Mark G Pond

Also the more the adults do for the kids, the less fun the kids have. I tell new coaches not to worry if they don’t know how to build and program, because the robot kit is made FOR kids so they will figure it out, probably better and faster than the adults!Good question. I’m starting over with two new teams after four years with the previous team. We use the sink or swim method; that is, I have one kid program with another looking over his/her shoulder. I tell them what the colors represent and to find one that does what they want. There is some trial and error but they catch on fast. By next year they’ll be good, after that they’ll be excellent. And we rotate every few steps so everyone gets a turn.

Response by Eng Rana Baddar

Well I give my new students lessons on how to program and build (basics and tips). I also give tips on most important and popular moves needed during missions specially for tournaments _ like lifting things, push , drag , drag and drop, pick from group ,slide over some surfaces …etc Now after that they program for all missions on their own using their planned algorithms and their own design of robot. I advice programing process to be along with design building specially when you finish the core of the robot and start building some LEGO attachments

Response by Shena Leonard

I don’t know anything about robots - I have them use YouTube, ev3lessons, etc. to figure stuff out. The things they can figure out on their own are amazing!

Response by Catherine Sarisky

I am a pretty advanced EV3 programmer. I get a lot of mileage out of “let’s talk through your code out loud” - and basically I we their code in English. Often that’ll help them shake out a < that should be a > or a block in a loop that should be before it.

Response by Tammy Jochman

The judges WILL watch for coaches handling the robot during the competition some teams have been moved from award contention because the coaches are actually tweaking the programs at the practice table. Only the kids should have their hands on the laptop. The kids should be doing all the work and be able to explain what each block does and if they are using a math block they need to be able to explain why it was needed and what it does and what the numbers mean.

Response by Sumitro Chowdhury

I taught the programmers of my team early on to read the “help” of the ev3 mindstorm programming interface. That is kind of the same approach professional programmers do, called “referencing the API” . But I do teach “concepts” like variables, arrays, file storage for ev3, reading raw sensor data, Proportional control, etc. But how they use these “tools” for solving missions (or not) is up to them!

Response by Shane Gingell

In the off season I try to teach skills and knowledge that is needed so when the comp season start they can then apply what they learnt. So I teach things like control system like line following or wall following. I teach things like line squaring. I teach things like understanding gearing and difference between speed, force and power. I try to teach things like understanding the error in sensors and what sensors have what error. For u it is ur first season and the off season is already gone so this year u may have to help the kids a little more but next year u will have what u learnt from this year and u can prep the kids a bit better and when you have kids on ur team that have done it before they will help the new kids learn

I consider teaching robotics the same as teaching anything else. If you were to teach maths at school u don’t just say go Google how to do maths and work it out urself. What u do is break down maths into small steps in a logical order to teach where each step builds on the last step. U teach by instructing how to do it then u give them that type of maths to go and do by themselves and see how they go, depending upon how they go u know if you need to revisit teaching it or they understood and time to teach next step

Response by Benoît Parsy

I reply/answer by pointing them on ressources, or showing something similar. I push them to experiment, try and test, and learn from errors.

Response by Noah J Revoy

To me, the objective isn’t to teach programing or robot building skills, it’s to teach them how to learn STEM skills. My focus is on helping them to learn the process of thinkinking and problem solving. When they ask a question I respond with probing, open ended questions.

Student: How do you do X? Me: Why do you want to do X? (to make sure they really know what they want) Is there a simpler solution? What have you already tried? If you had to guess what the answer was, what would you say? Do you know what this button does?

These type of questions usually stimulate the student to come to the answer on his own, which is infinitely more rewarding for both of us than just telling him the answer.

Response by Ryan Evans

I do think the ‘i have no idea how to code or build robots’ is a little bit of a cop out I’m sorry guys… Being somewhere in the middle of the mix in terms of knowledge and ability, I cannot overemphasise enough the importance and value of a knowledgeable coach/mentor. Someone the kids can bring a broken piece of code to who can help them identify where it’s glitching and why. Someone who can talk to them about and demonstrate gearing down to add torque. Important for FLL to not provide solutions, but good guidance comes from having a pretty good idea of how you’d solve the problems/missions if you were doing it.

So to this, I simply suggest that coaches that are totally new to it - take a robot home and work through and become a more competent programmer. Buy a $50 Technic set and get comfortable building. You’ll become a better coach for it.

I’m fortunate enough to be able to teach all grade 5 students a series of practical lessons exploring movement, sensors and building in the earlier half of the year. From this, the kids that truly shine are often those that apply for FLL. The great part here is that they all come to FLL with a decent base knowledge, so we’re not working out how things work, but instead how we can make it work for each mission. I tend to run little sessions every second week about carefully storing their saves, and systems for saves (V1, V2 etc). Next week’s one will be about refining and ‘cleaning’ their programming space, which has come from seeing several very disorganised programs. Each of these little tuning in sessions is very helpful, but isn’t directly related to ‘this is how you solve mission 7’. Often kids present an attachment to me that is great in concept, but lacks strength or could be refined. I ask, “is this as strong as it could be?” Or “is there a way to simplify this lever?” etc. At times I will build dummy arms or tilt mechanisms that demonstrate a concept they’re having trouble with, but only after several attempts. Again, they cannot just use my demo tool - they still need to work out how to implement it in their attachment.

Response by Michael Graffin

I will teach programming skills where I can - usually in the preseason. I don’t tell them how to apply the programming concepts or skills to particular missions, but happy to drop hints & run small group sessions on a targetted skill that they need. I don’t actually help code the missions or build the robot

Response by Katie McCann Kelley

For beginners I think it’s key to get them to work out what they want the robot to do before they start programming missions (pseudocode). I might start with a challenge of navigation from base to a point on the board. Get them talking, writing, or drawing out diagrams (sample worksheets on about how their robot might get there using motor sensors or other. Once they have an idea- then they can create a simple program and test it out. It’s better to start with a good foundation of understanding and then build on that.

Response by Henk WL

You can divide an complex problem into smaller pieces and give them one example to get them started. Encourage them to look for examples and solutions on the web and especially YouTube. Once they solve one or two problems themselves, they are unstoppable and truly motivated. :) Nowadays is a great resource for all the steps in programming. I started as an FLL coach back in 2011 and progressed with the team to building FRC robots now. Even with an 52 Lb robot build and programming, the devide the problem into smaller pieces tactic still works. And yes, writing pseudocode is a good thing to start with. It teaches them to think into programming steps.

Response by Ryan Buller I teach them how to program, and answer questions, but I do not do any of the programming.

Response by Tim Fisher

Thank you everyone for the great points of view. This seams to be a touchy subject but I think I have come to the conclusion of making a basic robot. Then program it to do something. Then work through the details on how it did what it did. Again thank you everyone.

Multiple   This article has multiple authors.