Sunday, January 22, 2012

On to vim

We have been with this group of kids for about a year. We have looked at Ruby with the Gosu game library, we have looked at ruby on rails (although that was too advanced at the time), we have looked at NXC. The kids now have a good handle on what the steps needed to build a program, they have seen a couple of programming languages. It is time to solidify their knowledge and start on key building blocks.

It is time for the kids to pick an editor. We will do our best to steer them towards vim. It is the defacto standard with startups and the editor they are most likely to encounter if the kids stay in this field. So this Saturday we picked up vim for the first time. We showed them Derek Wyatt's intro video, the kids really enjoyed it; Derek is funny and I think he sold them on vim.

We will work through the tutorial and plugins. We will also re-introduce git, it is also time that they pick their source control system. They all have github accounts, but now we will stress its functionality and we will use this as a way to get a group project going. We will also revisit Ruby and the Gosu framework.

It is a second view at git and ruby, but now with 8 months of exposure to programming. It will be good to see how well they take it now. And all the while, they will be using vim as their only editor. As a matter of fact, I have challenged them to use vim as their only typing tool for all their homework also.

The nxc experience

The fall was spent working with NXC (Not Exacty C) and the Mindstorms kit. We tried to use Arduino, but building robots quite involved (soldering, special order parts, etc). Mindstorms, while expensive up front ($260), gives us the microcontroller and the lego pieces with plenty of options to build robots. The kids could build a robot, disassemble it and re-build it in minutes.

So we settled on Mindstorms. However, we are teaching kids how to program, and the GUI version of Mindstorms Lab View was not going to cut it. So we found NXC, which is a C subset that targets the Mindstorms kit; perfect!

We have a website dedicated to the exercises we built, we had a ball with the robots, the kids really enjoyed the experience. We introduced them to C functions, to compile a program and download it to a microncontroller.

The more common exercises are for the robot to follow a line, to move forwards, backwards, etc. We did a bit of that, stressing clean code, breaking functionality into single purpose functions, etc. We are building programmers, so clean code is always stressed.