comp.lang.ada
 help / color / mirror / Atom feed
From: Bill Findlay <yaldnifw@blueyonder.co.uk>
Subject: Re: Why is Ada a good choice for an ambitious beginner to programming
Date: Mon, 23 Dec 2002 01:36:14 +0000
Date: 2002-12-23T01:36:14+00:00	[thread overview]
Message-ID: <BA2C190E.15E6%yaldnifw@blueyonder.co.uk> (raw)
In-Reply-To: au5gnq$f3f$1@bunyip.cc.uq.edu.au

On 22/12/02 23:02, in article au5gnq$f3f$1@bunyip.cc.uq.edu.au, "David
Wright" <davidw@uq.net.au> wrote:

> 
> "Bill Findlay" <yaldnifw@blueyonder.co.uk> wrote >
>> 
>> Actually, if the interest is in learning to program,
>> rather than learning to use a specific toolset,
>> then neither IDEs nor debuggers are necessary,
>> or even particularly useful to a beginner.
>> 
> 
> Hi Bill,
> 
> Of all the extremely useful advice to date (thanks everyone!) this concise
> remark reached out and grabbed me by the throat! If by this you are
> suggesting that 'programming' should mean more than the ability to know and
> use the elements of  'a' language and an IDE, but rather should subsume a
> thorough understanding the central abstractions or constructs (e.g.,
> looping, arrays, recursion, pointers etc)

That is the valid subject matter of beginners' programming courses.

> which characterise the various
> language 'genres' (e.g., logical, imperative, functional, object oriented
> etc), then we are very much on the same wave length.

Well, I don't want to dampen your enthusiasm,
but perhaps you read rather more into my posting than I intended.

To begin with, I'll clarify what I did mean.

Beginners to programming have a great deal of detail to absorb.
They do not need to be burdened by learning merely contingent
factoids, such as how to operate the not-necessarily-intuitive
user interface of an IDE. They do need an effortless text editor,
and a trivial means of invoking a compile-and-run cycle.
A very simple IDE (e.g. AdaGIDE) can provide these facilities
with no harm done. Anything more can easily become a distraction
from the real issues.

As for using a debugger, the not-necessarily-intuitive
user interface argument applies there too, even more strongly.
More importantly, it is almost never necessary (at beginner level anyway)
to use a debugger when learning in a supportive language like Ada 95.
This is because debuggers are mainly useful for gathering circumstantial
evidence to support working hypotheses about obscure errors.
Beginners in Ada 95 will rarely experience the kind of obscure error I have
in mind. Even if they do, they will seldom have the conceptual framework
necessary to develop and exploit debugger-provided evidence.

I would go further and say that resorting to a debugger focuses
attention on the miniutiae of individual statements, when beginners
need to develop skill in seeing the bigger picture - i.e. the overall
program structure, with its pre- and post-conditions and invariants
(not that they need to think in formalistic terms, just that they need
to be aware of their program as a cumulatively logical construction).

In other words, they most need to develop the skill of debugging programs
by critical reading. This is crucial, because it develops the very skills
that will enable them to avoid creating bugs in the future.

> Perhaps I am a perverse recalcitrant but it has always bemused me to read
> well meaning contributors in various newsgroups tell self-teaching newcomers
> to "just choose a language and learn it thoroughly". I would have thought
> that a preliminary step would be to delve broadly but thoroughly into the
> particular 'personalities' of the available generic styles of programming
> (logical, imperative...) before choosing and committing to a specific genre,
> language and IDE.

Merely learning 'a language' is absolutely not a worthwhile goal,
but I have to stop short of agreeing with all you say here.
The comparative study you recommend has its place, but that
place is not in a course for complete beginners.  Very few can read a
theoretical treatment and see through it to its practical ramifications.
The comparative studies you suggest begin to have value for sophomores,
but for only a very few, atypical, beginners.

