In my
experience, what happens around 3rd year is that the students have a course
which is VERY abstract. In CS, that is usually the theory of computation
course. In Math, you get Topology, Abstract Algebra, etc. If they
manage to survive that, then they have moved beyond simple problem-solving
skills into the crucial skills to be a Designer instead of a Programmer: the
ability to think abstractly, to see patterns where before you just saw a bunch
of unrelated things.
I
found that students' marks in their 'abstract' courses was the best predictor of
their skills as a designer [when I was still hiring students in an industrial
setting]. I did not find any good correlator with 'good programmer'
(yet).
Note
that master software engineers do not think about computation at all - they
think about structure. They key point is 'abstraction'. If you can
deal with the proof of the Halting problem, you are on your way to dealing with
abstraction. If you can deal with things like Traits or Mixins (for OO
aficinados) or higher-order function and Functors (for the functional
programmers out there), you're there.
Jacques
-----Original Message-----I think that if the lists forked, we'd be signaling a missed opportunity to understand how people develop expertise in software development. I completely agree that getting students STARTED with programming is a critical problem (it is an applied problem, too), and offers some fascinating puzzles and research questions to work on. But an even more challenging set of research questions surround what comes after that.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mark Guzdial
Sent: March 10, 2005 9:29 AM
To: Ruven E Brooks
Cc: [EMAIL PROTECTED]; [email protected]
Subject: Re: PPIG discuss: Commercial reality (was: Competence (was: About natural naming))
We have too high failure rates in intro computing courses, but some of those students do succeed, and some percentage of those become the Richard Stallmans of the world. How did that happen? How did that software development expertise arise?
Here at Georgia Tech, we've been using Elliot Soloway's Rainfall problem sporadically in our 1st and 2nd year undergraduate classes, and every time, we're shocked at the results -- they're just as bad as those reported by Elliot 20 years ago at Yale. AND YET, our 4th year students nail the Rainfall Problem and are heavily sought after by industry. What happened there?!? What went on between the 2nd and 4th years that such a dramatic change occurred? (Yes, I know the answer: "the 3rd year." But what happened there in terms of skills and concepts development?)
Mathematicians can explain much of the path from developing a concept of number through dealing with Calculus. Physicists have identified misconceptions and strategies for dealing with them from kinematics to electromagnetism. But in studying how people learn about and think about computing, we're nowhere close to being able to do that.
To me, this is a Grand Challenge of Computing Education: What is a developmental model that can explain how people go from grappling with variables and recursion up through becoming a master software engineer? We have a better chance of addressing that challenge if the people watching the intro process and those watching the professional software developers keep talking to one another.
Mark
On Mar 10, 2005, at 8:49 AM, Ruven E Brooks wrote:
The discussion of commercial issues arise because some of us have a great deal of trouble understanding the/smaller>
relevance of some of the research being discussed. A large part of the postings seem to be about teaching introductory/smaller>
programming; others appear directed at minor coding issues that are unlikely to have significant impact./smaller>
To the extent that psychology of programming is APPLIED psychology, relevance to real world situations is what's important./smaller>
Furthermore, many of the important areas, writing/interpreting requirements, testing, etc. appear wide open in terms of/smaller>
opportunities for research./smaller>
Perhaps, we ought to start a second discussion group, psychology of software development, that focuses on psychological issues/smaller>
and research that arise in professional and commercial software development./smaller>
Ruven Brooks/smaller>
Derek M Jones <[EMAIL PROTECTED]>/x-tad-smaller>/smaller>
Sent by: [EMAIL PROTECTED]/x-tad-smaller>/smaller>
03/09/2005 05:29 PM/x-tad-smaller>/smaller>
/x-tad-smaller>/smaller>/fontfamily>
To: [email protected]/x-tad-smaller>/smaller>
cc: /x-tad-smaller>/smaller>
Subject: RE: PPIG discuss: Commercial reality (was: Competence (was: About natural naming))/x-tad-smaller>/smaller>__________
Walter,/smaller>/fontfamily>
>Isn't the first P in PPIG for Psychology?/smaller>/fontfamily>
Indeed it is. Not wishing to tread on any more nerves/smaller>/fontfamily>
than I might already have trodden on, but the interests/smaller>/fontfamily>
behind the current thread (i.e., the realities of commercial/smaller>/fontfamily>
software development) are driven by a different set/smaller>/fontfamily>
of priorities than the interests of many of those on this list./smaller>/fontfamily>
I don't see the psychology aspect of some of the threads I/smaller>/fontfamily>
see on the list and the only explanation I have for them is/smaller>/fontfamily>
"oh, that's an academic thing"./smaller>/fontfamily>
derek/smaller>/fontfamily>
--/smaller>/fontfamily>
Derek M Jones tel: +44 (0) 1252 520 667/smaller>/fontfamily>
Knowledge Software Ltd mailto:[EMAIL PROTECTED]/smaller>/fontfamily>
Applications Standards Conformance Testing http://www.knosof.co.uk/smaller>/fontfamily>
----------------------------------------------------------------------/smaller>/fontfamily>
PPIG Discuss List ([email protected])/smaller>/fontfamily>
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss/smaller>/fontfamily>
Announce admin: http://limitlessmail.net/mailman/listinfo/announce/smaller>/fontfamily>
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org//smaller>/fontfamily>
Mark Guzdial : Georgia Tech : College of Computing/GVU
Atlanta, GA 30332-0280
Collaborative Software Lab, http://coweb.cc.gatech.edu/csl
http://www.cc.gatech.edu/~mark.guzdial/
