The year is winding down so it is time for a critical review of how and what I did in my programming classes. I had more kids in Programming this year than ever before. Nineteen is a pretty good number in a school of 180 kids. Most of those kids are mainstream students, not computer nerds. Four were girls, one of which is considering a CS career and plans on taking Programming III next fall. This semester’s Programming II course had 1 freshman, 10 sophomores, 3 juniors and 5 seniors. The 1 freshman IS a computer nerd of the highest order. Of the nineteen at least 5 plan on taking Programming III next fall. Which brings up the question – what am I going to do for a Programming III course? Probably C# with XNA and Kinect which means I have to learn it this summer. Thank the Gods Alfred Thompson posts C# curriculum info regularly on his blog.
What did the kids get to see this year? Scratch and Small Basic in Programming I. I have to rate this class as a total success. They got a chance to see what programming is about, have some fun and make a somewhat educated decision on their future with programming. The Programming II had some mixed results. There were definitely some kids in over their heads. Not in ability but in willingness to think at the required level. I would say 3/4 of the kids worked while 1/4 were just along for the ride and did a lot of copying. Still not bad over all. The Programming II kids got to see GameMaker, Corona and Visual Basic, with Corona being the primary language.
GameMaker was a bust. The tutorials were so bad that I simply had to abandon the language at the second tutorial. I did not have time to do a rewrite. GameMaker does have great possibilities if someone has time to write their own material. Although a purist may not call GameMaker a “programming language” all the skills needed to be a programmer are required. The possibilities to make programming “fun” are really high.
Visual Basic was worthwhile but had some issues with turning in assignments to a network drive. More my lack of experience that VB’s fault. I will continue to throw VB into the curriculum simply because it is nice for the kids to see a high quality IDE. To get VB to be “fun” took some contriving. After doing Corona for a month the kids though the debugger in VB was almost like cheating. Some asked why we did not do VB first since it was so easy. It was so easy because they pulled their hair out with Corona first. Learn how to learn then all sorts of things are easy.
Corona is the money maker. I can teach any particular feature of a traditional language while making some cool graphic thing. We’ve got noise, color, action, shapes, animation, physics and lots of other cool stuff I have not had a chance to learn all rolled up in one. Of course debugging is total crap and documentation is a major challenge but all the elements needed to get a kid excited are there in a fairly simple language. Corona does have some near deal breaking issues as far as lab/school environment is concerned but with a little work they can be overcome. With the influence of the iPad and Droid coming on so strong teaching something that looks at these platforms is a no-brainer.
Next year I want to throw MIT App Inventor into the Programming I course. It appears fairly simple as languages go and the kids can have some fun.
It may seem that my primary goal in the programming classes I teach is for the kids to have fun. That is correct. Programming is an elective course. I cannot attract many students to the course with “tedious” and “boring” as a theme. If programming is not fun, why do it? (I do it because it is fun but then I think solving problems from the Project Euler website is fun and most of the kids think I am stark raving crazy to call that “fun”.)
Well my servers are updated (why else would I be in my office on a Saturday?), it is 75 degrees outside and I have a marathon to run in July. I had better go have “fun” running eight or nine miles today.