> I wonder whether this comparative approach means that we have moved beyond
> programming into the domain of computer science. But if that is true, I am
> unaware of any formal courses that have as their principal raison d'etre a
> 'thorough' (not cursory or introductory) exposition of the comparative
> differences and merits of the main styles of programming. I stand to be
> correct here.

Such courses certainly exist in CS curricula.

David Watt's series of programming language books (especially "Programming
Language Concepts and Paradigms", to which I was a contributor) covers the
sort of ground you have in mind.

In the Honours curriculum (read CS major in the US) that I am
most familiar with, a deep comparative study of the fundamental semantics of
programming is a Junior level course, assuming an intuitive familiarity
with the basic ideas that is founded on 2 years of theory and lab classes.

> I detect the mutterings of those who (rightly) propound the educational
> theories of  'active learning', 'constructivism', 'hands on, minds on' etc:
> "To learn how to program, they need to program, they need to code and code
> some more!"

Count me among them. That's not enough, of course.

>Correct. But that's not my point.  First, we (I) need to explore
> the nature of programming and its different styles. This can be done
> 'actively' by thinking 'actively', by reading 'actively' and by actively
> discussing these issues with likeminded searchers.

If you are a beginner in programming, you are an unusual one.
If that approach works for you, great.
I could not recommend it for most of the 400 freshers I used to help teach
"Programming for Beginners" (in Ada 95).

> It seems that for many if not most, learning to code, like the prospect of
> consummation, causes one to be lose patience and rush in; both ventures,
> perhaps, have a certain mindless sex appeal.

Indeed, much of a first course is dedicated to persuading those who are
prepared to listen that programming and coding are not the same thing.
But this is not to say that even the more receptive beginners are ready for
an elaborate meta-discussion about the semantic nuances of concepts they
have only begun to master.

> Bill, do correct me if I have misconstrued what you had intended to say. I
> would also be keen to hear any elaborations you may have.
> 
> Thanks for being there. ;P

