Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-05 Thread Charles Knutson


On Jul 4, 2007, at 10:55 AM, Frank Wales wrote:


Charles Knutson wrote:

I believe there is a taxonomy of four types of people, relative to
professional software construction:
1) Those born to code, who need almost no coaching;
2) Those born capable but in need of training in order to be  
successful;
3) Those not really born to it, but who can be trained  
sufficiently to make a living;

4) Those whose brains are really not wired to build software at all.


As a matter of interest, do you have a sense of how the general  
population

is distributed across these suggested types?

Rather than just categories or types, I'd actually propose a spectrum
of capabilities, with people who just 'get' computer technology at one
end, people who would sooner eat lint that use it to check their C
programs at the other, and the substantial mass of people bulging
somewhere along the middle.  (Of the spectrum.)

I'd speculate, completely without anything beyond years of experience
and arrogant presumption, that the "just get computer technology" end
of the spectrum glows with about 5% of the population, the "couldn't
write 'hello, world!' despite years of practice" end is dimmed by  
maybe
15% of the population, while the remaining 80% of the population  
huddles

around various quantumly-distributed embers in between.

I think the end groups are inherent, while the huddles are plastic.


Of course I have no objective evidence for what the actual  
distribution might be. If anyone has seen any empirical take on this  
distribution, it would be very interesting. I could easily buy the  
idea that the top is 5% and the bottom 15%. I also concur completely  
with the idea of a spectrum. My taxonomy was more of a highly  
granular way of describing such a spectrum. My apologies to anyone  
who was expecting a fist fight ;)


Two last thoughts on inherent aptitude:

1) I've recently run into students who took the first semester  
programming class at BYU, did well, got their 'A', and then washed  
their hands of the field and went off to study business or something  
else. Clearly they are capable of programming, at least at the entry  
level, but the biggest dissuading factor to them was the inherent   
motivation (or lack thereof). One of them told me that after spending  
15 hours on a programming project, and finally getting it working and  
passed off, they felt like they had been robbed of 15 hours of their  
life that they would never get back! That was such a news flash to  
me! In *my* experience, every program or project I ever finished has  
carried with it some sense of euphoria and satisfaction that seemed  
to make all the pain worthwhile. And much of my programming time has  
been somewhat rhapsodic, like a runner's high. So while I don't  
consider myself to be the most gifted programmer (or even necessarily  
a member of the first group) I have always been quite satisfied and  
happy with the process of constructing software.


2) I just started reading Stephen King's "On Writing." Interesting to  
find this quote on page 4 (substitute "computer programmers" for  
"writers"):


"This is not an autobiography. It is, rather, a kind of curriculum  
vitae--my attempt to show how one writer was formed. Not how one  
writer was *made*; I don't believe writers *can* be made, either by  
circumstances or self-will (although I did believe those things  
once). The equipment comes with the original package. Yet it is by no  
means unusual equipment; I believe large numbers of people have at  
least some talent as writers and storytellers,  and that those  
talents can be strengthened and sharpened. If I didn't believe that,  
writing a book like this would be a waste of time."


Just a bit more grist for the mill.
Chuck
--
Charles D. Knutson, Ph.D.
Associate Professor, Computer Science Dept.
Brigham Young University
www.charlesknutson.net



--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-04 Thread Frank Wales
I just wrote:
> Rather than just categories or types, I'd actually propose a spectrum

Did I say 'spectrum'?  Apparently, I meant 'Humpy the camel':
  http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
-- 
Frank Wales [EMAIL PROTECTED]
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-04 Thread Frank Wales
William Billingsley wrote:
> Consider for a moment if we could identify the cognitive requirements of
> a profession, the cognitive abilities of candidates, and could simply
> cross-check between them to see if candidate X could achieve proficiency
> in profession Y.

I refer you my forthcoming analysis of the historical document
"Futurama -- episode one", with specific reference to my hypothesis
that suicide booths were an inevitable reaction to career chips.
The work will also highlight how, even with the wide availability of
direct brain interfaces and caffeinated bacon, just anyone still
can't learn to program by the year 3000.

Note that by 'forthcoming', I mean 'in my dreams', and by 'anyone',
I mean *anyone*, from lawyer to lorry driver, from burger flipper to
politician, from housewife to astronaut to housewife-stalking astronaut,
from homeopath to psychopath to super-intelligent garden path,
Pat Robertson, Steve Jobs, Richard Dawkins, Edward Norton, Paris Hilton,
Tony Blair, George W Bush, maybe even Tom Cruise, but probably not
that guy who dropped out of media studies because it was "too technical".

I just wanted to clarify that other less flippant contributors to this
thread were also using 'everyone' and 'anyone' in such an all-encompassing
way, rather than using them to mean something closer to 'students with some
programming element in their courses who actually turn up to my class'.

> [...] most students dropped out because
> of the same effects of moving away from home for the first time (not
> being forced to work, meeting girl-/boyfriends, availability of drugs, 
> etc) as for any other subject.

Not being forced to work, meeting girlfriends and availability of drugs, eh?
Where was this campus all the times that I went University?

Charles Knutson wrote:
>> I believe there is a taxonomy of four types of people, relative to 
>> professional software construction:
>> 1) Those born to code, who need almost no coaching;
>> 2) Those born capable but in need of training in order to be successful;
>> 3) Those not really born to it, but who can be trained sufficiently to make 
>> a living;
>> 4) Those whose brains are really not wired to build software at all.

As a matter of interest, do you have a sense of how the general population
is distributed across these suggested types?

Rather than just categories or types, I'd actually propose a spectrum
of capabilities, with people who just 'get' computer technology at one
end, people who would sooner eat lint that use it to check their C
programs at the other, and the substantial mass of people bulging
somewhere along the middle.  (Of the spectrum.)

I'd speculate, completely without anything beyond years of experience
and arrogant presumption, that the "just get computer technology" end
of the spectrum glows with about 5% of the population, the "couldn't
write 'hello, world!' despite years of practice" end is dimmed by maybe
15% of the population, while the remaining 80% of the population huddles
around various quantumly-distributed embers in between.

I think the end groups are inherent, while the huddles are plastic.

I also think that people who couldn't grasp programming in their cute,
butter-secreting paws at any point during the lifetime of a non-terminating
Sunday generator tend to be missing from our web-enabled world in much the
same way as Star Trek fans tend to be missing from WWF wrestling matches;
a combination of self-defensive avoidance of what they're bad at,
while haphazardly sticking to what they're actually good at.

Nick Flor wrote:
> For the record, I believe anyone can learn to program at a professional 
> level. 

Just to make sure I'm insulting as many people as possible in one message,
I would counter that if we really could teach *anyone* (see earlier definition)
to program at a professional level, it would be compelling evidence that our
standards for "professional programmer" weren't high enough yet.

Which might go some way towards explaining this:
  http://www.codinghorror.com/blog/archives/000781.html
-- 
Frank Wales [EMAIL PROTECTED]
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-04 Thread William Billingsley
how to become self-sustaining after that. I believe  
there is a taxonomy of four types of people, relative to  
professional software construction: 1) Those born to code, who need  
almost no coaching; 2) Those born capable but in need of training  
in order to be successful; 3) Those not really born to it, but who  
can be trained sufficiently to make a living; 4) Those whose brains  
are really not wired to build software at all.


Just my two cents. Your mileage may vary.
Chuck
--
Charles D. Knutson, Ph.D.
Associate Professor, Computer Science Dept.
Brigham Young University
www.charlesknutson.net


On Jul 3, 2007, at 6:18 AM, Nick Flor wrote:


