What would happen if you had to conceive of a CS1 curriculum that was language agnostic?
I was reflecting on Papert and Turkle’s
Epistemological Pluralism, a paper I read
some years ago and reread recently. I found myself writing the following:
These students wanted to learn differently. However, the knowledge and experience they brought to their first experience in programming was disrespected and disregarded.
Perhaps strong, but not untrue of many things in the CS1 experience—we do not
allow for the individual. We expect rigid commenting styles, particular solutions,
and even impose problem solving methods on them, because “it’s better this
way, really–trust us.”
Perhaps unrelated completely, but what happens if you eliminate the requirement
of working in a particular language from the CS1 curriculum? What if students
could work in any one of four languages in their first course, choosing from
(say) Java, Smalltalk, Scheme, and C? What would change? What would break?
What would be new and different? How would you evaluate success? Why is this
any different than what happens around the world every fall anyway (many classes
with many students learning many languages)?
Just a “what if” kind of question. However, it is something that may jar us out of some
complacency we have in our conceptualization of what a first course in
computing is or should be.