You're welcome!

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")




  reply	other threads:[~2002-12-23  1:36 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-21  3:30 Why is Ada NOT a good choice for a beginner to programming? David Wright
2002-12-21  5:44 ` sk
2002-12-23 14:29   ` Wes Groleau
2002-12-23 17:36     ` sk
2002-12-23 18:24       ` David Wright
2002-12-23 19:16         ` sk
2002-12-23 19:48           ` David Wright
2002-12-23 21:33             ` Wes Groleau
2002-12-23 21:17           ` Robert A Duff
2002-12-24 19:22             ` faust
2002-12-24  0:46               ` Robert A Duff
2002-12-24  9:41                 ` Pascal Obry
2002-12-25  4:43                 ` faust
2002-12-27 17:54                   ` Warren W. Gay VE3WWG
2003-01-02 13:50                     ` Wes Groleau
2002-12-25  7:24                 ` AG
2003-01-02  9:56                   ` John McCabe
2003-01-02 13:47                 ` Wes Groleau
2003-01-08 19:39                   ` faust
2003-01-08  2:44                     ` Jeffrey Creem
2003-01-08 18:54                       ` Wes Groleau
2003-01-08 19:48                         ` chris.danx
2003-01-08 21:59                           ` Wes Groleau
2003-01-09 15:31                             ` Georg Bauhaus
2003-01-10  3:26                               ` Hyman Rosen
2003-01-10 22:58                                 ` Georg Bauhaus
2003-01-10  3:51                               ` Kevin Cline
2003-01-10 13:29                               ` Wes Groleau
2003-01-11 12:09                               ` Richard Riehle
2003-01-11 18:13                                 ` Wes Groleau
2003-01-09 16:52                           ` faust
2003-01-08 21:57                             ` Vinzent Hoefler
2003-01-09  0:59                       ` faust
2003-01-09  0:59                       ` faust
2003-01-08 13:14                         ` Ted Dennison
2003-01-08 17:41                         ` Warren W. Gay VE3WWG
2003-01-09 16:40                           ` faust
2003-01-08 21:58                             ` Vinzent Hoefler
2002-12-23 21:30         ` Wes Groleau
2002-12-23 22:11           ` David Wright
2002-12-30 16:22         ` Mark
2002-12-24  0:50     ` Craig Carey
2002-12-29 14:44       ` Colin Paul Gloster
2002-12-21  8:39 ` arvids lemchens
2002-12-21  8:53 ` Gautier
2002-12-21  9:42 ` Craig Carey
2002-12-21 10:44 ` Dale Stanbrough
2002-12-21 15:47   ` Alfred Hilscher
2002-12-21 19:01     ` tmoran
2002-12-22  1:06       ` Robert C. Leif
2002-12-23 14:56         ` Wes Groleau
2002-12-23 11:05       ` Alfred Hilscher
2002-12-22  0:34     ` James S. Rogers
2002-12-23 11:11       ` Alfred Hilscher
2002-12-23 14:32         ` Wes Groleau
2002-12-23 19:54         ` tmoran
2002-12-21 10:51 ` Why is Ada a good choice for an ambitious beginner to programming Wojtek Narczynski
2002-12-22 14:40   ` Bill Findlay
2002-12-22 15:08     ` Bill Findlay
2002-12-22 23:02       ` David Wright
2002-12-23  1:36         ` Bill Findlay [this message]
2002-12-23  2:13           ` David Wright
2002-12-23 14:40           ` Wes Groleau
2002-12-27 21:25             ` Randy Brukardt
2002-12-23 11:52     ` Wojtek Narczynski
2002-12-23 14:12       ` Bill Findlay
2002-12-23 20:15         ` Wojtek Narczynski
2002-12-24 19:29           ` Bill Findlay
2002-12-24 22:56             ` Wojtek Narczynski
2002-12-24 23:31               ` Bill Findlay
2002-12-24 23:36               ` Adrian Knoth
2002-12-25  8:23             ` Hyman Rosen
2002-12-27 17:27               ` Kevin Cline
2002-12-28  1:56                 ` Bill Findlay
2002-12-28  2:13                   ` Bill Findlay
2002-12-29  6:07                   ` Hyman Rosen
2002-12-23 20:52         ` Wojtek Narczynski
2002-12-23 20:07     ` chris.danx
2003-01-02 10:04     ` John McCabe
2003-01-02 21:32       ` Bill Findlay
2003-01-04 22:55         ` David Wright
2003-01-05  0:50           ` Bill Findlay
2003-01-05  2:18             ` David Wright
2003-01-05  3:57               ` John R. Strohm
2003-01-10  2:51                 ` Richard Riehle
2003-01-10  9:45                   ` David Wright
2003-01-10 10:59                     ` Richard Riehle
2003-01-11 17:47                     ` u.r. faust
2003-01-06  9:43               ` John McCabe
2003-01-06 10:05         ` John McCabe
2003-01-06 11:13           ` Bill Findlay
2003-01-10  2:58           ` Richard Riehle
2003-01-10  9:29             ` John McCabe
2002-12-21 11:57 ` Why is Ada NOT a good choice for a beginner to programming? David Marceau
2002-12-21 15:59 ` Alfred Hilscher
2002-12-21 17:48 ` Britt Snodgrass
2002-12-21 20:05 ` Peter Hend�n
2002-12-22  1:54 ` faust
2002-12-22  1:28   ` Hyman Rosen
2002-12-22  2:11     ` Larry Kilgallen
2002-12-22 22:49     ` faust
     [not found] ` <u7m2ua.qk3.ln@beastie.ix.netcom.com>
2002-12-23 14:55   ` Wes Groleau
2002-12-24 14:01 ` W D Tate
2002-12-24 20:06   ` Rod Haper
2002-12-25  0:37   ` noone
2002-12-26 13:23     ` W D Tate
2002-12-26 20:37       ` David Starner
2002-12-27 14:02         ` W D Tate
2003-01-13 12:18 ` John English
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox