TITLE: Aptitude as Controlling Factor in Learning to Program
AUTHOR: Eugene Wallingford
DATE: September 07, 2004 5:24 PM
I'm busily preparing to leave town for
and I haven't had time to write lately. I also haven't had time to
clarify a bunch of loose ideas in my head on the topics of aptitude
for computing and the implications for introductory CS courses. So
I'll write down my jumble as is.
A couple of months ago, I read E.L. Doctorow's memoir, Reporting The
Universe. As I've noted before, I like to read writers, especially
accomplished ones, writing about writing, especially how and why they
write. One of Doctorow's comments stuck in my mind. He claimed that
the aptitude for math and physics (and presumably computing) is rare,
but all people are within reach of writing good narrative. For some
reason, I didn't want to believe that. Not the part about writing,
because I do believe that most folks can learn to write well. I didn't
want to believe that most folks are predisposed away from doing
computing. I know that it's technical, and that it seems difficult
to many. But to me, it's about communicating, too, and I've always
held out hope that most folks can learn to write programs, too.
Then on a mailing list last weekend, this topic came up in the form
of what intro CS courses should be like.
These guys are among the best, if not the best, intro CS teachers
in the country, and they make their claims from deep understanding and
broad experience. The ideas aren't mutually exclusive, of course, as
they talk some about what our courses should be like and about the
aptitude that people may have for the discipline. I'm still trying to
tease the two apart in my mind. But the aptitude issue is stickier
for me right now.
I'm reminded of something
said at a PLoP a few years ago. He offered as motivation piano teachers.
Perhaps not everyone has the aptitude to be a concert pianist, but piano
teachers have several pedagogies that enable them to teach nearly anyone
to play piano serviceably. Perhaps we can aim for the same: not all
of our students will become masters, but all can become competent
programmers, if they show some interest and put in the work required
to get better.
Perhaps aptitude is more of a controlling factor than I have thought.
Certainly, I know of more scientists and mathematicians who have
enjoyed writing (and well) than humanities folks who enjoy doing
calculus or computer programming on the side. But I can't help
but think that interest can trump aptitude for all but a few, so
long as "merely" competence is the goal.
- One person quoted Donald Knuth from his Selected Papers on
Computer Science as saying that people drawn to disciplines
where they find people think as they do, and that only 1-2% of
all people have 'brains wired for algorithmic thinking'. The
poster said that it is inevitable and natural that many folks
will take and be turned off by the geeky things that excite
computer scientists. He wants to create a first course that
gives students glimpse of what CS is really like, so that they
can decide early whether they want to study the discipline
- Another person turned this issue of geeky inside out and said
that all courses should be designed to help student's distinguish
beauty from ugliness in the discipline.
- A third person lamented that attempts to perfect CS 1 as we teach
it now may lead to a Pyhrric victory in which we do a really good
job appealing to a vanishingly small audience. He argued that we
should go to higher level of abstraction, re-inventing early CS
courses so that economics, political science, and biology majors
can learn and appreciate the beauty and the relevance of CS.