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?