Ah, brings back memories.

The concepts you're referring to are "neural plasticity" and  
"critical periods."  The studies I'm familiar with focus on  
learning (human) languages.   Supposedly, past a certain age you  
can learn a language, but you'll never pick up all the little  
nuances that the natives have.


For the record, I believe anyone can learn to program at a  
professional level.  The question is, are they willing to put in  
the time to acquire all the chunks needed to be an expert?   
Unfortunately, we can't force our students to put in the time.


Just my opinion,

- Nick

________

From: [EMAIL PROTECTED] on behalf of ok
Sent: Mon 7/2/2007 10:01 PM
To: [email protected]
Subject: Re: PPIG discuss: Programmer education argument-starter  
of the week




On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote:



So I would be, frankly, astonished if it could be shown that
*everyone* is equally trainable in programming to a
professional standard, any more than it could be shown that
everyone could learn to be a professional golfer or a
professional artist or a professional mathematician or a
professional teacher.


Actually I think that most people could be trained to these  
levels or

pretty close to them with sufficient effort.


...
The neurologist made the point that some things take a LOT of  
practice
and if you start too late you will NEVER be much good at it.  You  
cannot

expect a professional baseballer to also play tennis to professional
level (although he would of course beat a rabbit like me every time).


CONFIDENTIALITY NOTICE

"This e-mail, including all attachments, is for the sole use of  
the intended recipient(s) and may contain confidential and  
privileged information. Any unauthorized review, use, disclosure  
or distribution is prohibited unless specifically provided for  
under the New Mexico Inspection of Public Records Act. If you are  
not the intended recipient, please contact the sender and destroy  
all copies of this message.  Any views or opinions presented in  
this e-mail are solely those of the author and do not necessarily  
represent those of the Anderson School at UNM."



- 
-

PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/






RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-03 Thread Guzdial, Mark
No, Frank, that's not the sense in which I meant "geek gene."  I quite 
literally am saying that it is hard to believe that some people are "born" to 
code -- I see no evidence that predisposition to programming is genetic.  
Charles Knutson's anecdote is a good case in point.  His anecdote of how he 
came to program starts at age 13.  Thirteen years is an enormous amount of time 
to engage in a lot of basic learning--that's not a "blank slate."
 
The point about neural plasticity that Nick is describing tends to be reserved 
for expertise.  While it does seem to be true that one cannot learn to speak a 
foreign language as a native if one starts too late, it also seems to be true 
that most people are capable of learning the basics of other languages at any 
age.  If we consider the "Camel" paper, what is being described there is not 
programming expertise as much as basic introductory computing.  While it may be 
that one cannot become an expert programmer if one starts too late (though, 
again, we have no evidence for that), it may be that anyone can learn some 
programming expertise at any age. 
 
Walter's point that subitizing is a poor example is well taken.  There are 
other basic skills and number concepts associated with learning math and having 
a "disposition" toward math.  The question about which I was wondering aloud is 
what the similar basic skills and concepts are for computing.
 
Mark
 


From: Frank Wales [mailto:[EMAIL PROTECTED]
Sent: Mon 7/2/2007 11:14 AM
To: Guzdial, Mark
Cc: Lindsay Marshall; Peter Gutmann; [EMAIL PROTECTED]; [email protected]
Subject: Re: PPIG discuss: Programmer education argument-starter of the week



Oh, by the way...

A while ago, Mark Guzdial wrote:
>[...] If we're agreed that there is no "geek gene,"

I don't agree with that contention at all, in the
sense that I believe that some people have a knack
for technology that others don't, that that knack is
as much a part of their make up as their height or
gender, and that picking up geeky stuff (including
programming) is noticeably easier for those with
that knack than for those without it.

I'm perfectly happy to offer myself as a data point in
favour of my claim, since I have a pretty good idea of
how I got to be a programmer, and it wasn't because of
the concerted efforts of others (including teachers and
parents and friends) to push me in this direction.

(I realize that one data point doesn't make a trend, even
for vociferous values of 'data point', but it's a start.)

Rather than being some post-modern development, I think
'geekiness' is apparent throughout history, and has a
clear social value, especially since the inventions of
the division of labour and written language.  It just so
happens that our headlong hurtle into a shiny, robot-cluttered
future has changed the social evolutionary pressure on us
to favour our geeky side more than ever, with a consequent,
and strangely satisfying, increase in the whining from the
non-geek contingent.

(I also happen to think that most of the advances of
civilization have been down to geekiness prevailing over
brute force and ignorance, but then I would think that.)

So I would be, frankly, astonished if it could be shown
that *everyone* is equally trainable in programming to a
professional standard, any more than it could be shown that
everyone could learn to be a professional golfer or
a professional artist or a professional mathematician
or a professional teacher.

Now, where's that shiny robot waiter with my gadget cocktail?
--
Frank Wales [EMAIL PROTECTED]




Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-03 Thread Charles Knutson
I'm not convinced that absolutely *anyone* can learn to be a  
professional X (whatever X is). I think there are some who are really  
just wired to do other things. But I am confident that there are  
varying degrees to which inherent aptitude plays a role, and  
similarly varying degrees to which effective learning experiences  
contribute to facilitate those individuals who can, in fact, be  
successful at profession X.


As evidence, I offer the following non-empirical anecdote. I started  
programming in 1973, when I was 13 years old. Our high school had a  
timesharing account on a mainframe at the University of Northern  
Iowa, and a DecWriter with a suction cup modem and a rotary phone  
with a dedicated line to the university. About a half dozen of us  
math geeks gathered daily in a room to play with the computer (which  
largely consisted of playing Dungeons and Dragons and Star Trek, with  
intermittent fits of attempted software design and code  
construction). Several of my friends just seemed to have the knack  
right out of the chute. We'd dumpster dive at the university for  
discarded manuals, and that was all Brian and Doug needed to build  
software. I tried desperately but couldn't get it beyond a  
fundamental level. The other guys were more or less like me, in love  
with the technology, but not fluent with the incantations.


Years later, in my second semester at the University of Iowa, I had a  
really well constructed and well presented Computer Science class  
that focused primarily on design. During that semester, the light  
came on, and I got it! From that semester it was simply a matter of  
learning new skills and piling them onto the foundation I had now  
acquired. I had a very successful professional career building  
software (HP, Novell, various small companies and consulting gigs),  
picked a few graduate degrees along the way, and then retired to the  
university to stop producing and begin pontificating. :)


As an epilogue, of the group of math geeks that gathered together  
daily in high school to play with the DecWriter, all but one of us  
acquired degrees in Computer Science, with the other one (Brian)  
doing Electrical Engineering.


My personal experience is that I was always fascinated, I was  
obviously capable, but I needed someone to throw the switch for me to  
understand how to become self-sustaining after that. I believe there  
is a taxonomy of four types of people, relative to professional  
software construction: 1) Those born to code, who need almost no  
coaching; 2) Those born capable but in need of training in order to  
be successful; 3) Those not really born to it, but who can be trained  
sufficiently to make a living; 4) Those whose brains are really not  
wired to build software at all.


Just my two cents. Your mileage may vary.
Chuck
--
Charles D. Knutson, Ph.D.
Associate Professor, Computer Science Dept.
Brigham Young University
www.charlesknutson.net


On Jul 3, 2007, at 6:18 AM, Nick Flor wrote:


Ah, brings back memories.

The concepts you're referring to are "neural plasticity" and  
"critical periods."  The studies I'm familiar with focus on  
learning (human) languages.   Supposedly, past a certain age you  
can learn a language, but you'll never pick up all the little  
nuances that the natives have.


