Somewhere I saw a reference to Codea, an IDE for writing code on the iPad. In my endless search for new ideas for my programming classes I figured I ought to take a look. Initially I was not too excited. Blind old farts like me have an issue with typing and reading on a “little” screen (I have a 27 inch monitor in my office), but it did look like it would be a tempting medium. Kids like iPads and being able to write code for apps for the iPad without having to jump through the Apple Developer hoops seems like a good idea. Codea uses Lua, the same background language Corona uses. I use Corona in some of my advanced classes already so Codea might be an interesting sidelight. Then I figured out how to work Air Code. Oh, Oh, Oh, or words of excitement to that effect. Air Code is a part of Codea that puts the code on a big screen so a BOF like me can actually see it. The code changes are reflected live on the iPad. Now this is cool. The trouble is now I have to find iPads for my advanced programming class. Details, details.
Archive for September, 2013
Big news in Montana today. Some computer companies in Montana have gotten together to sponsor the development of an online programming curriculum CodeMontana.org. The program is based on moving Karel the Dog around a grid world similar to Greenfoot. I just went through most of the videos and some of the exercises. Any kid that can sit through this program has more will power than anybody I could imagine. The videos are simply and stunningly boring. The material does hit the basics of a Progamming I course. It covers pretty much the same stuff I teach in Programming I, only done in a manner to bore someone to death.
Why do people that have never taught kids think they can write an educational program? And when they do why is it usually in a manner that is so boring no one in their right mind would use the program? I admit that writing curriculum is not easy, and making it interesting, much less exciting, can be extremely difficult. I struggle every year to make my courses interesting, relevant and, as much as I can do it, fun. If the course is not somewhat interesting to the kids then that is probably the end of their programming interest and they will probably have a bad taste for it for a long time after. Programming can be fun and exciting, even for someone as unimpressionable as a high school sophomore. Want to teach about the sequential nature of programming and some function building? Have the kids play Light-bot for a class or two. The kids will work like crazy to get that stupid little robot though the pattern. They will be problem solving, collaborating, building functions and get the concept of sequence while having some fun. Light-bot too easy? Graduate to Cargo-bot. Games like this can be used to keep kids interested in programming. Programming does not need to be boring. Does it have to be all fun and games? No, but it sure helps.
There are obvious issues with presenting material on-line. The fill-in-the-blanks-with-humor and flexibility that a live teacher can offer is missing. The worst part of boring programs like this is that kids that could use an on-line program will be turned off.
Everything in this program could be taught with a modified version of something like Light-bot. Functions, Fors, Whiles, Ifs and so on could all be taught through a Light-bot like simulator. What fun that would be! Kids like games. Programming is a game. Make it fun like a game.
To make a kid willing to sit in front of a monitor and work through a program like this there has to be more that some far down the road goal, after all this is a kid. Games, as much as us older generation scoff at them, work. Just remember the goal at this level is not to make programmers, but to make kids problem solvers by introducing them to programming.
The Good Idea Fairy strikes again. I am chatting with a friend of mine who is a CS professor at my local university. He mentions that he is developing an intro level C programming course for the 2 year college for this spring semester. In a moment of idiocy I suggest the university offer it as a dual-credit course so I can offer it to my high school students. What is so stupid about that you say? I can barely spell C. I did some C programming 30 years ago when I was much younger and smarter. I am not bothered by the language itself, most of the languages I have been working with the last few years are all derived or are a variant of C. The interesting part (there are several other words besides interesting I could use here) is I have no idea what to use to write and/or compile a C program anymore. I vaguely remember writing the C code in an editor of some kind and then sending it off to some magic place and the results returning from that magic place. I would assume things have changed. I am so spoiled by Microsoft products that I need to start figuring out how to start with a language I know absolutely nothing about any more. Google, here I come. Someday I will learn to keep my mouth shut and let the Good Idea Fairy just die.