Should functional programming be taught early in computer science curricula? For example as the first topic upon entering higher education? I have often thought about this and could “feel” it was a good idea without being able to articulate why. I was mostly stuck with ideas that it “fosters and open mind” and this kind of vague nonsense. Today I found a comment from a fellow mefite which resonates with my own thoughts:
[…] the benefits are many:
- Focus on computation, not ceremony (at least for a semester or two).
- Charm and fascinate the target audience of future Computer Scientists
- Shake out the help-desk contingent that are really out of their element.
- Instantly piss off the vocationalists and ‘gamer scum’ that would hate you anyway eventually.
- Handicap the whippersnappers who think they know what they’re doing and would otherwise disrupt teaching.
A level playing field in an environment that does not have vocational outlets can really do wonders for teaching.
That about sums it up, better than I could articulate myself. However these suggestions assume a specific definition for “computer science” which is not shared among all education institutions nowadays. Maybe I should also work on that.