For the record, I believe anyone can learn to program at a  
professional level.  The question is, are they willing to put in  
the time to acquire all the chunks needed to be an expert?   
Unfortunately, we can't force our students to put in the time.


Just my opinion,

- Nick



From: [EMAIL PROTECTED] on behalf of ok
Sent: Mon 7/2/2007 10:01 PM
To: [email protected]
Subject: Re: PPIG discuss: Programmer education argument-starter of  
the week




On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote:



So I would be, frankly, astonished if it could be shown that
*everyone* is equally trainable in programming to a
professional standard, any more than it could be shown that
everyone could learn to be a professional golfer or a
professional artist or a professional mathematician or a
professional teacher.


Actually I think that most people could be trained to these levels or
pretty close to them with sufficient effort.


...
The neurologist made the point that some things take a LOT of practice
and if you start too late you will NEVER be much good at it.  You  
cannot

expect a professional baseballer to also play tennis to professional
level (although he would of course beat a rabbit like me every time).


CONFIDENTIALITY NOTICE

"This e-mail, including all attachments, is for the sole use of the  
intended recipient(s) and may contain confidential and privileged  
information. Any unauthorized review, use, disclosure or  
distribution is prohibited unless specifically provided for

Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-03 Thread Bjorn Reese
Frank Wales wrote:
> Bjorn Reese wrote:
>> The students used longer titles, such as "count number of
>> occurrences" and "find if any element is of some sort", whereas the
>> professionals used short titles, such as "count" and "find".
>>
>> This could indicate that the looping constructs belong to the
>> basic-level category (Rosch, 1978) of the professionals but not
>> of the student.
> 
> Or it could mean that the students were in the habit of being
> overly verbose in answering questions, since terseness is generally
> not rewarded in exams, while it often is rewarded in business.

This is a good observation.

The study was not designed to investigate this issue. The subjects were
only asked to give a descriptive title so that I could check that they
knew what the loop was doing. The difference in title length was an
unexpected outcome, and the basic-level category comment is best
speculation I could come up with.

I just went back and read the questionnaire responses once more. The
questionnaire had a number of questions where the subjects were asked
to describe something in their own words. The verbosity of the students
and the professionals on these other questions are about the same, so
I somewhat doubt that the difference on the loop titles is due to the
different reward systems as you suggest.
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-03 Thread Nick Flor
Ah, brings back memories.
 
The concepts you're referring to are "neural plasticity" and "critical 
periods."  The studies I'm familiar with focus on learning (human) languages.   
Supposedly, past a certain age you can learn a language, but you'll never pick 
up all the little nuances that the natives have.
 
For the record, I believe anyone can learn to program at a professional level.  
The question is, are they willing to put in the time to acquire all the chunks 
needed to be an expert?  Unfortunately, we can't force our students to put in 
the time. 
 
Just my opinion,
 
- Nick  



From: [EMAIL PROTECTED] on behalf of ok
Sent: Mon 7/2/2007 10:01 PM
To: [email protected]
Subject: Re: PPIG discuss: Programmer education argument-starter of the week



On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote:
>
>> So I would be, frankly, astonished if it could be shown that
>> *everyone* is equally trainable in programming to a
>> professional standard, any more than it could be shown that
>> everyone could learn to be a professional golfer or a
>> professional artist or a professional mathematician or a
>> professional teacher.
>
> Actually I think that most people could be trained to these levels or
> pretty close to them with sufficient effort.

...
The neurologist made the point that some things take a LOT of practice
and if you start too late you will NEVER be much good at it.  You cannot
expect a professional baseballer to also play tennis to professional
level (although he would of course beat a rabbit like me every time).


CONFIDENTIALITY NOTICE

"This e-mail, including all attachments, is for the sole use of the intended 
recipient(s) and may contain confidential and privileged information. Any 
unauthorized review, use, disclosure or distribution is prohibited unless 
specifically provided for under the New Mexico Inspection of Public Records 
Act. If you are not the intended recipient, please contact the sender and 
destroy all copies of this message.  Any views or opinions presented in this 
e-mail are solely those of the author and do not necessarily represent those of 
the Anderson School at UNM."


--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-03 Thread Lindsay Marshall
 

>There's a book on one of my study shelves at home by an 
>American neurologist.  I'm sorry, I can't recall the name, but 
>I think it may have been the same one who wrote "Toscanini's 
>Fumble".  One of the essays in it concerns the failure of 
>someone famous in sport X to be any good in sport Y, to which 
>he transferred.

However there's also a book called "Tone Deaf and All Thumbs" which
points out that lots of people learn things later in life particularly
in music. (There is also a book called "Tolstoy's Bicycle" which lists
the age at which people learned things).


L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread ok

On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote:



So I would be, frankly, astonished if it could be shown that
*everyone* is equally trainable in programming to a
professional standard, any more than it could be shown that
everyone could learn to be a professional golfer or a
professional artist or a professional mathematician or a
professional teacher.


Actually I think that most people could be trained to these levels or
pretty close to them with sufficient effort.


There's a book on one of my study shelves at home by an American
neurologist.  I'm sorry, I can't recall the name, but I think it may
have been the same one who wrote "Toscanini's Fumble".  One of the
essays in it concerns the failure of someone famous in sport X to be
any good in sport Y, to which he transferred.

The neurologist made the point that some things take a LOT of practice
and if you start too late you will NEVER be much good at it.  You cannot
expect a professional baseballer to also play tennis to professional
level (although he would of course beat a rabbit like me every time).

All the really good programmers I've ever met picked up the elements of
the subject (including assignment statements) before anyone tried to
teach them.  That includes colleagues and students taught here.  The
one programming paper I ever had as an undergraduate was actually a
numerical analysis paper taught by a really good numerical analyst who
was not much good as a programmer.

I sometimes think we can't teach programming at all; the best we can
do is provide an opportunity for people to learn without getting in
their way too much.


--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread MCLELLAN Alexander
 I hesitate to insert a stereo-typical note into the conversation, but I
think you may find this interesting

http://uk.youtube.com/watch?v=CmYDgncMhXw

The 'hero' is going to take to programming like a duck to water. Those
of us who have 'The Knack' know it ...

and can recognise it in those of our grandchildren who share it


rgds
Alex. 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Paola Kathuria
Sent: 02 July 2007 18:46
To: PPIG Discussion List
Subject: Re: PPIG discuss: Programmer education argument-starter of the
week

Mark Guzdial wrote:
> What motivates
> someone to pick up programming without any previous background (and 
> without, presumably, any desire to make it a profession)?

I clearly remember why I wanted to learning to program, being stumped
when I started and the "aha!" moment when I got it.

When I was 18, I had a feeling I would like (and be good at) smoking,
programming and shooting guns. In my final year of my psychology degree,
programming was one of the offered options and I jumped at it.

We were taught BASIC and I remember staring miserably at a slide with:

 LET A = A + 1

I was flumoxed, thinking that it made no sense at all.

My "aha!" was when I realised that, although the 'A's looked exactly the
same (which rendered the statement meaningless), the A on the left was
actually the 'A'
in the future.

In contrast, I did badly on my physics 'A' level because I got stumped
frequently in class but was too shy to ask for help. Soon, there's
nowhere meaningful (in one's
head) to store the continual incoming new information and it all becomes
gobbledeegook.


Paola
--
http://www.paolability.com/
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


This message and any files transmitted with it are legally privileged and 
intended for the sole use of the individual(s) or entity to whom they are 
addressed. If you are not the intended recipient, please notify the sender by 
reply and delete the message and any attachments from your system. Any 
unauthorised use or disclosure of the content of this message is strictly 
prohibited and may be unlawful.

Nothing in this e-mail message amounts to a contractual or legal commitment on 
the part of EUROCONTROL, unless it is confirmed by appropriately signed hard 
copy.

Any views expressed in this message are those of the sender.


--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread Paola Kathuria
Mark Guzdial wrote:
> What motivates
> someone to pick up programming without any previous background (and
> without, presumably, any desire to make it a profession)?

I clearly remember why I wanted to learning to program,
being stumped when I started and the "aha!" moment when I
got it.

When I was 18, I had a feeling I would like (and be good at)
smoking, programming and shooting guns. In my final year of
my psychology degree, programming was one of the offered
options and I jumped at it.

We were taught BASIC and I remember staring miserably at a
slide with:

 LET A = A + 1

I was flumoxed, thinking that it made no sense at all.

My "aha!" was when I realised that, although the 'A's
looked exactly the same (which rendered the statement
meaningless), the A on the left was actually the 'A'
in the future.

In contrast, I did badly on my physics 'A' level because I
got stumped frequently in class but was too shy to ask
for help. Soon, there's nowhere meaningful (in one's
head) to store the continual incoming new information and
it all becomes gobbledeegook.


Paola
--
http://www.paolability.com/
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread Lindsay Marshall
 
>So I would be, frankly, astonished if it could be shown that 
>*everyone* is equally trainable in programming to a 
>professional standard, any more than it could be shown that 
>everyone could learn to be a professional golfer or a 
>professional artist or a professional mathematician or a 
>professional teacher.

Actually I think that most people could be trained to these levels or
pretty close to them with sufficient effort. However, people can't be
trained to be virtuosi - that requires something more which may well be
a geek gene, or a sheer bloodymindedness gene or just some lucky
physical accident of body configuration, or all three.

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread Frank Wales
Oh, by the way...

A while ago, Mark Guzdial wrote:
>[...] If we're agreed that there is no "geek gene," 

I don't agree with that contention at all, in the
sense that I believe that some people have a knack
for technology that others don't, that that knack is
as much a part of their make up as their height or
gender, and that picking up geeky stuff (including
programming) is noticeably easier for those with
that knack than for those without it.

I'm perfectly happy to offer myself as a data point in
favour of my claim, since I have a pretty good idea of
how I got to be a programmer, and it wasn't because of
the concerted efforts of others (including teachers and
parents and friends) to push me in this direction.

(I realize that one data point doesn't make a trend, even
for vociferous values of 'data point', but it's a start.)

Rather than being some post-modern development, I think
'geekiness' is apparent throughout history, and has a
clear social value, especially since the inventions of
the division of labour and written language.  It just so
happens that our headlong hurtle into a shiny, robot-cluttered
future has changed the social evolutionary pressure on us
to favour our geeky side more than ever, with a consequent,
and strangely satisfying, increase in the whining from the
non-geek contingent.

(I also happen to think that most of the advances of
civilization have been down to geekiness prevailing over
brute force and ignorance, but then I would think that.)

So I would be, frankly, astonished if it could be shown
that *everyone* is equally trainable in programming to a
professional standard, any more than it could be shown that
everyone could learn to be a professional golfer or
a professional artist or a professional mathematician
or a professional teacher.

Now, where's that shiny robot waiter with my gadget cocktail?
-- 
Frank Wales [EMAIL PROTECTED]
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-02 Thread Sarah Mount

On 01/07/07, Lindsay Marshall <[EMAIL PROTECTED]> wrote:


>Bjorn Reese wrote:
>> The students used longer titles, such as "count number of
>> occurrences" and "find if any element is of some sort", whereas the
>> professionals used short titles, such as "count" and "find".
>>
>> This could indicate that the looping constructs belong to the
>> basic-level category (Rosch, 1978) of the professionals but not
>> of the student.

>Or it could mean that the students were in the habit of being
>overly verbose in answering questions, since terseness is generally
>not rewarded in exams, while it often is rewarded in business.

Indeed it could also mean the students had absorbed a lesson about writing
meaningful comments and the professionals were, well, professional
programmers.


Yes, indeed it could. It's an interesting point because, in my
experience teaching 'professional skills' such as good documentation
standards is one of the single most damaging things that a teacher can
do to new programmers. We regularly get students who have learned
'programming' at College, and somehow have absorbed a set of
nonsensical rules like "comment every line of code" and yet don't
understand basics like assignment.

Apart from thinking unrepeatable thoughts about their previous
teachers, it strikes me that this sort of thing is massively
confusing, as the biggest difficulty in teaching programming is
breadking up the huge number of concepts students have to learn and
teaching them one at a time. This is, I think, where Betty Edwards
really was quite brilliant -- not only is her book somewhat
subversive, but it breaks down a very complex cognitive process into a
few very simple actions.

Sarah


--
Sarah Mount, Senior Lecturer, Creative Computing, Coventry University
http://cogentcomputing.org/
http://www.youtube.com/groups_videos?name=creativecomputing
http://varspool.blogspot.com/
http://flickr.com/photos/sarahmount/

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-07-01 Thread Lindsay Marshall


>Bjorn Reese wrote:
>> The students used longer titles, such as "count number of
>> occurrences" and "find if any element is of some sort", whereas the
>> professionals used short titles, such as "count" and "find".
>> 
>> This could indicate that the looping constructs belong to the
>> basic-level category (Rosch, 1978) of the professionals but not
>> of the student.

>Or it could mean that the students were in the habit of being
>overly verbose in answering questions, since terseness is generally
>not rewarded in exams, while it often is rewarded in business.

Indeed it could also mean the students had absorbed a lesson about writing 
meaningful comments and the professionals were, well, professional programmers.

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-01 Thread Frank Wales
Bjorn Reese wrote:
> The students used longer titles, such as "count number of
> occurrences" and "find if any element is of some sort", whereas the
> professionals used short titles, such as "count" and "find".
> 
> This could indicate that the looping constructs belong to the
> basic-level category (Rosch, 1978) of the professionals but not
> of the student.

Or it could mean that the students were in the habit of being
overly verbose in answering questions, since terseness is generally
not rewarded in exams, while it often is rewarded in business.
-- 
Frank Wales [EMAIL PROTECTED]
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-07-01 Thread Bjorn Reese
Lindsay Marshall wrote:

> The skill that I most commonly notice in good programmers is chunking - they 
> can see the structure in complex systems easily and know what to ignore and 
> when to ignore it. It somehow seems analogous to subitizing in a way.

I did a questionnaire study a few years ago in which I asked subjects
to give a descriptive titles to various stereotypical looping
constructs. For example,

Loop 1:

  for (iterator fish = lake.begin(); fish != lake.end(); ++fish)
if (isSalmon(*fish))
  ++salmons;

Loop 2:

  for (iterator fish = lake.begin(); fish != lake.end(); ++fish)
if (isSalmon(*tool))
  break;

The questionnaire was given to two groups: computer science students
and professional software developers.

The students used longer titles, such as "count number of
occurrences" and "find if any element is of some sort", whereas the
professionals used short titles, such as "count" and "find".

This could indicate that the looping constructs belong to the
basic-level category (Rosch, 1978) of the professionals but not
of the student.

 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-06-28 Thread Alan Blackwell

Mark Guzdial <[EMAIL PROTECTED]> said:
> The question of what motivates people to learn to program is an open and
> interesting research question--
[snip]
> - At the low end: CMU's Software Engineering Institute estimates that
> there are at least two and as many as ten times end-user programmers as
> there are professional software developers today.  What motivates
> someone to pick up programming without any previous background (and
> without, presumably, any desire to make it a profession)?

So this particular question *is* rather well researched, largely 
by members of the EUSES consortium (End-Users Shaping Effective 
Software), of which CMU is indeed a member.

Consortium members are currently preparing a review publication
which will deal with this question fairly thoroughly, but for an
early answer based on previous research, my own 2002 paper has
stood the test of time pretty well:

Blackwell, A.F. (2002). First steps in programming: A rationale
for Attention Investment models. In IEEE Symposia on
Human-Centric Computing Languages and Environments, pp. 2-10.
http://www.cl.cam.ac.uk/~afb21/publications/HCC02a.pdf

For more information on the research of the EUSES consortium:
http://eusesconsortium.org/

Alan
-- 
Alan Blackwell   Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/users/afb21/   Phone: +44 (0) 1223 334418


 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-06-28 Thread Alan Blackwell

[EMAIL PROTECTED] said:
> What we really need is a "Drawing on the right side of the
> brain" for programming. 

Lindsay - I like this suggestion. I'd want to sit down and
discuss it over several drinks at PPIG next week, except that a)
PPIG is in Finland, where we won't be able to afford several
drinks), and b) I shall be at a meeting in Switzerland, so won't
be at PPIG anyway.

