As I write this I am at St Joseph’s College in Patchogue, NY for their annual high school programming competition. There are about 35 teams from about a dozen or more high schools from Long Island and New York City. I’m hear largely to learn from the teachers here. What are their issues? What courses are they offering? How are enrollments? And more. BTW a number of schools are using Visual Basic and some are using Small Basic along with Java for APCS of course. Enrollments are in trouble is several schools with APCS only being offered every other year or having classes combined in some cases. But I have also been having some discussions about programming competitions in general and their academic value.
One teacher has been telling me about a top programming student who selected a math whiz with no programming background to his team. His idea is that this student can read the problems and develop a good algorithm which he can then implement. He believes this will save him time as the math whiz will be better about word problems. An interesting idea and we’ll see how it works out. Another teacher was telling me how much communication comes into play in these events. Teams who do well work together rather than having each student work independently on separate problems. Between problem solving, planning, communication and other soft skill he believes that students learn things that will help them in future careers. It sounds reasonable. In theory. Do teams really work that way? No idea but the teacher who talked to me about this coached the winning team.
Congratulations Bethpage High School. And to all the other teams as well. As I said in my remarks, any team that finished any of the problem is way ahead of all those students who couldn’t even think about competing.
In my experience with programming contests, the best environments happened when there were fewer computers available than the number of students on the team: 3 students sharing one computer, or 5 students sharing 3 computers, etc. This forced them to work together, often with some really good collaboration (and results they would ALL be proud of)! I never used this approach in the day-to-day classroom, as I was reluctant to create the potential for "idle time" for my less motiviated, ...er, "attention-challenged" students. But maybe if I provided more structure (and clear expectations for all kids even when they're not doing the typing), this team approach could work in a day-to-day class, at least for some projects.
All in all, programming competitions were always a GREAT experience for my students, even for (maybe ESPECIALLY for...) students with solid abilities but not necessarily at the top of their class.
I also like the idea of fewer computers than team members. I am tempted to suggest that one computer per team is sort of ideal but no more than one per two people should be the max.