Does teaching an intro course with a functional language really help level the playing field? On another question, Ben. I claimed:


  By utilizing a functional language in your first course, you get to
  have a classroom full of kids who have a much more similar footing.
  And when you move on, later, to imperative programming, you no longer
  have any kids with no experience. It's a simple trick to keep your
  cohorts more on-level without wasting the time of the advanced
  students.


I've heard this argument before and wonder if it's really true. The first programming course I encountered was in Scheme, and it seemed that students with prior programming experience (even in imperative languages) tended to do well in the course, while some students without prior experience were lost. Of course, my undergraduate days were long ago, correlation does not equal causation, and my data is anecdotal.

Is there evidence that using a functional programming in an introductory college course reduces the effects of differences in programming background?
Let me mention, at least, another dimension to this. There are various functional languages and some of them are closer to what your students may have in their backgrounds. A language with dynamic scope and abstract syntax is a very different beast from one with lexical scope and a rich syntax. 

The only functional language that I really worked at was ML and I got quite good at it. But I learned that I really want the concrete syntax that it offers as an aid in my thinking. The underlying concepts are the same, of course, but I'm pretty worthless in Scheme. But then, I didn't learn Emacs from my mother as many schemers seem to have done. 

So, if you want to level the playing field then I will guess that you want something as unlike their previous experience as possible. Say Scheme, rather than Haskell. 

However, some students will pick up the new ideas faster than others no matter what you do, so it is good, in my view, to take advantage of that. 

And of course, if you are going to do something very non-standard, make sure that you have the necessary expertise first. That isn't a situation for staying one chapter ahead in the book as some instructors are forced by circumstances to do.