I suspect that Betty Edwards might be a far more appropriate
model than Jeannette Wing's "Computational Thinking" syllabus.
However, that might explain why I'll never be the head of CS at
CMU!

Alan
-- 
Alan Blackwell   Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/users/afb21/   Phone: +44 (0) 1223 334418


 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-27 Thread Lindsay Marshall

> What are the computing/programming analogous skills to subitizing? 

The skill that I most commonly notice in good programmers is chunking - they 
can see the structure in complex systems easily and know what to ignore and 
when to ignore it. It somehow seems analogous to subitizing in a way.

What we really need is a "Drawing on the right side of the brain" for 
programming.

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-27 Thread Guzdial, Mark



-Original Message-
From: Lindsay Marshall [mailto:[EMAIL PROTECTED]
Sent: Tue 6/26/2007 4:27 PM
To: Guzdial, Mark; Peter Gutmann; [EMAIL PROTECTED]; [email protected]; [EMAIL 
PROTECTED]; [EMAIL PROTECTED]
Subject: RE: PPIG discuss: Programmer education argument-starter of the week
 

> We know relatively little about what leads to success in programming.  

An interesting question then is how much we know about learning anything! Why 
do we think learning to program is different from learning anything else?
=

AGREED! Great question!

Learning to program can't be different from any other kind of learning.  
Programming is too new to believe that we have evolved any particular new forms 
of learning that are particular to programming.  You can pick your favorite 
neural or cognitive model of learning -- it's got to be the same for 
programming as math, art, science, or engineering.

The reason for studying how people learn (and not learn) to program is because 
we can help them to do it better by understanding the domain and the task of 
learning that domain.  For example, Gerhard Fischer (with John Seely Brown) 
wrote an article many years ago now about how skiing instruction was 
dramatically improved by considering how to use scaffolding to make it easier 
to focus on one skill at a time. 

The domain-specific education field that has made the most progress is 
mathematics education (though reading education may be as advanced).  
Mathematics education researchers have studied how children come to learn the 
concept of number, and in so doing, have learned about previously invisible 
enabling skills which, if missing, inhibit a child from learning mathematics.  
My favorite of these is subitizing.  Subitizing is the ability to look at a set 
of items and know how many are there without counting.  Everybody can do it for 
one to three items.  More than that, we have to count--unless the items are in 
a well-known shape (like five or six on a die or a domino).  Math ed 
researchers have found that the lack of subitizing skill (especially for sets 
of five and ten) inhibits later math learning.  They have found ways of testing 
for subitizing skill and helping students develop that skill in preschool so 
that their math development isn't inhibited.

What are the computing/programming analogous skills to subitizing? Let's 
consider the students who aren't learning to program in all our experiences.  
If we're agreed that there is no "geek gene," then it's not nature -- it must 
be nurture.  The students who are learning to program have had some experience 
which has led to learning some skill/concept that the other students don't 
have.  What might that be?
- Maybe our students who learn to program more easily have more experience 
writing down or executing instructions?  Maybe they have a stronger 
understanding of some underlying concept of what it means to define a process 
for another agent?
- Maybe our students who learn to program more easily have had more experience 
thinking about repetitive tasks, how to describe them, or how to create 
shortcuts for them?  In which case, they may have a stronger recognition of the 
need for an iteration control structure and what would be needed to keep the 
iteration from going on forever?

So, the point isn't that learning to program is inherently different.  It's 
different in the same ways as learning any domain is different from learning 
other domains.  By understanding more deeply the challenges of learning to 
program, we can better help those students who do struggle and seem unable to 
learn to program.


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-26 Thread Lindsay Marshall

> We know relatively little about what leads to success in programming.  

An interesting question then is how much we know about learning anything! Why 
do we think learning to program is different from learning anything else?
Relating it to personal experience, I found programming second nature, enjoy it 
immensely and it is what I do best - I don't even recall actively "learning", 
it all seemed pretty obvious (except quicksort which I have never understood). 
But I have "learned" (or tried to learn) many other things and I don't think 
that any of the learning experiences have been different from each other. Of 
course, the things I have been trying to learn are things that I want to do and 
am quite motivated towards. I have a strong phobia about swimming and have 
never learned to swim well : I would actually like to swim, but even trying to 
start lessons is hard I hate it so much, but when I *have* been taught the 
experience is not a lot different to other things and I can see that if I could 
stick at it I would get there. Learning the sax has been interesting since I 
know the music part of it already and what is left is purely sax technique. But 
again, the learning experience seems much the same.

Why do we (or you or others) think programming is different? WHat evidence is 
there that it is different and if it is different what is it most like?

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-26 Thread Mark Guzdial
On Sun, 2007-06-24 at 02:26 -0400, Peter Gutmann wrote:

> Going off on a bit of a tangent, what about considering the evidence
> in "The
> Camel has Two Humps"
> (http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which
> argues that
> programming ability shows a strong bimodal distribution and that some
> people
> will never learn to program/be good programmers no matter what
> teaching
> methods you use, while others will, no matter what teaching methods
> you use.
> Maybe it's not a case of "you need to understand X" but "you need to
> be born
> with the geek gene".

I'm responding to this message earlier in the thread, but in the context
of Richard and Lindsay's later notes.  The point that I was trying to
make in response to the above is that we cannot claim "some people will
never learn to program/be good programmers no what teaching methods you
use."  As Richard points out, the Camel paper test explains 23% of the
variance -- that leaves 77% of the variance unexplained.  Lindsay's
reflections on motivation in programming vs. motivation in music, as
well as Richard's observation on motivation, serve to support my claim:
We know relatively little about what leads to success in programming.  

I whole-heartedly believe the Camel-paper claim that mental models are a
significant factor, and I also believe that motivation is another
significant factor.  Whether motivation for professional programmers is
different than that of end-user programmers is an open and interesting
question, as Alessio has mentioned.  Richard's story about the MS
students and how motivation wasn't the critical factor in that
experience is a fascinating story.  The bottomline, though, is that we
don't have a good explanation for who succeeded and who didn't in that
story.

I suggest that the jury is still out on whether some people can't learn
to program.  There is still a large unexplored space in explaining how
and why people learn to program.

Mark

 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-26 Thread Lindsay Marshall
>For a long time, ever since I had to teach a group of Masters 
>students who had paid for their own course and were trying to 
>convert to computer science to get a job, I haven't believed 
>that motivation is the major underlying cause of the two-hump 
>phenomenon. It must be that a proportion of 18-year olds are 
>unmotivated and don't try, but there are so many who are 
>desperate to succeed and don't seem to be able to. Perhaps the 
>week 3 effect will point to a remedy (come on Ron! give us 
>your data!) but more likely there is a weirdness that we've 
>hardly begin to understand let alone fix.

Motivation may not be enough : if you simply don't enjoy something,
motivation will not always overcome resistance. The fact that they are
converting to get a job indicates that they are likely to enjoy other
things (what they did in their first degree!!) rather than programming. 

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-06-26 Thread Richard Bornat
As an (ex) compiler writer and one of the authors of the Camel paper,  
I feel impelled to wade in. Except I no longer think I have nothing  
interesting to say about understanding compilers: it's fun if you  
like it is all.


The Camel paper was written very over-enthustiastically, for which I  
apologise. That enthused far too many people and annoyed many others.  
Both effects are to be regretted. Our results (Dehnadi's results,  
really, I'm just a part-time scribe) are interesting but not world  
shaking.


In most of the experiments (four out of six) for which we now have  
data, we've found that the subgroup which scores 'consistent  
C0' (using the same mental model in eight out of twelve questions) is  
about half the sample, and has a strikingly significantly different  
failure rate to the rest of the sample. Typically we find the C0  
group has a 20% failure rate or less, and the rest have about 50%  
failure rate. This isn't enough for us to claim (as I did, and I  
regret it) that we can divide sheep from goats, because the 50% false  
negative rate substantially undermines the test's efficacy as a  
predictive instrument.


When we look more closely at the data we find more intriguing  
information. In three of the experiments there are enough females for  
us to be able to contrast them with males. The C0/not C0 distinction  
holds up well for males, but NOT for females. In females the test  
doesn't work: the inconsistent group does better than the consistent.  
Numbers are so small that we can't say much more, and given my  
apologies I'd better not start speculating again. (Since you ask, in  
the fourth experiment almost all of the females had previous  
programming experience and didn't score inconsistent, so no such  
effect.)


We've also found, since Simon inspired us to include questions about  
sex and previous programming experience, that there is a significant  
group which has previous programming experience and already has the  
Java/C models of equals-sign-as-right-to-left-copy and juxtaposition- 
as-sequential-execution. This group -- call it CM2 -- skews the  
results somewhat by dragging the C0 average upward, but even when we  
exclude it from our analysis we can still see significant effects.


On the whole, in those four experiments, my (feeble) grasp of  
statistics and the SPSS controls leads me to believe that Dehnadi's  
test predicts about 25% of the variance between groups. That may not  
sound much, but I have heard it said that since education is so  
multifactorial, 30% is about as much as you can hope for. So, as I  
said, at the moment interesting but not earth-shattering.


The anomalous two experiments, of which the Aarhus experiment is one,  
do seem to have very different starting conditions. In both  
experiments almost all the intake scores consistent/C0 at the  
beginning (and at Aarhus it may be they score CM2, but I haven't had  
clarification of that point from the experimenters). We have some  
notion of why that happens in one experiment, which is in the UK, but  
I don't know how the Danish education system works, so can't  
speculate about Aarhus.


One intriguing result which hasn't yet been replicated, because it  
was overlooked at first, is the 'week 3 effect' which Dehnadi found  
in his first experiment. Forget for the moment about consistency:  
just test whether students have the correct models of assignment and  
sequence in week 3, when they've been taught them. The single time it  
was tried this was more predictive than the original test, with much  
smaller false negative and false positive trails. One collaborator  
picked this out of the Camel paper, modified his teaching, and  
promises us some data about his results soon (but we beware the  
Hawthorne effect, as ever, and I'm aware that maybe the Hawthorne  
experiment didn't show the Hawthorne effect, so please don't set that  
dog on me).


For a long time, ever since I had to teach a group of Masters  
students who had paid for their own course and were trying to convert  
to computer science to get a job, I haven't believed that motivation  
is the major underlying cause of the two-hump phenomenon. It must be  
that a proportion of 18-year olds are unmotivated and don't try, but  
there are so many who are desperate to succeed and don't seem to be  
able to. Perhaps the week 3 effect will point to a remedy (come on  
Ron! give us your data!) but more likely there is a weirdness that  
we've hardly begin to understand let alone fix.


Richard Bornat

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Gaspar, Alessio (USF Lakeland)
Focusing on the reasons for motivation is indeed a very interesting
question. Couple of thoughts on the idea: 

1. Some people end up loving doing what they feel they can do. The
beginner [musician / programmer / sculptor] who tries his/her hand at
something and is encouraged by the result, is often the amateur who
practices alone and sometimes, but not necessarily, the professional. A
lot of open source programmers contribute out of passion / interest to
projects long before they make a living from them. Do you like
programming because you're already good at it or do you become good at
it because you like it to start off with? 

2. There is also an interesting question about whether you can really
"motivate" people to like something or "ignite professional passions" on
demand. While this is akin to the philosophical stone for any computing
program with low enrollment, it seems to me that this becomes more
marketing than education. As in many marketing schemes, you end up
building the product which satisfies the masses and I don't think that
if the product is education this is a viable dynamics

3. We need indeed to differentiate between the car mechanics, the
professional driver (our "hard core" programmers, CS graduates) and the
casual driver. Today, using a computer means sometimes installing
software, sometimes writing code (macros, small scripts). Look at the
languages embedded in video games to allow players to script the
behavior of game agents. While all of these activities are technically
speaking programming, none of them require formal and in-depth training.
These skills could be taught in computer literacy courses for instance,
should we adopt the same approach for training computing professionals?
I'm not so sure and would tend to say no. 

Do we have many example of schools producing neuron surgeons who avoided
bio chemistry in their early years but practiced with "virtual operating
room"(tm) software instead because it was more pleasing / entertaining /
motivating for MD candidates who didn't have a sufficient taste for the
hard parts of their curriculum? 


Just my 3 cents and a half :) 

