Having taken the classic MIT 6.001 scheme course, the choice of language didn't really level things out. There was still a big difference between people who came in with years of exposure to code and people who didn't.
Even though many of the topics were new to everybody, the experienced people had a better context to understand why each topic was interesting and useful. That kind of intrinsic motivation makes any kind of learning easier.
I had written lots of terrible programs already, so for me the course was a series of Aha! moments. People without that experience seemed to have a harder time with "What's the point of this?".
It makes me wonder if one couldn't design a curriculum that's deliberately designed to get people writing terrible programs first, in order to motivate the techniques for avoiding those problems.
Haha! Well, at Penn one of our intro courses is in OCaml, which is a fantastic leveling language. I felt like I was programming for the firs time... which, actually, was awesome! I know a lot of my classmates felt like they could skip the course, but I really enjoyed it and I really enjoyed learning to think in a new way.
Re:On Technical Entitlement
by carterschonwald on Saturday June 30, 2012 @12:30AM
(#4180598)
I can assure you that scheme or haskell isn't a leveler :-), there'll still be folks who taught themselves scheme and haskell and a dash of pl theory / general cs during high school self directed. That is all :-)
(personally know a number of such folks, and they're some of the most amazingly nice & open folks I know)
One of the big turnoffs is the know-it-alls in early CS courses. Having a language like Scheme or ML or Haskell whack them on their butt - just like everyone else would provide a certain democracy to the pain.
I'm pretty sure I was one of those jackasses back then. ML would have handed me back my head on a copper platter, and I would have really learned higher level computer science a lot earlier.