“18 monkeys in a room” is how a friend of mine described the typical high school programming competition. You take a much of kids, usually in groups of three to four, and lock them in a room for X hours and give them Y programming tasks to solve and give awards based on who solves the most in the least amount of time. Not a lot of time for deep thought, careful design, or the creation of really useful programs. Is this any way to see who knows how to program? Maybe, maybe not. But what is the alternative?
There are longer form competitions of course. There are many high school students competing in the Imagine Cup, though mostly in the IT Challenge and Game Design events. Very few in the Software Design Invitational which takes a longer term view and requires a lot more in the way of design and development. There is also the Bliink web design competition specifically for high school students. Even still it is very difficult for high school students to compete. They have more classes to take than college students which means no free time during the school day and lots of homework. Plus sports, plus clubs, plus for many students jobs to go to. So time is an issue. That is why the “18 monkeys in a room” version is the default. It takes less time for students and less effort for judging.
I would not suggest these competition have no value. I think they do. They promote thinking on ones feet, problem solving under pressure, and are great for bragging rights. And our computing students need to be recognized for what they do. We get what we celebrate in society. The best thing about a programming (or web design) competition is a chance to celebrate kids who are good at computer science.
But still I wish for some thing in the middle. Some competition that is not just for a day but that requires some long form thinking. Some planning and an outcome with purpose beyond showing off ones mental quickness and skill at tossing a bunch of code together and getting it to work. I’m not at all sure what such a competition would look like. Surely you have an idea? Or is the “18 monkeys in a room” way the best that it can get? Or perhaps we should focus on real long form events knowing that we will only get the few, the crazy, the highly motivated to enter? Come on I need ideas here people!