Ps: did you notice how talking about programming always bring us to
compare with art, not science or technologies :)

-Original Message-
From: Mark Guzdial [mailto:[EMAIL PROTECTED] 
Sent: Sunday, June 24, 2007 2:14 PM
To: Lindsay Marshall
Cc: Peter Gutmann; Gaspar, Alessio (USF Lakeland); [email protected];
[EMAIL PROTECTED]
Subject: RE: PPIG discuss: Programmer education argument-starter of the
week

Your point is well-taken, Lindsay:  "I think the point is that some
people simply don't really want to learn to program so don't bother."
The question of what motivates people to learn to program is an open and
interesting research question--given the context that this is the
Psychology of Programming Interest Group, and that affect is a function
of mind as well as cognition.  I don't believe that we know much about
what motivates people to learn to program:
- At the high end: The "Camel" (or "sheep and goats") paper only
considers "learn to program" vs. "can't."  That former group has
different motivations, I believe.  What motivates those super-hackers
who become obsessed with code and end up inventing something like Linux?
What motivates them?
- At the low end: CMU's Software Engineering Institute estimates that
there are at least two and as many as ten times end-user programmers as
there are professional software developers today.  What motivates
someone to pick up programming without any previous background (and
without, presumably, any desire to make it a profession)?

My guess is that these aren't at all the same kind of motivation.  In
fact, one might argue that the activities that the super-hacker and the
end-user programmer are engaging in are dramatically different from each
other.  Programming at the level of 100 lines or less, vs. 10,000 lines
and up is very different.  We may be talking about completely different
psychologies, considering both affect and cognition.

If we agree that motivation is what keeps some people from learning to
program, and if we don't know much about motivation and programming, I
find it premature to claim that some people can't learn to program.  We
know too little about the most significant factor.

Mark

On Sun, 2007-06-24 at 09:45 -0400, Lindsay Marshall wrote:
> 
> > How does one prove that "some people will *never* learn to program"?
> All possible approaches
> > have now been tried so there are no new innovations to develop?
> 
> > Computer science has only been around for a bit over 50 years.  In
> evolutionary terms, that's way
> > too short a time to evolve a particular "gene" for geekiness -- even
> if it could be shown to have some evo

RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Lindsay Marshall
> That former group has different motivations, I believe.  What motivates those 
> super-hackers
> who become obsessed with code and end up inventing something like Linux? What 
> motivates them?

>...  What motivates someone to pick up programming without any previous 
>background (and
> without, presumably, any desire to make it a profession)?

> My guess is that these aren't at all the same kind of motivation.  In
> fact, one might argue that the activities that the super-hacker and the
> end-user programmer are engaging in are dramatically different from each
> other.  Programming at the level of 100 lines or less, vs. 10,000 lines
> and up is very different.  We may be talking about completely different
> psychologies, considering both affect and cognition.

Let's go back to the example of music. There are many more amateur musicians 
than professional ones, and the act of being a professional musician is quite 
different from being an amateur. But I see no evidence that the psychologies of 
the amateurs is particularly different from the professionals. However, I am 
not sure how to equate the 100 lines v 1 lines argument to music though : 
perhaps its the number of pieces that someone knows, but again there are 
amateurs who know many more pieces than some professionals. The main difference 
between the groups is that, usually, though it is by no means a given, the 
professionals are better (in some sense) than the amateurs. This is generally 
due to the fact that it is their job and they do it every day and because they 
tend to have had various disciplines ingrained in them as part of their 
training ("Music engineering" if you will). Amateurs often do not have time to 
practice enough to get the necessary chops (though I think of the Japanese 
Salaryman who comes home every night from his job and practices Django style 
guitar for 3 hours in a small soundproof annex he built in his bedroom). Many 
professionals simply don't practice (I was having a conversation about this the 
other night with a tenor player). Someone followed Paganini around for years 
hoping to see him practice, and used to spy on him. He only ever saw him pick 
up the violin once, work out a couple of finger patterns and then put it down 
again. There is an interesting difference between rehearsal and practice, and 
neither of these seem to have analogues in programming practice. I certainly 
don't do anything that is the equivalent of running scales or arpeggios ( a 
programmer's Hanon anyone?), and the nearest to rehearsals is makign a 
prototype or a first cut that you later refine, which might be the same.


