Restore meritocracy in CS using an obscure functional language.

This post was originally published at Geek Feminism.

Students who did not have the privilege of hacking since they were young are at a disadvantage in Computer Science (CS). However, CS departments can teach introductory programming using an obscure functional programming language to limit the young hackers’ advantage. Most students with prior coding experience learned a procedural programming paradigm, so forcing all students to struggle with learning a new, functional language helps restore meritocracy.

In the blog comments, Kite recounts hir experience with an intro CS course:

While I think my course was pretty sucky, one good thing it did was to knock the wind out of the sails of those guys who’d been programming for ages – by starting us on an obscure functional programming language called Miranda (oh did it ever raise a whole lotta grumbles from the boasters). Only after that did we do procedural stuff like C, and then onto C++. Mind you, the whole course seemed determined to be as academic and un-real-world as possible, so C++ was probably the most career-relevant thing we got out of it! [...]

The grumblers grumbled because they could not take advantage of their prior programming experience.

Another benefit of a functional language is noted in John’s response to Kite:

A well-known UK university did that for a while, using ML as the introductory programming language, specifically to wipe out the bad habits people learn by teaching themselves using BASIC etc.

If obscure functional languages become common in intro CS courses, it is reasonable to expect that young hackers will try to game the system for grades by learning functional languages in preparation. However, functional languages can be very different from each other, and there is still logic programming and possibly other viable programming paradigms to exploit.

In any case, basing an introductory CS course on an obscure programming language and an “academic” programming paradigm is a clever equity hack.

About these ads

4 Responses to “Restore meritocracy in CS using an obscure functional language.”

  1. Cessen Says:

    A minor quibble:

    Most students with prior coding experience learned a procedural programming paradigm, so forcing all students to struggle with learning a new, functional language helps restore meritocracy.

    That’s a very nature-oriented interpretation of merit. I would argue that what a student has learned prior to entering a class is part of their merit, even if the situation that allowed them that prior learning was unfair. So I’m a little hesitant about your use of the word “meritocracy” there.

    But certainly a grasp of procedural languages is hardly all there is to CS, so over-all I definitely agree with your point. And as you suggest, and as I said over at Geek Feminists, this is clearly a win-win kind of proposal. This would actually benefit the young hackers at least as much as everyone else in the class. In fact, in some ways I wonder if they wouldn’t actually be getting the better deal out of it, even if they did grumble. Breezing through early courses can be an ego boost, but is actually a big waste of their time in terms of actually learning new things, exercising their brain, and actually progressing in their knowledge and abilities.

  2. Restructure! Says:

    That’s a very nature-oriented interpretation of merit.

    Not more than other interpretations of merit. Students would still have to work hard to understand functional languages, except that the hacking-since-8 students cannot use prior experience (or hard work in the past) to compensate for lack of innate ability. Everyone would have to work hard in the present day. It seems nature-oriented only because this system would be removing nurture-based privileges of the formerly privileged group.

  3. Cessen Says:

    Well, usually when I hear the term “meritocracy” with regards to programming, it is in reference to open source. It is of course flawed to think that open source is a meritocracy, but IIRC the idea of meritocracy is that whoever is best suited to a task is the one who does it, or (if speaking of recognition) whoever is best at a type of task is recognized for it. I don’t recall meritocracy having anything to do with balancing away factors like prior learning.

    But perhaps I misinterpreted you. Certainly procedural programming and the type of thinking that comes with it is hardly all there is to CS, so over-emphasizing that early in a CS curriculum obviously misrepresents how important that is to their initial merit. CS is a large field with many disciplines. If that was your point, then we are in agreement.

    Initially I thought you meant that the prior learning they had was not part of their merit at all (however unfair how they acquired it was). If that was not your point, then I have no qualms.

  4. Restructure! Says:

    ‘Merit’ in this case means grades.

    Maybe it is nature-oriented after all, but in the opposite way, as it assumes that current inequalities are due to nurture, not nature.

    I suppose the normative vs. descriptive distinction is relevant again. I believe that current differences in grades are due to nurture (a descriptive claim), but that differences in grades should be due to nature (a normative claim).

    The status quo assumes that current differences in grades are due to nature (a descriptive claim; false).


Comments are closed.

Follow

Get every new post delivered to your Inbox.

Join 91 other followers

%d bloggers like this: