Functional programming at the start of curricula

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.