[comp.edu] How do teach programming?

neitzel@infbs.uucp (Martin Neitzel) (01/14/89)

The CS dept of the Tech. Univ. Braunschweig, FRG, has a project group
investigating ``computer assisted education/instruction for CS
students''.  As a member of this group, I am concerned with the
development of environments/simulators/tools that are aimed at
undergraduates to teach them their first programming language(s).

If you have made any experiences in this area, I want to solicit you
to post them to comp.edu.  [Is this still the proper newsgroup for this
kind of stuff?]  Thank You in advance.

						Martin

Here are some typical questions:

* How should one teach programming?  What tools (computerized or not)
  would you wish from a kind fairy maiden?

* Assuming that your students _have_ to learn how to program in, say,
  Modula-2:  How would you prepare them for this task?  Would you
  introduce some concepts before they get in touch with the actual
  language?  Which ones and How do you do it?

* Should they make their first steps into programming in a different
  language/environment, more suited to introduce basic concepts like
  ``program text'', ``variable'', ``statement'', ect.?  Or would you
  rather start with Modula-2 from scratch?

* How would you value an educational environment for Modula-2, that
  makes visible what is done internally, e.g. the search of a
  declaration along scopes, or the creation of a new local data space
  at procedure invocation?  (I'm not talking about a debugger here,
  and hope you get the idea.)

--
Martin Neitzel,  Techn. Univ. Braunschweig, W.Germany
BITNET/EARN:	neitzel@dbsinf6.bitnet	  (mail via bitnet preferred)
UUCP:		neitzel@infbs.uucp  (unido!infbs!neitzel)

dykimber@phoenix.Princeton.EDU (Daniel Yaron Kimberg) (01/17/89)

In article <1093@infbs.UUCP> neitzel@infbs.UUCP (Martin Neitzel) writes:
>Here are some typical questions:
>* How should one teach programming?  What tools (computerized or not)
>  would you wish from a kind fairy maiden?

I hope you have taken a look at the very substantial literature on teaching
students how to program.  I think that the right approach to learning,
especially in an abstract domain like programming, would be experiential
learning.  The tools should be designed with this in mind.  Not tools to
teach, but tools to give students the experiences by which they will learn
to program.  I could be more concrete, but I'd give you a biased opinion,
based on more anecdotal and intuitive information than actual data.

                                                 -Dan

pjh@mccc.UUCP (Pete Holsberg) (01/20/89)

Dan,
	Would you cite some of the literature on "how to teach
programming", please?  Thanks,

Pete

-- 
Pete Holsberg                   UUCP: {...!rutgers!}princeton!mccc!pjh
Mercer College			CompuServe: 70240,334
1200 Old Trenton Road           GEnie: PJHOLSBERG
Trenton, NJ 08690               Voice: 1-609-586-4800

dykimber@phoenix.Princeton.EDU (Daniel Yaron Kimberg) (01/21/89)

In article <576@mccc.UUCP> pjh@mccc.UUCP (Pete Holsberg) writes:
>Dan,
>	Would you cite some of the literature on "how to teach
>programming", please?  Thanks,

Okay.  First, a few disclaimers.  I haven't done a heck of a lot of reading in
this area.  I'm much more interested in how computers can be used in
education than in how to teach programming.  Also, this is going to be off
the top of my head, and not in any standard format.  Lastly, I'm just a
lowly undergrad, I haven't devoted my life to studying education (as of
the moment), so I'm probably missing some seriously important refs.  That's
life.  Oh, and also, most of the stuff I've read hasn't had much to do with
teaching advanced computer programming concepts.  Typical studies involve
teaching LISP or Logo to computer novices.  Okay, in no particular format or
order:
    o  Seymour Papert's "Mindstorms" - not specifically about just teaching
       computer programming, but that's part of the deal.  full of Papert's
       musings on educational philosophy.  not much in the way of legit data,
    o  Roy Pea and Karen Sheingold's "Mirrors of Minds..." - some good papers,
       i've only read some of them.
    o  Journal of Educational Psychology - occasional articles on teaching
       computer programming.  lots of empirical studies.  a good journal
       to check because it covers a lot of what gets discussed in this group
    o  Journal of Educational Computing Research - hope i got the name right.
       a pretty new journal, most of the studies are on teaching programming.
       i can't really vouch for the quality, but the topic is dead on.
Okay, well this is random enough.  Depending on what you're interested in,
there are lots of books and journals out there.  There's been lots of work in
intelligent tutoring systems for programming, for instance, and plenty of
interesting papers on using computers in education not necessarily to teach
programming.  Hope this doesn't throw you too far off the track.  And I hope
nobody minds my posting this - last time i tried mailing refs, but i got a
lot of requests.

                                                    -Dan