View Single Post
  #8   Spotlight this post!  
Unread 16-03-2013, 00:50
sg999 sg999 is offline
Programming Lead, Co-Captain 2013
AKA: Bella
FRC #0999 (Mecharams)
Team Role: Alumni
 
Join Date: Apr 2012
Rookie Year: 2012
Location: Connecticut
Posts: 44
sg999 is a splendid one to beholdsg999 is a splendid one to beholdsg999 is a splendid one to beholdsg999 is a splendid one to beholdsg999 is a splendid one to beholdsg999 is a splendid one to behold
Re: Teach programmers

This year, we had 2 new programmers who knew nothing about programming. They ended up writing most of the code. The only thing that they didn't write was the PID loop code, as no one on our team knew how to do that before this season.

First, we had them come in for a couple hour long sessions after school in which we (the other veteran programmer and I) explained variables, subVI's, control structures (case structure, while loop, for loop), and other basic programming stuff in both technical terms and more relatable terms (We ended up with a huge extended analogy comparing a room full of magic boxes to the code). We then had them come in a longer after school session in which they wrote tank drive code during which we explained what the subVI's are supposed to do (why do I need to initalize a motor, etc). Next, our programming mentor took a day to make a water tank state machine with us. We then sent them home to read ni's tutorials on whatever they didn't understand. To get the new programmers programming, we had a policy that a new programmer must always be sitting in front of the programming laptop, with their screen projected on the wall. We started off by talking them through everything (Click here- that VI you just selected allows us to set motor output, etc), and eventually moved up to them programming almost independently. Because we had a bench to test on, all of our teleop code was done, tested, and theoretically working by the end of week 4. The only things we've done since there were changed negative signs, ports, and added a PID loop.

tl;dr: Use hands-on activities.
__________________
There is always time-whether or not you use it productively is up to you.

2012-WIWI 6th seed (Thanks for being awesome alliance partners, 1991 and 178)

2014-present College student at Caltech (math/CS)