When I was in high school, we read a short science fiction story named “Harrison Bergeron”. This dystopian tale describes a world where “everyone is equal” - accomplished not by lifting everyone up, but by forcing beautiful people to wear hideous masks, strong people to wear weights, and by putting thought-disrupting radios in smart people’s ears. The “Handicapper General” is even an established role. The story gets pretty weird by the end, but I always thought it was a terrifying world.
Which is why I am bothered by some of the arguments I hear for making certain introductory design decisions. Many schools teach CS1 in different ways (although there are some patterns). Instructors base their choice on a varying set of reasons: availibility of curriculum, availability of tools, personal interest, needs of the learners… in some cases, they even do so because of abstract ideas of purity and elegance. Some instructors make design decisions based on diversity and to make those without prior experience more comfortable - I think that’s great, and I try to include that in my criteria too.
However, I think one particular argument is misguided: “We teach in <unpopular language X> because no one has prior experience with it, thereby leveling the playing field”. The idea is that if no one has prior experience with the language, everyone starts back at zero. I believe that you can have a great introductory experience in <unpopular language X>, but I don’t think this reason is a good one. Let me explain why I think that.
First of all, learning builds on itself. Learners construct new knowledge by reconciling new encounters with old experiences. The goal is to align new experiences with old ones (even if the content is very novel) as much as possible. This way, the integration of new information is as stream-lined as possible. You don’t want to make things unfamiliar to learners with prior experience - you want to connect their prior experience to the new ones!
Second of all, the theory that the playing field is leveled is not consistent. Folks believe in Unplugged activities because they feel that non-programming activities will be foundational to programming activities. Perhaps even more compelling, it’s easier to learn a third language - even if that language is different from the other ones, you get better at the type of learning required. Students with prior experiences in other “unrelated” languages are still going to have advantages.
Third, students are not uniformly in competition. Yes, they are constantly comparing themselves to their peers. But they also talk and collaborate and teach other. They sometimes find out when they have advantages or disadvantages that their peers don’t. In this case, I worry that students without prior experience will hear the complaints of students with prior experience - their takeaway might not be, “Aha, this is a chance to catch up”, it might just be “Oh, why are we learning something so different than what they learned before?” There’s some dissonance that must now be addressed.
I want diversity and a comfortable atmosphere in my introductory classroom. I want new-comers to have fantastic experiences that spark a life-long interest in computing. I think that some schools (e.g., Harvey Mudd and UVA) have great ideas involving separating students by prior experience and enthusiasm levels. But I can’t agree with the idea of introducing learners to esoteric languages as a means to intentionally disadvantage some students. I’m sure it’s possible to teach amazing courses with those unpopular and esoteric languages, but that doesn’t mean this argument is okay. Let us lift up all learners, and even spend more time enriching those who are farther behind - but I don’t think we need to be taking anyone down. We should not be Handicapper Generals.