L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Mark Guzdial
Your point is well-taken, Lindsay:  "I think the point is that some
people simply don't really want to learn to program so don't bother."
The question of what motivates people to learn to program is an open and
interesting research question--given the context that this is the
Psychology of Programming Interest Group, and that affect is a function
of mind as well as cognition.  I don't believe that we know much about
what motivates people to learn to program:
- At the high end: The "Camel" (or "sheep and goats") paper only
considers "learn to program" vs. "can't."  That former group has
different motivations, I believe.  What motivates those super-hackers
who become obsessed with code and end up inventing something like Linux?
What motivates them?
- At the low end: CMU's Software Engineering Institute estimates that
there are at least two and as many as ten times end-user programmers as
there are professional software developers today.  What motivates
someone to pick up programming without any previous background (and
without, presumably, any desire to make it a profession)?

My guess is that these aren't at all the same kind of motivation.  In
fact, one might argue that the activities that the super-hacker and the
end-user programmer are engaging in are dramatically different from each
other.  Programming at the level of 100 lines or less, vs. 10,000 lines
and up is very different.  We may be talking about completely different
psychologies, considering both affect and cognition.

If we agree that motivation is what keeps some people from learning to
program, and if we don't know much about motivation and programming, I
find it premature to claim that some people can't learn to program.  We
know too little about the most significant factor.

Mark

On Sun, 2007-06-24 at 09:45 -0400, Lindsay Marshall wrote:
> 
> > How does one prove that "some people will *never* learn to program"?
> All possible approaches
> > have now been tried so there are no new innovations to develop?
> 
> > Computer science has only been around for a bit over 50 years.  In
> evolutionary terms, that's way
> > too short a time to evolve a particular "gene" for geekiness -- even
> if it could be shown to have some evolutionary advantage.
> 
> I think this is not the issue. Music education has been around for
> centuries and there are people who just "never" learn music (and
> people have tried many more ways to teach music than they have
> programming). I think the point is that some people simply don't
> really want to learn to program so don't bother. Most people can learn
> most things (up to certain level) if they want to, they just don't
> want to.
> 
> "I'd give my life to be able to play the piano like that!" "Madam, I
> did"
> 
> L.
> 
> 
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Lindsay Marshall

> I don't follow. An analogical explanation on its own doesn't
> lead to knowing how something works, and the presence of
> processes that can be explained that way doesn't cover the
> whole thing.

It depends what you mean by "know". You are clearly taking a much deeper 
interpretation of know than I am. I (sort of) know how a microwave works but if 
you were to push me on any of the details I would quickly dry up. If you know 
that a compiler reads a special language and translates it into another special 
language then you know something about how it works. And you can progress this 
down to the quantum level if you want. Where does proper "knowing" start?

I still haven't had time to read the original article that frank referenced so 
haven;t seen what claims are being made, but I can say that CS has expanded and 
it has become harder and harder to fit material in a 3 year course, the first 
major thing that we dropped was the compiler course. (I am not saying this was 
a good thing, just that that was what we did). The argument was that the 
important stuff about parsing and stuff was taught in other modules as well. 
And to be fair, writing compilers *is* a fairly specialised task these days, 
that not a lot of people are involved with. (When I were a lad we were always 
writing compilers for things but it just doesn't happen now - perhaps that was 
because compilers were our "trick" and people today have different tricks 
(actually, I tend to write interpreters rather than compilers - compilers is a 
very Rob Pike trick though)

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Jon Fairbairn
On 2007-06-24 at 15:46BST "Lindsay Marshall" wrote:
> > 1) If you don't know how computers work, you don't know how
> >compilers work.  (Obviously!) 
> 
> How is that obvious? I can certainly conceive of knowing
> how compilers work without knowing how a computer works -
> there are processes involved that can be explained by
> analogy without referring to actual computers.

I don't follow. An analogical explanation on its own doesn't
lead to knowing how something works, and the presence of
processes that can be explained that way doesn't cover the
whole thing.

Once you know enough about how computers work (together with
some parsing theory and computation theory), you can write
compilers, but writing a compiler without knowing how
computers work (at some level of abstraction) looks
impossible to me -- and if you can't write one, you don't
really know how they work.

The crucual thing in all of this is that parenthetical
remark.  The logical series in my previous message doesn't
really prove that no one understands how computers work,
just that the inference steps aren't valid -- if you can
understand how a target machine "works" at the level of a
register transfer model, you know enough to write a compiler
back-end for it without needing to know anything about
integrated circuits.  If you know the abstract machine of a
compiler back-end, you can write a code generator for it
without understanding the register transfer model of any
real target machine.  If you understand the abstraction
represented by the parse trees required by such a code
generator, you can write a parser to turn a programming
language into that, again without knowing how the abstract
machine works.

