I have the opinion that programming requires substantial spatial abilities,
as well as verbal abilities. Ability to read variable names, function
names, and also to know where they lie within a program and how they can
affect other parts of a program. You may write a Java method and forget
the 'name' of a variable, but you may know where to look...
My view of programming 'strategy' is that it is the learnt interactions
that occur between basic cognitive functions. How 'strategy' may be taught
is a different matter (there has been some work on this).
Something that has always stuck in my mind is a paper by Roberts and
Gilmore - relating to individual differences and strategy selection. The
greater the visuo-spatial ability, the easier subjects can choose the more
'suitable' strategy for the solution of a problem. Robert, you mentioned
'Egan'. I've not heard of this... could you give me the entire reference?
As for having 'measures' as programming aptitude indicators, I think IBM
did some work on this around the late 60's, but I've never had the energy
to go hunting for it. Can anybody confirm this?
I'll voice this idea : does anybody think it would be benificial to take a
group of students on a programming course, divide them into quartiles using
a rough measure of 'programming performance', and administer a collection
of standard psychometric exams? It's an idea I've been toying with for
ages but I've never thought it was of any weight... Opinions?
Cheers
Chris Douce
Research Officer, ITRI, University of Brighton, Brighton, UK.