“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!
We've done this. http://destructiongolf.com/ Worked a treat. The important thing to remember about these exercises is that they are not about teaching programming. Not at all.
The best programmers at our event didn't win much. The ones that won were those that worked as a team and started small. The teams with big ideas that got bigger over time just collapsed after a while. Those that made something work and then developed it in an iterative way did the best. The takeaways for the students was that those who work as a team, managed the roles of each member and focused on solving problems rather than having ideas that broadened the scope did well. Well worth the time spent.
The approach we took was to give the teams a run-in on the development so that they could enter the "pressure cooker" part of the project with some idea of where they were going. I think this is a good idea, otherwise they tend to start in "headless chicken" mode and never really recover from that.
The students enjoyed it so much we are doing it again in late March.
Oh, and love the layout. And your picture. Do you have a whip to go with the hat?
Maybe we should come up with some.
But it better not be a multiple choice test.
No whip for me. I do have a revolver though. :-)