And if you have a full understanding of the abstraction
represented by a (properly designed) programming language,
you can write a large class of programme in it without
understanding how its compiler works. (and the programmes
would work just as well if the underlying machine were
replaced with one based on optics rather than
electronics. Unfortunately properly designed languages are
as common as hens' teeth).


But it is true that no one knows how computers work, because
they're (very nearly) deterministic machines built on
quantum mechanical indeterminism, and reconciling that is an
unsolved problem.

-- 
Jón Fairbairn [EMAIL PROTECTED]
31 Chalmers Road [EMAIL PROTECTED]
Cambridge CB1 3SZ+44 1223 570179 (after 14:00 only, please!)


 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Lindsay Marshall


> 1) If you don't know how computers work, you don't know how
>compilers work.  (Obviously!) 

How is that obvious? I can certainly conceive of knowing how compilers work 
without knowing how a computer works - there are processes involved that can be 
explained by analogy without referring to actual computers.

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Lindsay Marshall

> How does one prove that "some people will *never* learn to program"?  All 
> possible approaches
> have now been tried so there are no new innovations to develop?
 
> Computer science has only been around for a bit over 50 years.  In 
> evolutionary terms, that's way
> too short a time to evolve a particular "gene" for geekiness -- even if it 
> could be shown to have some evolutionary advantage.
 
I think this is not the issue. Music education has been around for centuries 
and there are people who just "never" learn music (and people have tried many 
more ways to teach music than they have programming). I think the point is that 
some people simply don't really want to learn to program so don't bother. Most 
people can learn most things (up to certain level) if they want to, they just 
don't want to.

"I'd give my life to be able to play the piano like that!" "Madam, I did"

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


Re: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Jon Fairbairn
On 2007-06-23 at 09:31BST "Lindsay Marshall" wrote:
> > "If you don't know how compilers work, you don't know how computers work."
> >  http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html
> 
> > Seems pretty uncontroversial to me. :-)
> 

We can have a bit of fun with the logic of it:

1) If you don't know how computers work, you don't know how
   compilers work.  (Obviously!) So you vanish up your own
   fundament.

Or,

2) i) To know how compilers work you need to know how
   machine-code works.

   ii) To know how machine code works you need to know how
   integrated circuits work.

   iii) To know how integrated circuits work, you need to
   know how transistors work.

   iv) To know how transistors work, you need to know how
   semiconductors work.

   v) To know how semiconductors work, you need to know how
   quantum machanics works.

   vi) No one knows how quantum mechanics works¹.

   from which it follows that no one knows how compilers
   work.

> Of course it is, but the question that this gives rise to
> is "why do you need to know how computers work?" There are
> loads of things I use every single day that I only have
> the vaguest idea of how they work (diesel engine,
> microwave, brain) and that doesn't stop me. And indeed
> knowing how a diesel engine works would not improve my
> driving one iota.

That rather depends on what you mean by driving. If you mean
"being able to get into a motor vehicle and use it to get
you to a specified location", knowing how a diesel engine
works can significantly increase your chances of achieving
your goal in the event that the route to your destination
takes you far from garages and you have an engine failure².

Similarly, programmer is too wide a term (I'm assuming that
no-one is saying that random computer users need to know how
compilers work). If someone who knocks together plain html
pages is a programmer, not all programmers need to know how
compilers work.  If, at the other extreme, programmer means
someone who, given a computational problem for which a
solution exists, can produce a good solution, then clearly
they need to know how compilers work because the domain of
possible problems includes compilers.

Perhaps we're only talking about /good/ programmers, but the
only good programmers I ever saw³ are dead...

[1] refer to RP Feynman.

[2] unless you are driving a petrol, gas-turbine, electric
or steam engined vehicle.

[3] EW Dijkstra and David Wheeler? 
-- 
Jón Fairbairn [EMAIL PROTECTED]
31 Chalmers Road [EMAIL PROTECTED]
Cambridge CB1 3SZ+44 1223 570179 (after 14:00 only, please!)


 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-24 Thread Guzdial, Mark
How does one prove that "some people will *never* learn to program"?  All 
possible approaches have now been tried so there are no new innovations to 
develop?
 
Computer science has only been around for a bit over 50 years.  In evolutionary 
terms, that's way too short a time to evolve a particular "gene" for geekiness 
-- even if it could be shown to have some evolutionary advantage.
 
Mark



From: [EMAIL PROTECTED] on behalf of Peter Gutmann
Sent: Sun 6/24/2007 2:26 AM
To: [EMAIL PROTECTED]; [email protected]
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: RE: PPIG discuss: Programmer education argument-starter of the week



"Gaspar, Alessio (USF Lakeland)" <[EMAIL PROTECTED]> writes:

>Mmmm, this analogy is flawed, what about reconsidering it along the lines of:
>
>Car mechanics = electrical engineering / comp org / comp architecture
>Driving professionally = programming / software engineering
>Driving casually = using a computer

Going off on a bit of a tangent, what about considering the evidence in "The
Camel has Two Humps"
(http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which argues that
programming ability shows a strong bimodal distribution and that some people
will never learn to program/be good programmers no matter what teaching
methods you use, while others will, no matter what teaching methods you use.
Maybe it's not a case of "you need to understand X" but "you need to be born
with the geek gene".

Peter.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/





RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-23 Thread Peter Gutmann
"Gaspar, Alessio (USF Lakeland)" <[EMAIL PROTECTED]> writes:

>Mmmm, this analogy is flawed, what about reconsidering it along the lines of:
>
>Car mechanics = electrical engineering / comp org / comp architecture
>Driving professionally = programming / software engineering
>Driving casually = using a computer

Going off on a bit of a tangent, what about considering the evidence in "The
Camel has Two Humps" 
(http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which argues that
programming ability shows a strong bimodal distribution and that some people
will never learn to program/be good programmers no matter what teaching
methods you use, while others will, no matter what teaching methods you use.
Maybe it's not a case of "you need to understand X" but "you need to be born
with the geek gene".

Peter.
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-23 Thread Gaspar, Alessio (USF Lakeland)
Mmmm, this analogy is flawed, what about reconsidering it along the
lines of: 

Car mechanics = electrical engineering / comp org / comp architecture
Driving professionally = programming / software engineering 
Driving casually = using a computer 

While each "level" can somewhat ignore the others, within each level is
where the real question lies. The argument of this post was that a
computing professional should be aware of software-level concepts,
techniques and implementations to grant him a "big picture" vision of
the discipline which would, in turn, allow him/her to take one step back
and abstract from this knowledge when necessary. 

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Lindsay Marshall
Sent: Saturday, June 23, 2007 4:32 AM
To: Frank Wales; [email protected]
Subject: RE: PPIG discuss: Programmer education argument-starter of the
week


> "If you don't know how compilers work, you don't know how computers
work."
>  http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html

> Seems pretty uncontroversial to me. :-)

Of course it is, but the question that this gives rise to is "why do you
need to know how computers work?" There are loads of things I use every
single day that I only have the vaguest idea of how they work (diesel
engine, microwave, brain) and that doesn't stop me. And indeed knowing
how a diesel engine works would not improve my driving one iota.

L.
 
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/


RE: PPIG discuss: Programmer education argument-starter of the week

2007-06-23 Thread Lindsay Marshall

> "If you don't know how compilers work, you don't know how computers work."
>  http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html

> Seems pretty uncontroversial to me. :-)

Of course it is, but the question that this gives rise to is "why do you need 
to know how computers work?" There are loads of things I use every single day 
that I only have the vaguest idea of how they work (diesel engine, microwave, 
brain) and that doesn't stop me. And indeed knowing how a diesel engine works 
would not improve my driving one iota.

L.

--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/