I was looking for ways y’all teach new members how to code. Every year lots of new members join our team and want to program, having never programmed before with only a very vague idea of what programming actually is. I was wondering how you guys deal with this. Do you teach java (or whatever language you use), then get into robot specifics or do you start with robotics in mind? Most kids want to program a robot, make it move, shoot etc. but they can’t write a Hello World program – how do you deal with this? Do you teach programming in your meetings? Do you have all of your kids take an online class (Udemy, Code Accademy etc.)?
I have no clue how this is going to work this year, but this should be good. We’ve recently gotten donated a few LEGO Mindstorms NXT kits, but they aren’t complete enough to work as FLL kits. Instead, we plan on loading them up with LeJOS and having new kids dink around with those for a bit. They still get practice with actual Java, and get familiar with how robots should work but being much simpler (and easier to test) than a full blown test robot.
Have them generate the default code and load it on the robot and drive it. This takes some work for new kids and gives them a quick sense of accomplishment.
Then walk them thru the default code and explain it to them.
Then have them make changes, like display messages on the dashboards error display.
Some other things to do
Have the robot drive at half the throttle speed
Do some autonomous code (drive straight, then turn)
Put a touch sensor on the robot and have them code that
Make a new class that abstracts two controllers so two people can run the robot at the same time and implement it in the default code.
This should do two things, weed out the kids that aren’t really programmers and the kids will have some basic skills that will get them thru a season.
We’ve done a variety of ways over the years. Most commonly, we’ve started with the basics of Java, but have the initial topics be really basic so we only need to spend a few hours on that before moving to some robot-specific cases. With our programming camp, they were writing code for the robot on the third day (five hour days). When we’ve done slower paced training (based on on-line courses or Java for Dummies) we’ve still usually done some robot code by the third or fourth meeting. We fill in with all the real object-oriented stuff, arrays, and such after they’ve got a piece of code working.
We did do something much closer to the “learn to load the default code first, then tweak it” once, with mixed results. It turns out that the people who can write code and the people who can deploy it are not necessarily the same.
I understand that Gixxy (aka G3) used the slides he prepared a few years ago for the first two days (those were for about 2 hour sessions). I’ll contact him directly and ask him to update this repository with the updates; he did eclipse rather than netbeans, and also had a good bit on Git.