From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <q9n6ft0pbn903d5gqqbjfjns0ae0kfvra9@4ax.com>
On Fri, 4 May 2001 20:12:21 +0400, Faisal Halim
<············@yahoo.com> wrote:

>Assalaamu 'alaikum,
>
>I would like to know if ADA is a good first language for a beginner, 
>especially when compared to Lisp and Perl, and BASIC.
>
>Despite my 'O' Level qualification in Computers, please assume you are 
>answering a person totally devoid of computer concepts, as I would find 
>such  replies useful when answering queries from 7th grade students who are 
>interested in computers and programming, but have no idea of which language 
>to use.

A restricted subset of Ada would be excellent  since it can be used to
teach not only programming but more importantly, software engineering
concepts.

However, other languages you may want to consider include Haskell ,
OCaml , Smalltalk and even ( shudder ! C++ or Java )

If your students are bright and motivated to learn theory and
fundamentals, Lisp ( or perhaps its smaller and more pedagogically
oriented dialect Scheme ) and Haskell are excellent choices.

If your students are short sighted drones who want to learn the
currently fashionable choices, C++ and Java are (yuck ) appropriate.

But please, do not inflict Perl and BASIC upon innocent children.

From: Larry Kilgallen
Subject: Re: Beginner's Language?
Date: 
Message-ID: <InrbsIku15ll@eisner.encompasserve.org>
In article <··································@4ax.com>, raj <········@optushome.com.au> writes:
> On Fri, 4 May 2001 20:12:21 +0400, Faisal Halim
> <············@yahoo.com> wrote:
> 
>>Assalaamu 'alaikum,
>>
>>I would like to know if ADA is a good first language for a beginner, 
>>especially when compared to Lisp and Perl, and BASIC.
>>
>>Despite my 'O' Level qualification in Computers, please assume you are 
>>answering a person totally devoid of computer concepts, as I would find 
>>such  replies useful when answering queries from 7th grade students who are 
>>interested in computers and programming, but have no idea of which language 
>>to use.
> 
> A restricted subset of Ada would be excellent  since it can be used to
> teach not only programming but more importantly, software engineering
> concepts.

It seems to me that regardless of the language chosen, a restricted
subset is _always_ appropriate.  For any reasonable language there
are bound to be parts that while helpful in certain real-world
programming situations are not illustrative of the _concepts_
involved in programming.
From: Reinout Heeck
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AF4841D.7B63812C@Desk.org>
Larry Kilgallen wrote:
> 
[...]
> 
> It seems to me that regardless of the language chosen, a restricted
> subset is _always_ appropriate.  For any reasonable language there
> are bound to be parts that while helpful in certain real-world
> programming situations are not illustrative of the _concepts_
> involved in programming.

In the case of Smalltalk you will need to slightly change that
statement: the core system is very tiny, all the functionality is in
it's class library. That even goes as far as that the core does not
implement control flow, the libraries do. Restricting one to only part
of the libraries is wat every programmer does.


Reinout
-------
From: Dale Stanbrough
Subject: Re: Beginner's Language?
Date: 
Message-ID: <dale-804D25.10022306052001@mec2.bigpond.net.au>
Reinout Heeck wrote:

> In the case of Smalltalk you will need to slightly change that
> statement: the core system is very tiny, all the functionality is in
> it's class library. That even goes as far as that the core does not
> implement control flow, the libraries do. Restricting one to only part
> of the libraries is wat every programmer does.

Even then i would not teach students about converting values into 
messages, which are (i think) not implemented in a library, but as
part of the language itself.

Perhaps Forth would have been a better example?

Dale
From: Reinout Heeck
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AF4AD27.BE4B5678@Desk.org>
Dale Stanbrough wrote:
> 
> Reinout Heeck wrote:
> 
> > In the case of Smalltalk you will need to slightly change that
> > statement: the core system is very tiny, all the functionality is in
> > it's class library. That even goes as far as that the core does not
> > implement control flow, the libraries do. Restricting one to only part
> > of the libraries is wat every programmer does.
> 
> Even then i would not teach students about converting values into
> messages, which are (i think) not implemented in a library, but as
> part of the language itself.

I don't understand what you are getting at. Messaging is indeed part of
the core system but values are not messages, values are objects in a
Smalltalk system and messages return those values. But what do you mean
when you say 'converting values into messages' ? If you are referring to
the need to use messages to get to instance variables I'd say that is a
real good thing, it hides implementation and thus keeps changes in
implementation local.


> Perhaps Forth would have been a better example?

Of what? 
The Forth ANSI standard is small enough to be grasped by a single person
so there is no need to aim at a restricted set there. 
Anyway I prefer Smalltalk above Forth, one of the reasons being that
Smalltalk yields much more readable code. The absence of syntax in Forth
makes it hard to read (mentally parse) code one is not familiar with.
However if I had to program devices with tiny memory I would seriously
consider using Forth. 


Reinout
-------
From: Dale Stanbrough
Subject: Re: Beginner's Language?
Date: 
Message-ID: <dale-39F185.13370006052001@mec2.bigpond.net.au>
Reinout Heeck wrote:

> I don't understand what you are getting at. Messaging is indeed part of
> the core system but values are not messages, values are objects in a
> Smalltalk system and messages return those values. But what do you mean
> when you say 'converting values into messages' ? If you are referring to
> the need to use messages to get to instance variables I'd say that is a
> real good thing, it hides implementation and thus keeps changes in
> implementation local.

You can have values such as '#doSoemthing' (it's been a -long- time
since i've done Smalltalk, so please forgive if i get the syntax
wrong). You can convert this symbol into a method call to a routine
called 'doSomething'


>> Perhaps Forth would have been a better example?

> Of what? 

...of what you were attempting to demonstrate; a language which has
extremely simple semantics with no need to subset it for teaching 
purposes, and almost everything placed into a library.

> The Forth ANSI standard is small enough to be grasped by a single person
> so there is no need to aim at a restricted set there. 

This was my point.


Dale
From: Reinout Heeck
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AF4CD7D.80F16169@Desk.org>
Dale Stanbrough wrote:
> 
> Reinout Heeck wrote:
> 
> > I don't understand what you are getting at. Messaging is indeed part of
> > the core system but values are not messages, values are objects in a
> > Smalltalk system and messages return those values. But what do you mean
> > when you say 'converting values into messages' ? If you are referring to
> > the need to use messages to get to instance variables I'd say that is a
> > real good thing, it hides implementation and thus keeps changes in
> > implementation local.
> 
> You can have values such as '#doSoemthing' (it's been a -long- time
> since i've done Smalltalk, so please forgive if i get the syntax
> wrong). You can convert this symbol into a method call to a routine
> called 'doSomething'
> 

Now I get it, this is indeed a powerful feature with huge potential for
abuse. It's there so the IDE can be written in Smalltalk and it can live
in the same address space as the application. However when an
application makes use of it that's frowned upon by many Smalltalkers, 
tools like SmallLint will report it as a 'questionable message send'.

> >> Perhaps Forth would have been a better example?
> 
> > Of what?
> 
> ...of what you were attempting to demonstrate; a language which has
> extremely simple semantics with no need to subset it for teaching
> purposes, and almost everything placed into a library.
> 
> > The Forth ANSI standard is small enough to be grasped by a single person
> > so there is no need to aim at a restricted set there.
> 
> This was my point.

OK, the Smalltalk core is _much_ smaller and the presence of a simple
syntax makes it easier to read than Forth though. So I'd say of these
two Smalltalk is the 'better' example.


Cheers!

Reinout
-------
From: Dan Andersson
Subject: SV: Beginner's Language?
Date: 
Message-ID: <9d3a8f$fjl$1@zingo.tninet.se>
> > > The Forth ANSI standard is small enough to be grasped by a single
person
> > > so there is no need to aim at a restricted set there.
> >
> > This was my point.
>
> OK, the Smalltalk core is _much_ smaller and the presence of a simple
> syntax makes it easier to read than Forth though. So I'd say of these
> two Smalltalk is the 'better' example.

Smalltalk core smaller than Forth, surely you jest? Maybe a minimal
Smalltalk is smaller than a full ANS Forth. But Forth is commonly used under
severely constrained circumstances and the base wordset is small.

Regards Dan Andersson
From: Reinout Heeck
Subject: Re: SV: Beginner's Language?
Date: 
Message-ID: <3AF538BE.836E1B76@Desk.org>
Dan Andersson wrote:
> 
> > > > The Forth ANSI standard is small enough to be grasped by a single
> person
> > > > so there is no need to aim at a restricted set there.
> > >
> > > This was my point.
> >
> > OK, the Smalltalk core is _much_ smaller and the presence of a simple
> > syntax makes it easier to read than Forth though. So I'd say of these
> > two Smalltalk is the 'better' example.
> 
> Smalltalk core smaller than Forth, surely you jest? Maybe a minimal
> Smalltalk is smaller than a full ANS Forth. But Forth is commonly used under
> severely constrained circumstances and the base wordset is small.
> 
> Regards Dan Andersson

I was talking language concepts you need to learn before delving into
the library, not memory footprint.

As I said earlier in this thread I would seriously consider Forth if I
had to work in a tiny environment.


Reinout
-------
From: Dan Andersson
Subject: SV: SV: Beginner's Language?
Date: 
Message-ID: <9d3jn5$1mh$1@zingo.tninet.se>
Since Forth is essentially syntax less (It only has semantics) and only a
few concepts, less than ten I contest and maybe less than five depending on
how you define concepts (Concept == stretchy definition word), I really
don't see that either. One case in point is that it is not uncommon to learn
Forth by writing a new Forth after being taught the concepts, or maybe a
subset like a simple rpn evaluator. And I'm not talking about modifying
existing code but recreating it from machine code and up. That shows
something of the simplicity of it.The number of user created Smalltalks are
few in comparison. Tcl is another case of a few concepts language, but even
though the syntax is really simple it has a steep learning curve since the
syntax is based on inhuman concepts, IMO. But even if Forth is simple and
efficient it has not really taken of in the mainstream, maybe because the
many versions or maybe because there are so many worthy languages out there.
For example the simple object oriented languages Oberon-2 and Eiffel who are
small but not toy languages, or Icon and Unicon with their extremely
expressive syntax and some functional languages like Erlang, Haskell and
Clean. Not to forget the Lisp/Scheme complex with the excellent DrScheme
environment that I cannot recommend enough.

Regards Dan Andersson
From: Dave Harris
Subject: Re: Beginner's Language?
Date: 
Message-ID: <memo.20010506211706.50265B@brangdon.madasafish.com>
····@cs.rmit.edu.au (Dale Stanbrough) wrote (abridged):
> You can have values such as '#doSoemthing' (it's been a -long- time
> since i've done Smalltalk, so please forgive if i get the syntax
> wrong). You can convert this symbol into a method call to a routine
> called 'doSomething'

Actually that is a library call, called #perform:. Arguably it is no more 
part of the language than #ifTrue:. Eg:

    |aSymbol|
    aSymbol:= #message.
    anObject perform: aSymbol.

has the same effect as:

    anObject message.

The equivalent in C++ would be like:

    void (Object::*aPmf)();
    aPmf = &Object::message;
    (anObject->*aPmf)();

which has the same effect as:

    anObject->message();

I agree this stuff need not be taught on the first day. Still, it is a 
useful and powerful technique. I suspect a Smalltalk course could include 
it earlier than a C++ course. (The syntax alone could make C++ students 
run screaming, never mind the type-checking issues.)

The #message notation itself is part of the language; it produces a 
Symbol. A Symbol is what Java calls an "interned" String, meaning that 
two Symbols with the same value will have the same identity. This means 
that comparing Symbols for equality is fast, because we don't have to 
look at each of the characters in them like we do with Strings. This 
means they are quite commonly used in Smalltalk; often in situations 
where C++ would use an enum. They are not just used with #perform:.

Although this is fairly subtle stuff, I would hope a Smalltalk course 
would cover the difference between:

     string1 == string2.
     string1 = string2.

just as a C++ course would cover the difference between:

     string1 == string2;
     strcmp( string1, string2 );

because a programmer who doesn't grasp this does not yet grasp the object 
model.

Finally, in Smalltalk we can construct Symbols on the fly. Eg:

    |aPrefix aSuffix aSymbol|
    aPrefix := 'mess'.
    aSuffix := 'age'.
    aSymbol := (aPrefix, aSuffix) asSymbol.
    anObject perform: aSymbol.

I hope it is clear what that is doing. There is no C++ equivalent.

  Dave Harris, Nottingham, UK | "Weave a circle round him thrice,
      ········@cix.co.uk      |   And close your eyes with holy dread,
                              |  For he on honey dew hath fed
 http://www.bhresearch.co.uk/ |   And drunk the milk of Paradise."
From: Biep @ http://www.biep.org
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9d5u1p$goiql$1@ID-63952.news.dfncis.de>
"Larry Kilgallen" <·········@eisner.decus.org.nospam> wrote in message
·················@eisner.encompasserve.org...
> It seems to me that regardless of the language chosen, a restricted
> subset is _always_ appropriate.  For any reasonable language there
> are bound to be parts that while helpful in certain real-world
> programming situations are not illustrative of the _concepts_
> involved in programming.

Just curious: what parts of Scheme would you leave out as not necessary to
illustrate important concepts in programming (or software engineering)?

--
Biep
Reply via http://www.biep.org
From: Andrew Cooke
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AF67F9D.72B90142@andrewcooke.free-online.co.uk>
For an introductory course you might omit whatever the Scheme equivalent
of setq is.  And does Scheme have macros? - if so, they could go too.

Andrew

"Biep @ http://www.biep.org" wrote:
> 
> "Larry Kilgallen" <·········@eisner.decus.org.nospam> wrote in message
> ·················@eisner.encompasserve.org...
> > It seems to me that regardless of the language chosen, a restricted
> > subset is _always_ appropriate.  For any reasonable language there
> > are bound to be parts that while helpful in certain real-world
> > programming situations are not illustrative of the _concepts_
> > involved in programming.
> 
> Just curious: what parts of Scheme would you leave out as not necessary to
> illustrate important concepts in programming (or software engineering)?
> 
> --
> Biep
> Reply via http://www.biep.org
From: Biep @ http://www.biep.org/
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9db5kg$gk5c4$1@ID-63952.news.dfncis.de>
"Andrew Cooke" <······@andrewcooke.free-online.co.uk> wrote in message
······················@andrewcooke.free-online.co.uk...
>
> For an introductory course you might omit whatever the Scheme equivalent
> of setq is.  And does Scheme have macros? - if so, they could go too.
>
> Andrew

O.K.  In a trivial sense, if the course is introductory enough, you might
omit even lambda..

Delaying the introduction of 'set!' is often a good idea, but you have to
be careful that people don't get the impression that 'define' is a kind of
'set!' (which it unfortunately is :-( )

Syntactic abstraction is a very important concept, in my view.  For
introductory courses I sometimes introduce a macro 'translate!' that
simplifies the 'define-syntax' + 'syntax-rules' machinery, and use that to
show how e.g. 'let' is defined in terms of 'lambda'.

(define-syntax translate!
  (syntax-rules ()
    ((translate! (name . body) new)
     (define-syntax name
       (syntax-rules ()
         ((name . body) new) ) ) ) ) )

Then I state that the same locality principles that hold for procedures
also hold for syntactic transformations, and point to the existence of
let-syntax and letrec-syntax.

I normally start from the REP-loop in disussing syntactic abstraction,
first explaning read macros (such as quote, quasiquote) and print macros
(unfortunately not well supported in Scheme, but a REP loop and a print
procedure are easily written), and then come to 'define-syntax' as
eval-macros.

All this fits under the banner "never say the same thing twice", which
covers a whole lot of software engineering..

Only in a *very* introductory course I would leave out macros altogether.

Oh, and I guess some people might be willing to argue that Scheme is the
*only* programming language with real macros :-)

--
Biep
Reply via http://www.biep.org
From: Raffael Cavallaro
Subject: Re: Beginner's Language?
Date: 
Message-ID: <raffael-283222.01455010052001@news.ne.mediaone.net>
In article <··············@ID-63952.news.dfncis.de>, "Biep @ 
http://www.biep.org/" <·········@my-web-site.com> wrote:

>Oh, and I guess some people might be willing to argue that Scheme is the
>*only* programming language with real macros :-)

Yeah - it even has 4 different kinds depending on what implementation 
you're using - neat!  ;^)

In a more serious vein, Dylan has "real" macros too, but then Dylan is 
arguably Scheme on OO steroids.

Raf

-- 

Raffael Cavallaro, Ph.D.
·······@mediaone.net
From: Jochen Schmidt
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddl4v$hsgmv$2@ID-22205.news.dfncis.de>
Biep @ http://www.biep.org/ wrote:

> "Andrew Cooke" <······@andrewcooke.free-online.co.uk> wrote in message
> ······················@andrewcooke.free-online.co.uk...

> Oh, and I guess some people might be willing to argue that Scheme is the
> *only* programming language with real macros :-)

hmm... ever heard of "Common Lisp" ?

I like the Common-Lisp Macrosystem more than Scheme's restrictive 
"Hygienic" Macros.

Regards,
Jochen
From: Carl E Gundel
Subject: Re: Beginner's Language?
Date: 
Message-ID: <GCvALC.2x5@world.std.com>
raj (········@optushome.com.au) wrote:
: If your students are short sighted drones who want to learn the
: currently fashionable choices, C++ and Java are (yuck ) appropriate.

: But please, do not inflict Perl and BASIC upon innocent children.

C++ and Java are okay for innocent children, but Perl and BASIC are
not??!!??  Ha!  Give me (and them) a break!

-Carl
-- 
------------------------------------------------------------------
 Carl Gundel  ·····@libertybasic.com  Shoptalk Systems
 author of Liberty BASIC, twice a PC Magazine Awards Finalist!
 http://www.libertybasic.com
------------------------------------------------------------------
From: Dodger
Subject: Re: Beginner's Language?
Date: 
Message-ID: <coXI6.48952$B22.12384275@news1.rdc2.pa.home.com>
"raj" <········@optushome.com.au> wrote in message
·······································@4ax.com...
> On Fri, 4 May 2001 20:12:21 +0400, Faisal Halim
> <············@yahoo.com> wrote:

> A restricted subset of Ada would be excellent  since it can be used to
> teach not only programming but more importantly, software engineering
> concepts.
>
> However, other languages you may want to consider include Haskell ,
> OCaml , Smalltalk and even ( shudder ! C++ or Java )
>
> If your students are bright and motivated to learn theory and
> fundamentals, Lisp ( or perhaps its smaller and more pedagogically
> oriented dialect Scheme ) and Haskell are excellent choices.
>
> If your students are short sighted drones who want to learn the
> currently fashionable choices, C++ and Java are (yuck ) appropriate.
>
> But please, do not inflict Perl and BASIC upon innocent children.

This is an _amazingly_ uninformed opinion.

I take it this writer is not very good with Perl because he refuses to let
go of his more ancient prejudices. However, the assertation comes out
absurd. There is no reason to keep Perl away from children just because Raj
doesn't like it.
--
Dodger
www.dodger.org
www.necrosoft.net
www.gothic-classifieds.com
From: Jochen Schmidt
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9d1ilh$g397v$1@ID-22205.news.dfncis.de>
Dodger wrote:

> "raj" <········@optushome.com.au> wrote in message
> ·······································@4ax.com...
>> On Fri, 4 May 2001 20:12:21 +0400, Faisal Halim
>> <············@yahoo.com> wrote:
>> But please, do not inflict Perl and BASIC upon innocent children.
> 
> This is an _amazingly_ uninformed opinion.
> 
> I take it this writer is not very good with Perl because he refuses to let
> go of his more ancient prejudices. However, the assertation comes out
> absurd. There is no reason to keep Perl away from children just because
> Raj doesn't like it.

IMHO Perl has nothing and does nothing that would make it a good language 
for language studies.
But I wait to hear from you what concepts are best learnt by looking at 
perl (besides the "How to not design a language" fact)

Regards,
Jochen
From: glauber
Subject: Re: Beginner's Language?
Date: 
Message-ID: <892f97d1.0105181502.36856890@posting.google.com>
Jochen Schmidt <···@dataheaven.de> wrote in message news:<··············@ID-22205.news.dfncis.de>...
[...]
> IMHO Perl has nothing and does nothing that would make it a good language 
> for language studies.
> But I wait to hear from you what concepts are best learnt by looking at 
> perl (besides the "How to not design a language" fact)


Perl is a good language to learn the principle that "just because i
can do something, it doesn't mean i should do it!".

Also, Perl has a lot of stuff in it from Lisp. I consider Perl to be
Lisp minus the pretty syntax. :-)

g
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <60c9ft0mvlkk9lvno6a67qnqomq7i621al@4ax.com>
>I take it this writer is not very good with Perl because he refuses to let
>go of his more ancient prejudices. However, the assertation comes out
>absurd. There is no reason to keep Perl away from children just because Raj
>doesn't like it.

As Larry Wall says, Perl is a Swiss Army chainsaw ie : it can do
almost anything but it is inelegant  and just a trace clunky.

Sure it gets the job done but if I was teaching kids an all purpose
scripting language, I would rather teach them Ruby or Python.
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <75c9ftcgler355qdpremrdh2sbkr7ajf0v@4ax.com>
Education is different from vocational training.
Vocational training is for plumbers and those who have to
start-work-right-now.
Education is  about understanding the fundamentals and the theory that
underlies the subject / the system / the "all".
Education is meant for those capable of   understanding the
fundamentals and the theory that underlies the subject / the system /
the "all".

In this context, I stand by my previous statements:
Lisp, Scheme, subsetted Ada, Smalltalk , Ruby , Python (and if
approached judiciously, even Java and C++) can be used usefully as a
language of discourse.

Perl while admirable as a tool for sys admins and wannabe-hackers  [
do you want your child to just become a sys-admin ? :-) ]  is a
linguistic mishmash  that tries to be all things to all programmers
and ends up becoming ( again to quote Larry Wall ) a "Pathologically
Eclectic Rubbish Lister".

If you really want to teach children to use a multiparadigm language,
try Oz / Mozart. It is has functional, object oriented, logic and
constraint based, features and has concurrency built in. Confusing ? 
Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
process of uglification / accretion.

Accretion is not necessarily bad. Just look at Lisp with it brilliant
metaobject protocol, multiple dispatch and CLOS. But to contemplate
teaching Perl or  Basic to children.........
Phaugh ! 
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <u3d9ftcepba4afibg3melkppg0l1hd3sr1@4ax.com>
Education is different from vocational training.
Vocational training is for plumbers and those who have to
start-work-right-now.
Education is  about understanding the fundamentals and the theory that
underlies the subject / the system / the "all".
Education is meant for those capable of   understanding the
fundamentals and the theory that underlies the subject / the system /
the "all".

In this context, I stand by my previous statements:
Lisp, Scheme, subsetted Ada, Smalltalk , Ruby , Python (and if
approached judiciously, even Java and C++) can be used usefully as a
language of discourse.

Perl while admirable as a tool for sys admins and wannabe-hackers  [
do you want your child to just become a sys-admin ? :-) ]  is a
linguistic mishmash  that tries to be all things to all programmers
and ends up becoming ( again to quote Larry Wall ) a "Pathologically
Eclectic Rubbish Lister".

If you really want to teach children to use a multiparadigm language,
try Oz / Mozart. It is has functional, object oriented, logic and
constraint based, features and has concurrency built in. Confusing ? 
Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
process of uglification / accretion.

Accretion is not necessarily bad. Just look at Lisp with it brilliant
metaobject protocol, multiple dispatch and CLOS. But to contemplate
teaching Perl or  Basic to children.........
Phaugh ! 
From: Randal L. Schwartz
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m1g0eijx4n.fsf@halfdome.holdit.com>
>>>>> "raj" == raj  <········@optushome.com.au> writes:

raj> Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
raj> process of uglification / accretion.

The way you say that, you make it sound like Perl was undesigned.
Perl has a very specific and elegant design behind the scenes, and
Larry Wall would be very offended to hear you say otherwise.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<······@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
From: raj
Subject: Multiparadigm Languages : (was Beginners Language)
Date: 
Message-ID: <hpkbfto4ndlt29kabmj4e3hf5spn39p2o0@4ax.com>
Forwarded from  the python mailing list <···········@python.org>

Bob Calco <······@cortechs.com>
Wow, don't see too many references to Mozart/Oz -- but I agree: It's a
very powerful environment/language (respectively) that was DESIGNED
(versus "evolved") from the ground up to support multiple programming
paradigms, and support them well. It's really quite an incredible
achievement that isn't hard to appreciate once you get over the hump
of its significant learning curve, and some of its
open-source/low-development-budget quirks. It wasn't
built for the "feint of heart"...though its creators are, like Guido
vis a vis Python, quite certain that the world would be a better place
if it was taught as a first programming language. I don't disagree
with them, or Guido either, for that matter. ;)

The language itself (Oz) isn't exactly what I would call "elegant" or
syntactically easy to learn (not compared to Python, anyway) -- or in
any event the elegance of the language isn't something that jumps out
at you right away until you know what you're looking at -- but it
does, as I said, offer tremendous flexibility and power in the right
hands. It lets you fit the solution to the problem domain, instead of
the other way around -- the way most other languages force you to
approach application design, i.e., the way of Procrustes ("we're using
an OOP language, so we'll describe the problem in OOP terms" vs. "this
really is a problem that lends itself to OOP analysis, so we'll use
the OOP aspects of the language for this piece of the application").

(The classic "I have a hammer so everything is a nail" syndrome...with
Mozart, you have a more-or-less complete toolbox and actually have to
pick and choose the right tool for the job. That really is it's
primary value proposition, so far as I'm concerned, especially when
the problem domain is suited to declarative programming (a la Prolog),
which neither Java nor Python nor C/C++ really support. Mozart excels
as a cross platform substitute for Prolog-style languages, ideally
suited for things like intelligent mobile agents and distributed
component-based expert-systems. )

But the fact that it truly does support OOP, and procedural, and
declarative, and GUI (via Tk), and about a half a dozen other
paradigms, and it is completely free and extensible (like Python) in
C, makes it a great one-stop shop kind of language. The difficulty of
mastering the language has less to do with syntax/symantics than it
does getting used to the many different styles of programming it
supports... knowing when to use what paradigm lands you smack dab in
the heart of computer science at the highest altitudes. Not every
programmer likes to climb that dark and dangerous
cliff... most get stuck in some one True Way of doing things, where
everything is "obvious" and there's a large community of folks around
to reinforce that illusion (Java's a perfect example). This is fine
for a technician, but a *real* software engineer in the highest,
grandest, most idealized sense of the term really ought to have
broader horizons, IMHO.

Programming in Mozart is a lot like mountain climbing -- you gotta be
just a little nuts and willing to endure the solitude of obscure and
distant landscapes and breath thinner air to do it, but ah, the sights
you see!

(BTW, I still admire and use Python, don't get me wrong. I'm just very
impressed by Mozart and figured I'd take the occasion to extoll its
many virtues since raj brought it up... )

;)

Check it out at:

http://www.mozart-oz.org

Download and install it,

http://www.mozart-oz.org/download/

then check out some of the interesting online demos:

http://www.mozart-oz.org/documentation/demo/

Sincerely,

Bob Calco

# -----Original Message-----
# From: ·················@python.org
# [························@python.org]On Behalf Of raj
# Sent: Saturday, May 05, 2001 10:09 PM
# To: ···········@python.org
# Subject: Re: Beginner's Language?
#
#
# Education is different from vocational training.
# Vocational training is for plumbers and those who have to
# start-work-right-now.
# Education is  about understanding the fundamentals and the theory
that
# underlies the subject / the system / the "all".
# Education is meant for those capable of   understanding the
# fundamentals and the theory that underlies the subject / the system
/
# the "all".
#
# In this context, I stand by my previous statements:
# Lisp, Scheme, subsetted Ada, Smalltalk , Ruby , Python (and if
# approached judiciously, even Java and C++) can be used usefully as a
# language of discourse.
#
# Perl while admirable as a tool for sys admins and wannabe-hackers  [
# do you want your child to just become a sys-admin ? :-) ]  is a
# linguistic mishmash  that tries to be all things to all programmers
# and ends up becoming ( again to quote Larry Wall ) a "Pathologically
# Eclectic Rubbish Lister".
#
# If you really want to teach children to use a multiparadigm
language,
# try Oz / Mozart. It is has functional, object oriented, logic and
# constraint based, features and has concurrency built in. Confusing ?
# Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
# process of uglification / accretion.
#
# Accretion is not necessarily bad. Just look at Lisp with it
brilliant
# metaobject protocol, multiple dispatch and CLOS. But to contemplate
# teaching Perl or  Basic to children.........
# Phaugh !
#
# --
# http://mail.python.org/mailman/listinfo/python-list
#
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <13lbftc0rdl0oaam4lg56k88qhi5hsjki7@4ax.com>
>raj> Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
>raj> process of uglification / accretion.

>The way you say that, you make it sound like Perl was undesigned.

No.
However, elegance and pedagogic virtues were not what Larry had in
mind when he designed ( or rather, grew  ) it. Functionality and
"Magic" ( in the Wallesque sense ) were what mattered.

>Perl has a very specific and elegant design behind the scenes, and
>Larry Wall would be very offended to hear you say otherwise.

To quote Larry's foreword to your own excellent book:

( after talking at amusing length about how he melted the "beads" of
AWK, sed, sh , BASIC , Lisp and C together to form Perl)

"the magical bead eventually grew into this rather odd-looking Amulet
that you see before you today. See it glitter , almost like a pearl...

The Amulet isnt exactly beautiful though; in fact up close it still
looks like a bunch of beads melted together. Well, all right, I admit
it. It's downright ugly. But never mind that. It's the Magic that
counts. "
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <g6nbft4q1dnop5u1apm9nmac8uqhd5b1vb@4ax.com>
>raj> Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
>raj> process of uglification / accretion.

>The way you say that, you make it sound like Perl was undesigned.

No.
However, elegance and pedagogic virtues were not what Larry had in
mind when he designed ( or rather, grew  ) it. Functionality and
"Magic" ( in the Wallesque sense ) were what mattered.

>Perl has a very specific and elegant design behind the scenes, and
>Larry Wall would be very offended to hear you say otherwise.

To quote Larry's foreword to your own excellent book:

( after talking at amusing length about how he melted the "beads" of
AWK, sed, sh , BASIC , Lisp and C together to form Perl)

"the magical bead eventually grew into this rather odd-looking Amulet
that you see before you today. See it glitter , almost like a pearl...

The Amulet isnt exactly beautiful though; in fact up close it still
looks like a bunch of beads melted together. Well, all right, I admit
it. It's downright ugly. But never mind that. It's the Magic that
counts. "
From: raj
Subject: Multiparadigm Languages : (was Beginners Language)
Date: 
Message-ID: <07nbft4hki8dcji80hlfe9rgbdvv6rtvib@4ax.com>
Forwarded from  the python mailing list <···········@python.org>

Bob Calco <······@cortechs.com>
Wow, don't see too many references to Mozart/Oz -- but I agree: It's a
very powerful environment/language (respectively) that was DESIGNED
(versus "evolved") from the ground up to support multiple programming
paradigms, and support them well. It's really quite an incredible
achievement that isn't hard to appreciate once you get over the hump
of its significant learning curve, and some of its
open-source/low-development-budget quirks. It wasn't
built for the "feint of heart"...though its creators are, like Guido
vis a vis Python, quite certain that the world would be a better place
if it was taught as a first programming language. I don't disagree
with them, or Guido either, for that matter. ;)

The language itself (Oz) isn't exactly what I would call "elegant" or
syntactically easy to learn (not compared to Python, anyway) -- or in
any event the elegance of the language isn't something that jumps out
at you right away until you know what you're looking at -- but it
does, as I said, offer tremendous flexibility and power in the right
hands. It lets you fit the solution to the problem domain, instead of
the other way around -- the way most other languages force you to
approach application design, i.e., the way of Procrustes ("we're using
an OOP language, so we'll describe the problem in OOP terms" vs. "this
really is a problem that lends itself to OOP analysis, so we'll use
the OOP aspects of the language for this piece of the application").

(The classic "I have a hammer so everything is a nail" syndrome...with
Mozart, you have a more-or-less complete toolbox and actually have to
pick and choose the right tool for the job. That really is it's
primary value proposition, so far as I'm concerned, especially when
the problem domain is suited to declarative programming (a la Prolog),
which neither Java nor Python nor C/C++ really support. Mozart excels
as a cross platform substitute for Prolog-style languages, ideally
suited for things like intelligent mobile agents and distributed
component-based expert-systems. )

But the fact that it truly does support OOP, and procedural, and
declarative, and GUI (via Tk), and about a half a dozen other
paradigms, and it is completely free and extensible (like Python) in
C, makes it a great one-stop shop kind of language. The difficulty of
mastering the language has less to do with syntax/symantics than it
does getting used to the many different styles of programming it
supports... knowing when to use what paradigm lands you smack dab in
the heart of computer science at the highest altitudes. Not every
programmer likes to climb that dark and dangerous
cliff... most get stuck in some one True Way of doing things, where
everything is "obvious" and there's a large community of folks around
to reinforce that illusion (Java's a perfect example). This is fine
for a technician, but a *real* software engineer in the highest,
grandest, most idealized sense of the term really ought to have
broader horizons, IMHO.

Programming in Mozart is a lot like mountain climbing -- you gotta be
just a little nuts and willing to endure the solitude of obscure and
distant landscapes and breath thinner air to do it, but ah, the sights
you see!

(BTW, I still admire and use Python, don't get me wrong. I'm just very
impressed by Mozart and figured I'd take the occasion to extoll its
many virtues since raj brought it up... )

;)

Check it out at:

http://www.mozart-oz.org

Download and install it,

http://www.mozart-oz.org/download/

then check out some of the interesting online demos:

http://www.mozart-oz.org/documentation/demo/

Sincerely,

Bob Calco

# -----Original Message-----
# From: ·················@python.org
# [························@python.org]On Behalf Of raj
# Sent: Saturday, May 05, 2001 10:09 PM
# To: ···········@python.org
# Subject: Re: Beginner's Language?
#
#
# Education is different from vocational training.
# Vocational training is for plumbers and those who have to
# start-work-right-now.
# Education is  about understanding the fundamentals and the theory
that
# underlies the subject / the system / the "all".
# Education is meant for those capable of   understanding the
# fundamentals and the theory that underlies the subject / the system
/
# the "all".
#
# In this context, I stand by my previous statements:
# Lisp, Scheme, subsetted Ada, Smalltalk , Ruby , Python (and if
# approached judiciously, even Java and C++) can be used usefully as a
# language of discourse.
#
# Perl while admirable as a tool for sys admins and wannabe-hackers  [
# do you want your child to just become a sys-admin ? :-) ]  is a
# linguistic mishmash  that tries to be all things to all programmers
# and ends up becoming ( again to quote Larry Wall ) a "Pathologically
# Eclectic Rubbish Lister".
#
# If you really want to teach children to use a multiparadigm
language,
# try Oz / Mozart. It is has functional, object oriented, logic and
# constraint based, features and has concurrency built in. Confusing ?
# Yes ! But unlike Perl, Mozart was DESIGNED  and did not grow by a
# process of uglification / accretion.
#
# Accretion is not necessarily bad. Just look at Lisp with it
brilliant
# metaobject protocol, multiple dispatch and CLOS. But to contemplate
# teaching Perl or  Basic to children.........
# Phaugh !
#
# --
# http://mail.python.org/mailman/listinfo/python-list
#
From: Marin David Condic
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9d6b6e$1bt$1@nh.pace.co.uk>
The languages you mention are all useful for a student to learn at some
juncture in their education. However as a *first* language, I think some of
them would be poorly suited. Definitely C(++) and Lisp stick out as things I
would *NOT* try to teach as a first programming language. Probably you will
hear objections from others about some of the other languages. (I'm not
intimately familiar with all the ones you mention.) For beginners who know
nothing of computers, you need something that presents things in a simple,
readable way with uncomplicated semantics. Beginning students need to be
able to write simple "Hello World" programs just to get the concepts down
concerning variables, math operations, flow of control, basic I/O,
subprogram usage, etc. If you toss a complex language at them that makes
these basics at all complicated, you'll obfuscate what you want to get at &
discourage them.

My advice for a first programming language would be Ada (for a lot of
reasons besides being my favorite language :-) followed by Pascal & maybe
Modula-2. Save the other stuff until the students have progressed a little.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    ············@pacemicro.com
Web:      http://www.mcondic.com/


"raj" <········@optushome.com.au> wrote in message
·······································@4ax.com...
> On Fri, 4 May 2001 20:12:21 +0400, Faisal Halim
> <············@yahoo.com> wrote:
>
>
> A restricted subset of Ada would be excellent  since it can be used to
> teach not only programming but more importantly, software engineering
> concepts.
>
> However, other languages you may want to consider include Haskell ,
> OCaml , Smalltalk and even ( shudder ! C++ or Java )
>
> If your students are bright and motivated to learn theory and
> fundamentals, Lisp ( or perhaps its smaller and more pedagogically
> oriented dialect Scheme ) and Haskell are excellent choices.
>
> If your students are short sighted drones who want to learn the
> currently fashionable choices, C++ and Java are (yuck ) appropriate.
>
> But please, do not inflict Perl and BASIC upon innocent children.
>
From: Friedrich Dominicus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87snihxiwc.fsf@frown.here>
"Marin David Condic" <························@pacemicro.com> writes:

> The languages you mention are all useful for a student to learn at some
> juncture in their education. However as a *first* language, I think some of
> them would be poorly suited. Definitely C(++) and Lisp stick out as things I
> would *NOT* try to teach as a first programming language.

Why no Lisp?

Friedrich
From: Espen Vestre
Subject: Re: Beginner's Language?
Date: 
Message-ID: <w6y9s7ng5f.fsf@wallace.ws.nextra.no>
Friedrich Dominicus <·····@q-software-solutions.com> writes:

> > The languages you mention are all useful for a student to learn at some
> > juncture in their education. However as a *first* language, I think some of
> > them would be poorly suited. Definitely C(++) and Lisp stick out as things I
> > would *NOT* try to teach as a first programming language.
> 
> Why no Lisp?

I thougth the same. I've been teaching common lisp as the first language 
for computer-inexperienced students (Macintosh Common Lisp, to be precise,
which is especially well suited for teaching) and thought it was just
great (if any of my former students read this and disagree, then feel
free to comment ;-))!
-- 
  (espen)
From: Marin David Condic
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dbi83$sji$1@nh.pace.co.uk>
First, let me point out that I have no objection to teaching anyone Lisp at
some later point in their CS education. I have nothing against Lisp, in this
sense. The reason I wouldn't teach it as a FIRST programming language should
be fairly obvious. It is complex and unlike the bulk of other programming
languages. Whatever one decides to teach as a FIRST language ought to be
simple, easily understood, easy to work with, representative of most
commonly used languages and reflective of well understood, sound programming
practices. Lisp tends to not fit this description well at all.

If you are familiar with Lisp, try this: Write a small program to read in a
couple of numbers from a keyboard, do some math with them and print the
result to the screen. Now look at it. Could a neophite with literally *zero*
experience in programming computers read it and stand a chance of
understanding what it does or how it does it? Could a neophite duplicate it
easily or modify it to do something different? Is it intuitively obvious to
even the most casual observer how to make a similar program?

That's why I wouldn't recommend Lisp as a first programming language in an
intro to CS course.

Gee. I never thought I'd have to defend THAT statement! :-)

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    ············@pacemicro.com
Web:      http://www.mcondic.com/


"Friedrich Dominicus" <·····@q-software-solutions.com> wrote in message
···················@frown.here...
>
> Why no Lisp?
>
From: Ola Rinta-Koski
Subject: Re: Beginner's Language?
Date: 
Message-ID: <x58zk6zjv8.fsf@arenal.cyberell.com>
"Marin David Condic" <························@pacemicro.com> writes:
> If you are familiar with Lisp, try this: Write a small program to read in a
> couple of numbers from a keyboard, do some math with them and print the
> result to the screen.

(let ((foo 0))
  (dotimes (i 5)
    (incf foo (read))) 
  foo)

> Now look at it. Could a neophite with literally *zero*
> experience in programming computers read it and stand a chance of
> understanding what it does or how it does it?

  Not being a neophyte, I'll just have to guess: yes and yes.
-- 
        Ola Rinta-Koski                                 ···@cyberell.com
        Cyberell Oy                                     +358 41 467 2502
        Rauhankatu 8 C, FIN-00170 Helsinki, FINLAND	www.cyberell.com
From: David Gillon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AFACCA0.303A79AF@baesystems.com>
Ola Rinta-Koski wrote:
> 
> (let ((foo 0))
>   (dotimes (i 5)
>     (incf foo (read)))
>   foo)
> 
> > Now look at it. Could a neophite with literally *zero*
> > experience in programming computers read it and stand a chance of
> > understanding what it does or how it does it?
> 
>   Not being a neophyte, I'll just have to guess: yes and yes.

Well, I'll admit that despite a CS degree (including a course
specifically aimed at comparing different languages) and fifteen years
in the industry I can't claim to know what this code does, so any
complete neophyte is going to be floundering. I can guess we have a loop
doing something to Foo, but beyond that ...? Sum five (could also be 6)
inputs seems most likely, but that's based on my knowledge of parallel
constructs in other languages and therefore more than a true neophyte
could get.

Despite all the criticisms that can legitimately be levelled at BASIC I
originally taught myself to code from BASIC examples in computer
magazines, I don't believe that would have been true if they had looked
like the example above instead of paralleling natural language. And what
BASIC does better than this Pascal and Ada do better still.

There's also a strong cultural element to be considered beyond the
strict grammar of the language. A language that stays close to natural
language (at least for the anglophone part of the population), which
encourages meaningful variable names and cleanly structured, readable,
well commented code is going to be far easier for someone with limited
knowledge to understand (or maintain). A CS/SE course that teaches good
coding practise rather than just coding is going to produce people
who'll be both more useful to their employers and gain the course a good
reputation

I much prefer the following to the example above and I believe that even
with all comments stripped out it would be inherently easier to
understand for a struggling student:

procedure Sum_Five_Values is

  -- Description : 
  --   Example showing clear coding practice, sums five integer inputs 
  --   and displays result

  -- Input Parameters  : 
  --   None (uses keyboard)
  -- Output Parameters : 
  --   None (uses screen)

  -- Modification History :
  --   10-05-2001, Initial version, DWG
  --   <DD-MM-YYYY>,<Description of change>,<Author>

  Total_Count   : Integer := 0;
  Entered_Value : Integer;

begin

  -- Sum five inputs from the keyboard
  for Loop_Counter := 1 .. 5 do
  begin
    Put_Line ("Enter an integer value and press return");
    Get (Entered_Value);
    Total_Count := Total_Count + Entered_Value;
  end;

  -- report the final result to the screen
  Put("Total Value = ");
  Put_Line(Total_Count);

end Sum_Five_Values;

-- 

David Gillon
From: Warren W. Gay VE3WWG
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AFAF0EA.7FA8B6B4@home.com>
David Gillon wrote:
> Ola Rinta-Koski wrote:
> >
> > (let ((foo 0))
> >   (dotimes (i 5)
> >     (incf foo (read)))
> >   foo)
> >
> > > Now look at it. Could a neophite with literally *zero*
> > > experience in programming computers read it and stand a chance of
> > > understanding what it does or how it does it?
> >
> >   Not being a neophyte, I'll just have to guess: yes and yes.
> 
> Well, I'll admit that despite a CS degree (including a course
> specifically aimed at comparing different languages) and fifteen years
> in the industry I can't claim to know what this code does, so any
> complete neophyte is going to be floundering. I can guess we have a loop
> doing something to Foo, but beyond that ...? Sum five (could also be 6)
> inputs seems most likely, but that's based on my knowledge of parallel
> constructs in other languages and therefore more than a true neophyte
> could get.
> 
> Despite all the criticisms that can legitimately be levelled at BASIC I
> originally taught myself to code from BASIC examples in computer
> magazines, I don't believe that would have been true if they had looked
> like the example above instead of paralleling natural language. And what
> BASIC does better than this Pascal and Ada do better still.

A number of posts ago, someone mentioned "general purpose". One of the
things that most people seem to forget in this type of discussion, is
whether or not a "general purpose" language is being considered (I
believe this is assumed by most here).

If you truly want something simpler for people to learn from, 
*** take away the "general purpose" requirement. ***

As mentioned in the current post (above), BASIC helped many newbies
get started. Why?  BASIC was simple to understand, & it put you in
a restricted "shell" of sorts, with very simple commands to use. Ie:

LOAD "PROGRAM"
SAVE "PROGRAM"
RUN
LIST
etc.

The _environment_ and the simple language combined, made it easy. It
was also easy, because it was not totally "general purpose" (it does
not interface well with many things that one would use under UNIX today,
for example).

If all you had to do was control a few things, you can really simplify
the language. A hypothetical example might be (for a controller):

   Open door.
   Close window.

A two step, but specialized language program.  However, if you had to 
code that in assembler language, a completely general purpose language,
you would have perhaps 200 to 1000+ lines of code to read. The difference
was simply between a specialized language and a general one.

			- My Point -  ;-)

So my point is that when you consider a "beginner's language", consider
his needs first. Does he need a totally general purpose language, or
can he get by with a reasonable subset of "general"?  If he can be
happy with the bare minimum, then languages like BASIC are a good
place to start.

In addition to the language, you might also consider the "environment"
also. If the user is foreign to UNIX shells for example, than a BASIC
subsystem might be more productive for him.

I'm not promoting BASIC for general use here-- only discussing the
needs of beginners.

As a side note, I find it interesting that a
number of high schools teach kids here BASIC using QBASIC that was
distributed free on Windoze-95 CD's (it might also be on Win98).
You have to look for it on the install CD-- it won't be installed
for you.  If my daughter can use it (as impatient as she is), then
this says something to me about the success of this approach.

-- 
Warren W. Gay VE3WWG
http://members.home.net/ve3wwg
From: Marie-No�lle Baechler
Subject: Re: Beginner's Language?
Date: 
Message-ID: <Xns909DEC48Febfg01bluewinch@195.186.4.29>
>There's also a strong cultural element to be considered beyond the
>strict grammar of the language. A language that stays close to natural
>language (at least for the anglophone part of the population), which
>encourages meaningful variable names and cleanly structured, readable,
>well commented code is going to be far easier for someone with limited
>knowledge to understand (or maintain). A CS/SE course that teaches good
>coding practise rather than just coding is going to produce people
>who'll be both more useful to their employers and gain the course a good
>reputation

For elementary algorithms, as the one you give, this may be enough. 
But most of the algorithms we use are much more complex and 
understanding them may require a strong mathematical background. I
strongly doubt that mimicking "natural" language will make easier to 
understand the query optimizer of a relational database or a truth
maintainance system.

Marie-Noelle Baechler
From: Friedrich Dominicus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87oft0pi6x.fsf@frown.here>
David Gillon <············@baesystems.com> writes:

> I much prefer the following to the example above and I believe that even
> with all comments stripped out it would be inherently easier to
> understand for a struggling student:
> 
> procedure Sum_Five_Values is
> 
>   -- Description : 
>   --   Example showing clear coding practice, sums five integer inputs 
>   --   and displays result
> 
>   -- Input Parameters  : 
>   --   None (uses keyboard)
>   -- Output Parameters : 
>   --   None (uses screen)
> 
>   -- Modification History :
>   --   10-05-2001, Initial version, DWG
>   --   <DD-MM-YYYY>,<Description of change>,<Author>
> 
>   Total_Count   : Integer := 0;
>   Entered_Value : Integer;
> 
> begin
> 
>   -- Sum five inputs from the keyboard
>   for Loop_Counter := 1 .. 5 do
>   begin
>     Put_Line ("Enter an integer value and press return");
>     Get (Entered_Value);
>     Total_Count := Total_Count + Entered_Value;
>   end;
> 
>   -- report the final result to the screen
>   Put("Total Value = ");
>   Put_Line(Total_Count);
> 
> end Sum_Five_Values;
(defun sum-n-numbers (n)
  "Read n numbers from the standard input and add them all"
  (let ((element 0)
        (total-sum 0))
    (loop for i from 1 to n
          do
          (format t "Give me a number please : ")
          (setf element (read))
          (setf total-sum (+ total-sum element))
          
          finally
          (format t "Total Sum = ~A~%" total-sum))))


Now I don't think I ever would write it that way, but hey it's as
verbose as you want it to be ;-)

Now alternatively one could write:
(defun sum-n-numbers (n)
  (loop for i from 1 to n
        for prompt = (format t "Give me a number please ")
        for element = (read)
        sum element into total-sum

        finally (format t "Total Sum = ~A~%" total-sum)))


     
or
(defun sum-n-numbers (n)
  (let ((total-sum 0))
    (dotimes (i n)
      (format t "Give me a number please: ")
      (let ((element (read)))
        (incf total-sum element)))
    (format t "Total Sum = ~A~%" total-sum)
     (values)))

or
....

I doubt that the Basic solution is easier on the eyes for a beginner
than one of the Common Lisp solutions.

Anyway programming I would conclude that learning programming is
work it can be even very hard. As usual if you start with something
completly new you're lost in the details. You do not know what really
is important all looks more or less like black magic. So what a
beginner needs is either a very good book or a good teacher and he/she
must really want to learn programming.

What we never should forget is that having fun while learning is a
maybe not the worst thing. If you can get nice results fast, it's very
encouraging.

One can compare programming with a lot of other things. It's like a
game, a puzzle or like building a model.


Every game has it's rules a puzzle can be build just in one way and
you have to follow a order to get a model build. All this holds for
programming the rules are what the language asks you for, getting the
pieces together will gave the whole picture. If you miss one piece
well, your programm like you puzzle will be incomplete. The model is
the idea you have while working on you program.

I really can't tell what a beginer is looking for, those times are
still gone for me and for you. That means if we show "what we think"
is understandable or "readable" for a beginner, it's nearly completly
irrelevant to them. They have their own idea, there will some which
like C, Assembler, Pascal, Modula-2, C++, Java, Lisp, Haskell or
whatever and find some other things totally stupid.

So I suggest not to put one of the languages down, but assist anyone
who wants to learn programming in whatever you like. Let him/her make
the choice and fine...

Regards
Friedrich
From: Alejandro R. Mosteo
Subject: Re: Beginner's Language?
Date: 
Message-ID: <MPG.156e423b92759aa29896b4@news.cis.dfn.de>
Mmm... I've used many languages and Lisp was taught to me after two or 
three years of programming experience.

I can't understand how anyone could defend Lisp as a first language. You 
can get crazy with the parentheses, the reference/no-reference things 
(setf, set...) Recursivity, lists in all places... Car and cdr... mapcar 
and friends... XD

I admit: after some time, I get comfortable with Lisp. Even could say it 
is funny. But I know people that never was capable of fully understand 
what was happening in some of his own programs :-)

Definitely, Lisp for a newbie on programming is... Oh, I have no words!

Of course, this is a personal interpretation ;-)

------------------------------
Alejandro R. Mosteo
mailto: ······@cepsz.unizar.es
------------------------------
From: Larry Elmore
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B11AC75.9A0E896D@home.com>
"Alejandro R. Mosteo" wrote:
> 
> Mmm... I've used many languages and Lisp was taught to me after two or
> three years of programming experience.
> 
> I can't understand how anyone could defend Lisp as a first language. You
> can get crazy with the parentheses, the reference/no-reference things
> (setf, set...) Recursivity, lists in all places... Car and cdr... mapcar
> and friends... XD

I don't see what's so bad about the parentheses, not if you're using any
kind of a decent editor that understands such things. With a lot of code
I don't think there's a great deal of difference between the number of
parentheses in Lisp and the number of parentheses plus square brackets,
curly braces, semicolons, etc. At least with the Lisp code, there's _no_
amibiguity about operator precedence!

As far as pointers and lists go, I suspect that if you'd learned Lisp
first, you'd have had no problem at all with them, and then would've
been highly annoyed by the comparatively primitive aspects of so many
other languages when dealing with higher-level constructs.

> I admit: after some time, I get comfortable with Lisp. Even could say it
> is funny. But I know people that never was capable of fully understand
> what was happening in some of his own programs :-)

I've known programmers who have the same problem with C/C++, and worse,
have had to maintain code written by them! They'd have problems in any
language they used, I think -- if they can't properly use lists in Lisp,
heaven help them when they need to handle lists in C/C++!
 
> Definitely, Lisp for a newbie on programming is... Oh, I have no words!

It certainly beats the hell out of C/C++, Fortran, Cobol or Basic! Of
course, you'd teach programming in Lisp with a subset of the language.
It'd be even more likely to confuse them if you hit them with the full
complexity of Ada right off the bat (and with all of C++, you'd likely
scare off 99% of them).

Larry
From: Stefan Skoglund
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B1AA98F.9D03E6DA@ebox.tninet.se>
Larry Elmore wrote:
> It certainly beats the hell out of C/C++, Fortran, Cobol or Basic! Of
> course, you'd teach programming in Lisp with a subset of the language.
> It'd be even more likely to confuse them if you hit them with the full
> complexity of Ada right off the bat (and with all of C++, you'd likely
> scare off 99% of them).

Avoid side-effects and LISP gets much simpler.
From: Biep @ http://www.biep.org/
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dblim$gvr4k$1@ID-63952.news.dfncis.de>
"Friedrich Dominicus" <·····@q-software-solutions.com> wrote in message
···················@frown.here...
> Why no Lisp?

"Marin David Condic" <························@pacemicro.com> wrote in
message ·················@nh.pace.co.uk...
> The reason I wouldn't teach it as a FIRST programming language should be
fairly obvious.
> It is complex and unlike the bulk of other programming languages.

Yet, the PLT group (http://www.teach-scheme.org) seems to be fairly
successful using Scheme to introduce programming at highschools using the
book "How to Design Programs" (http://www.htdp.org).

Unlike - yes, but complex?
--
Biep
Reply via http://www.biep.org
From: Friedrich Dominicus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87heyu7cqd.fsf@frown.here>
"Marin David Condic" <························@pacemicro.com> writes:
> 
> If you are familiar with Lisp, try this: Write a small program to read in a
> couple of numbers from a keyboard, do some math with them and print the
> result to the screen.
Gosh, how much simpler as in Lisp can it be? No declarations, no
puzzling about counting probably etc etc.





> Now look at it. Could a neophite with literally *zero*
> experience in programming computers read it and stand a chance of
> understanding what it does or how it does it?

yes, yes 





> Could a neophite duplicate it
> easily or modify it to do something different?
yes

>Is it intuitively obvious to
> even the most casual observer how to make a similar program?
yes

A beginner is not biased in any way and so it doe not matter what
he/she started from. If he starts with Lisp; C, Java looks messy. If
you start with C or Pascal or whatever imperative oo language is
around Lisp will look messy. 

Regards
Friedrich
From: Andreas Krennmair
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dc20p$hh15e$1@ID-37382.news.dfncis.de>
Friedrich Dominicus <·····@q-software-solutions.com> wrote:
>  "Marin David Condic" <························@pacemicro.com> writes:
> > 
> > If you are familiar with Lisp, try this: Write a small program to read in a
> > couple of numbers from a keyboard, do some math with them and print the
> > result to the screen.
>  Gosh, how much simpler as in Lisp can it be? No declarations, no
>  puzzling about counting probably etc etc.
The problem is that Lisp is in no way similar to a natural language. And 
natural language can be understood easier than some functional, theoretical
stuff with a unique concept like Lisp. Don't get me wrong, Lisp is a great
language, and I personally find it quite exciting as four year Pascal and
two year C/C++ programmer, but it's hardly usable for teaching, because it
is so unique (well, you _could_ to functional programming in C, but it would
be considered bad style).

I currently go to an Austrian school where mostly programming/CS/software
engineering-related things are taught (it's for 5 years, and you start
at an age of 14), and we started programming in Pascal. I was bored in
the beginning, because I already knew Pascal, but then the teacher explained
me that they chose to teach Pascal because it is so easy to read and to
understand and it still has so many things common with other languages.
Of course, in the second year, you do some Lisp and Prolog, which confuses
quite a lot of people, but after a week or so, they usually get it (at least
I did with Lisp :).

> > Now look at it. Could a neophite with literally *zero*
> > experience in programming computers read it and stand a chance of
> > understanding what it does or how it does it?
>  
>  yes, yes 
for my comment, see above. Lisp has hardly anything in common with natural
languages. Or could you express "My girlfriend's name is Suzy and her age
is 17" as readable as this in Lisp:
$girlfriend{'name'} = "Suzy";
$girlfriend{'age'} = 17;

Of course, this is not the best example, since Perl has a syntax that is
not the optimum for beginners.

> > Could a neophite duplicate it
> > easily or modify it to do something different?
>  yes
No. Only after understanding the fundamental concepts of Lisp.

> >Is it intuitively obvious to
> > even the most casual observer how to make a similar program?
>  yes
No. See answer before. :)

>  A beginner is not biased in any way and so it doe not matter what
>  he/she started from. If he starts with Lisp; C, Java looks messy. If
It _does_ matter. Beginners can easily get frustrated because of the
sometimes confusing syntax. BTW, I wouldn't recommend starting with Java
or C/C++, either. I'd recommend and teach (if I were a teacher :) some
Wirth language, because they're designed especially for teaching basics
of programming.

Best regards,
Andreas Krennmair
-- 
void strncpy(char *p, char *q, int n){while(n--){*p++=*q++;}} 
From: Sashank Varma
Subject: Re: Beginner's Language?
Date: 
Message-ID: <sashank.varma-0905011801100001@129.59.212.53>
In article <··············@ID-37382.news.dfncis.de>, ···········@aon.at wrote:

[snip]
>The problem is that Lisp is in no way similar to a natural language. And 
>natural language can be understood easier than some functional, theoretical
>stuff with a unique concept like Lisp.
[snip]
>Beginners can easily get frustrated because of the
>sometimes confusing syntax. BTW, I wouldn't recommend starting with Java
>or C/C++, either. I'd recommend and teach (if I were a teacher :) some
>Wirth language, because they're designed especially for teaching basics
>of programming.
[snip]

can you provide some evidence that:

(1) any standard general-purpose programming languages resemble natural
    language at all, that there is some metric of natural language-ness
    by which they can be ordered, and that wirth-style languages score
    higer on this metric than lisp?

(2) the degree to which a programming language resembles natural
    language predicts the ease with which it will be learned?

(if you thinking i'm picking nits, note that i've granted you the
implicit assumption that there is a singular quality shared by all
natural languages, a chomsky-esque universal grammar perhaps, that i
could have also questioned.)

there are many formal notations, and while one pressure on the form
of notations may be resemblance to natural language, there are others
of greater importance (e.g., minimizing the difficulty of performing
certain operations).  for example, it's not the case that speakers
of SVO natural languages are any more or less likely to write
arithmetic expressions using infix than speakers of natural languages
who place verbs at the end of clauses (SOV).

sashank
From: David Starner
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dclnt$9ic1@news.cis.okstate.edu>
On Wed, 09 May 2001 18:01:10 -0500, Sashank Varma <·············@vanderbilt.edu> wrote:
> can you provide some evidence that:
> 
> (1) any standard general-purpose programming languages resemble natural
>     language at all, that there is some metric of natural language-ness
>     by which they can be ordered, and that wirth-style languages score
>     higer on this metric than lisp?
>
> (2) the degree to which a programming language resembles natural
>     language predicts the ease with which it will be learned?

Tell me what
	!bbz#,···@bz,
does.

Then tell me what
	
	OPEN FILE ARGUMENT 2 AS 2
	BEGIN LOOP
		LOAD FILE ARGUMENT 1 INTO BUFFER
		COPY BUFFER TO 2
	FINISH LOOP
does. 

If I came upon the first, I would give up. The second, anyone can
probably get some idea of basically what it's doing. For a new 
student, knowing that they aren't totally lost can be a huge
confidence builder.

As for lisp itself, just from the name, what does defun or cadar
do? What do FUNCTION, PROCEDURE and BEGIN do? I've seen 2 + 2 since
the first days of school. Why (+ 2 2)? Learning a new vocabulary,
a new equation syntax is not what you want to be teaching when you
have so much else to teach.

> (if you thinking i'm picking nits, note that i've granted you the
> implicit assumption that there is a singular quality shared by all
> natural languages, a chomsky-esque universal grammar perhaps, that i
> could have also questioned.)

That's a theoritical assumption. How about "The vast majority of the
people who are going to be learning computer programming know an 
Indo-European language, Russian, Chinese or Japanese."

> there are many formal notations, and while one pressure on the form
> of notations may be resemblance to natural language, there are others
> of greater importance (e.g., minimizing the difficulty of performing
> certain operations).  

No, that's not of greater importance. It is, in fact, irrelevant for
any reasonable language. The goal is teaching people to program,
not helping experianced programmers hack up scripts or researchers
write up quicker chess programs. If something is difficult in your
chosen language, you put that off until a latter class, possibly
even in a more suitable language. 

-- 
David Starner - ··········@aasaa.ofe.org
Pointless website: http://dvdeug.dhis.org
"I don't care if Bill personally has my name and reads my email and 
laughs at me. In fact, I'd be rather honored." - Joseph_Greg
From: Mark VandeWettering
Subject: Re: Beginner's Language?
Date: 
Message-ID: <slrn9fkc70.1lom.markv@peewee.telescopemaking.org>
David Starner <······@x8b4e53cd.dhcp.okstate.edu> wrote:
>On Wed, 09 May 2001 18:01:10 -0500, Sashank Varma <·············@vanderbilt.edu> wrote:
>> can you provide some evidence that:
>> 
>> (1) any standard general-purpose programming languages resemble natural
>>     language at all, that there is some metric of natural language-ness
>>     by which they can be ordered, and that wirth-style languages score
>>     higer on this metric than lisp?
>>
>> (2) the degree to which a programming language resembles natural
>>     language predicts the ease with which it will be learned?
>
>Tell me what
>	!bbz#,···@bz,
>does.
>
>Then tell me what
>	
>	OPEN FILE ARGUMENT 2 AS 2
>	BEGIN LOOP
>		LOAD FILE ARGUMENT 1 INTO BUFFER
>		COPY BUFFER TO 2
>	FINISH LOOP
>does. 
>
>If I came upon the first, I would give up. The second, anyone can
>probably get some idea of basically what it's doing. For a new 
>student, knowing that they aren't totally lost can be a huge
>confidence builder.
>
>As for lisp itself, just from the name, what does defun or cadar
>do? What do FUNCTION, PROCEDURE and BEGIN do? I've seen 2 + 2 since
>the first days of school. Why (+ 2 2)? Learning a new vocabulary,
>a new equation syntax is not what you want to be teaching when you
>have so much else to teach.

What are FILES?  What is an ARGUMENT?  What is this AS 2 business?
What is a BUFFER?  

Prefix notation is not difficult to learn, especially when there is
no exceptions.

Scheme uses a more sensible "define" keyword.  Functional programming
languages that use pattern matching are more straightforward to code
list processing algorithms in, I'll admit.

>> (if you thinking i'm picking nits, note that i've granted you the
>> implicit assumption that there is a singular quality shared by all
>> natural languages, a chomsky-esque universal grammar perhaps, that i
>> could have also questioned.)
>
>That's a theoritical assumption. How about "The vast majority of the
>people who are going to be learning computer programming know an 
>Indo-European language, Russian, Chinese or Japanese."

None of which helps you at all to learn any programming language that I've
ever learned.

>> there are many formal notations, and while one pressure on the form
>> of notations may be resemblance to natural language, there are others
>> of greater importance (e.g., minimizing the difficulty of performing
>> certain operations).  
>
>No, that's not of greater importance. It is, in fact, irrelevant for
>any reasonable language. The goal is teaching people to program,
>not helping experianced programmers hack up scripts or researchers
>write up quicker chess programs. If something is difficult in your
>chosen language, you put that off until a latter class, possibly
>even in a more suitable language. 
>
>-- 
>David Starner - ··········@aasaa.ofe.org
>Pointless website: http://dvdeug.dhis.org
>"I don't care if Bill personally has my name and reads my email and 
>laughs at me. In fact, I'd be rather honored." - Joseph_Greg


-- 
/* __  __ __   ____      __*/float m,a,r,k,v;main(i){for(;r<4;r+=.1){for(a=0;
/*|  \/  |\ \ / /\ \    / /*/a<4;a+=.06){k=v=0;for(i=99;--i&&k*k+v*v<4;)m=k*k
/*| |\/| | \ V /  \ \/\/ / */-v*v+a-2,v=2*k*v+r-2,k=m;putchar("X =."[i&3]);}
/*|_|  |_ark\_/ande\_/\_/ettering <·····@telescopemaking.org> */puts("");}}
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddi9d$cqq$1@merrimack.Dartmouth.EDU>
David Starner <······@x8b4e53cd.dhcp.okstate.edu> wrote:
>On Wed, 09 May 2001 18:01:10 -0500, Sashank Varma <·············@vanderbilt.edu> wrote:
>> can you provide some evidence that:
>> 
>> (1) any standard general-purpose programming languages resemble natural
>>     language at all, that there is some metric of natural language-ness
>>     by which they can be ordered, and that wirth-style languages score
>>     higer on this metric than lisp?
>>
>> (2) the degree to which a programming language resembles natural
>>     language predicts the ease with which it will be learned?
>
>Tell me what
>	!bbz#,···@bz,
>does.

Depends on the language. Give me the language spec or a
reference implementation.


>Then tell me what
>	
>	OPEN FILE ARGUMENT 2 AS 2
>	BEGIN LOOP
>		LOAD FILE ARGUMENT 1 INTO BUFFER
>		COPY BUFFER TO 2
>	FINISH LOOP
>does. 

Same here.


>If I came upon the first, I would give up. The second, anyone can
>probably get some idea of basically what it's doing. For a new 
>student, knowing that they aren't totally lost can be a huge
>confidence builder.

It can also spawn a huge number of unwarranted assumptions
that will plague the process of learning. They will have
to learn to deal with the rigors of a formal grammar at
one point or another. The problem with the above grammar,
as far as I can infer from the code segment, is that it's
terribly complicated if you try to specify any substantial
subset of it.


>As for lisp itself, just from the name, what does defun or cadar
>do? What do FUNCTION, PROCEDURE and BEGIN do?

None of them does anything remotely close to what anyone
would be able to infer from one's knowledge of English
alone


>I've seen 2 + 2 since
>the first days of school. Why (+ 2 2)? Learning a new vocabulary,
>a new equation syntax is not what you want to be teaching when you
>have so much else to teach.

What equation syntax? Lisp doesn't have equations as part
of the language. Or algebra, for that matter. I'm rather
used to writing ab instead of a * b and how would you
support that? Allow only single-character identifiers?


>> (if you thinking i'm picking nits, note that i've granted you the
>> implicit assumption that there is a singular quality shared by all
>> natural languages, a chomsky-esque universal grammar perhaps, that i
>> could have also questioned.)
>
>That's a theoritical assumption. How about "The vast majority of the
>people who are going to be learning computer programming know an 
>Indo-European language, Russian, Chinese or Japanese."

I don't know how many of the above languages you can
speak, but there are enormous differences among them.


Dan.

-- 
What an author likes to write most is his signature on the back of a cheque.
                -- Brendan Francis
From: Eugene Zaikonnikov
Subject: Re: Beginner's Language?
Date: 
Message-ID: <6y3dadcke9.fsf@viking.cit>
* "DS" == David Starner <······@x8b4e53cd.dhcp.okstate.edu> writes:

DS>  Tell me what !bbz#,···@bz, does.

DS>  Then tell me what
	
DS>  OPEN FILE ARGUMENT 2 AS 2
DS>  BEGIN LOOP
DS>          LOAD FILE ARGUMENT 1 INTO BUFFER 
DS>          COPY BUFFER TO 2
DS>  FINISH LOOP does.

Tell me what

(loop for i across array1
      for j in list1
      maximize (/ i j))

does.

DS>  As for lisp itself, just from the name, what does defun or cadar
DS>  do? What do FUNCTION, PROCEDURE and BEGIN do?

What '2 AS 2' do?

DS>  I've seen 2 + 2 since the first days of school. Why (+ 2 2)?

Because:
a) This syntax is uniform and requires no knowledge of operations
precedence;
b) Plus is not obliged to be a binary operator. Ability to write
(+ foo bar baz qux) or (+ ,@my-list-of-variables) is handy.

-- 
  Eugene
From: David Thornley
Subject: Re: Beginner's Language?
Date: 
Message-ID: <GyCK6.196$Dd5.130467@ruti.visi.com>
In article <···········@news.cis.okstate.edu>,
David Starner <··········@aasaa.ofe.org> wrote:
>On Wed, 09 May 2001 18:01:10 -0500, Sashank Varma <·············@vanderbilt.edu> wrote:
>
>Tell me what
>	!bbz#,···@bz,
>does.
>
>Then tell me what
>	
>	OPEN FILE ARGUMENT 2 AS 2
>	BEGIN LOOP
>		LOAD FILE ARGUMENT 1 INTO BUFFER
>		COPY BUFFER TO 2
>	FINISH LOOP
>does. 
>
I can make much better guesses in the latter case.  Is it realistic?

Is it going to fool the beginner into thinking that he or she can
write English?  I knew a woman who had difficulty in learning
COBOL because she took the English-like quality too seriously,
and never remembered the exact phrase she needed.  Like
READ FOO INTO BAR AT END GO TO BAZ.
She would substitute all sorts of apparently equivalent things
for "AT END".

>If I came upon the first, I would give up. The second, anyone can
>probably get some idea of basically what it's doing. For a new 
>student, knowing that they aren't totally lost can be a huge
>confidence builder.
>
What's this BUFFER business?  Isn't that something that you put
in aspirin?  What are these 2s for and why are they arguing?
To understand the preceding, you need to have some idea of
how computer programs work, and hence you already need to
be a programmer.

>As for lisp itself, just from the name, what does defun or cadar
>do?

Anybody who teaches "cadar" and friends in a beginning course should
be deprived of tenure, or at least shot.

 What do FUNCTION, PROCEDURE and BEGIN do?

Yeah, what do they do?  How about READLN?

 I've seen 2 + 2 since
>the first days of school. Why (+ 2 2)? Learning a new vocabulary,
>a new equation syntax is not what you want to be teaching when you
>have so much else to teach.
>
You know what threw me in my first computer language course?  This
LET X = X + 1 thing is one of them.  That makes absolutely no
sense.  X = X + 1 is true iff X is infinite.  It took me a
while to get the hang of the LET statement.

Every computer language is going to have odd stuff in it, and that
odd stuff is going to hit the student right away.  Variables in
programming languages have surprisingly little in common with
mathematical variables; they're much more similar to mathematical
sequences.  Most languages recommended for beginners require the
declaration of variables and types.  Most of them require some
sort of magic invocations that are not going to be understood
until later.  Most of them have, for example, much more intrusive
syntax than Common Lisp.

Learning to program is difficult, and learning the meanings of
a few words is unlikely to be much of an obstacle.


--
David H. Thornley                        | If you want my opinion, ask.
·····@thornley.net                       | If you don't, flee.
http://www.thornley.net/~thornley/david/ | O-
From: Robert Posey
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B02C05B.BA4B63C6@raytheon.com>
David Starner wrote:
No, that's not of greater importance. It is, in fact, irrelevant for

> any reasonable language. The goal is teaching people to program,
> not helping experianced programmers hack up scripts or researchers
> write up quicker chess programs. If something is difficult in your
> chosen language, you put that off until a latter class, possibly
> even in a more suitable language.

I agree, no modern program works anything like natural language, and while
reserved word and functions should resemble a natural language summary,
real natural language would be useless as a programing tool.  Do you really
want to have to explain a function like printf using standard English.  I have
never seen it attempted, and even with lots of programing references C String
and file functions confuse almost everyone.  So it is pretty clear there is no
natural language equivalent of most programing Token(functions, reserved words)
that would comprise pages of text.  Thus, the direct mapping to natural language
should be at the memory key level, while not getting excessive in length or spelling
complexity for tokens that will be typed millions and billions of times.

I pick Java as the first language, it makes C++ easier to learn, it has fewer nasty
surprises, and integrates with the web well, so that fun projects are possible.  In
addition, it is important in the modern University Environment to allow work to
be done on either Windoze, Linux, Mac and Unix environments and Java does that
without forcing the Graders to maintain different systems.  Java IDE vendors
IBM and Sun also provide relatively easy to use and free IDE's.

LISP is a great language, but its so different it is nightmarish at first to people with
some programing experience, and I would assume the reverse is true.  I also would
never want a student to be able to ignore what type of number they are using, its
very bad practice in most cases.

Muddy
From: ·······@my-deja.com
Subject: Re: Beginner's Language?
Date: 
Message-ID: <nm9itj1nhvw.fsf@kindness.mit.edu>
Robert Posey <·····@raytheon.com> writes:

> I pick Java as the first language, it makes C++ easier to learn, it
> has fewer nasty surprises,

You mean than C++?

> and integrates with the web well, so that
> fun projects are possible.

Why should an introductory programming course involve knowing about
structured documents?  Shouldn't the focus be on the structure of
programs instead?

In Scheme, the actual *programming* is fun; no need to wrap a pretty web
page around it.  After the beginning programming course is over, those
who want to do web work have good tools to choose from, e.g. SSAX if
they want to write programs that manipulate structured documents, BRL if
they just want to stick server-side program code inside a web page.  To
see some fun, quick web hacks with source visit

	http://www.webappcabaret.com/brl/p/brlewis/index.brl

> In addition, it is important in the modern
> University Environment to allow work to be done on either Windoze,
> Linux, Mac and Unix environments and Java does that without forcing
> the Graders to maintain different systems.

What release of Java is the Mac up to now?  How about BSD?  Do you have
all the platforms stick with the least common denominator?  This version
skew is why a lot of languages now boast of being "more portable than
Java."

> Java IDE vendors IBM and
> Sun also provide relatively easy to use and free IDE's.

Do they work with the least-common-denominator Java, or do you need a
recent version?

I notice that the latest version of the DrScheme IDE is available for
all the platforms you mentioned.  I've tried it on NT and Linux; it
works the same on those platforms, and presumably on Mac as well.

> LISP is a great language, but its so different it is nightmarish at
> first to people with some programing experience

Not everyone finds it nightmarish to learn something new and different.
The two coworkers I've been teaching Scheme to have found it
interesting.

> I also would never want a student to be able to
> ignore what type of number they are using, its very bad practice in
> most cases.

You mean like writing x/y in Java without paying attention to whether x
and y are floats or ints?  How do you keep a student from doing that?

-- 
Bruce R. Lewis				http://brl.sourceforge.net/
From: [Invalid-From-Line]
Subject: Re: Beginner's Language?
Date: 
Message-ID: <slrn9g5hdr.asg.stephan@pcrm.win.tue.nl>
On Wed, 16 May 2001 13:00:59 -0500, Robert Posey <·····@raytheon.com> wrote:
>I agree, no modern program works anything like natural language, and while
>reserved word and functions should resemble a natural language summary,
>real natural language would be useless as a programing tool. 

The most serious effort to create a programming language that
"imitates natural language" is called COBOL. 'Nuf said.

Stephan

>Do you really want to have to explain a function like printf using standard English.  


Do you want to explain it at all? ;-)

>I also would
>never want a student to be able to ignore what type of number they are using, its
>very bad practice in most cases.

COBOL has lots of interesting numerical types, such as fixed-precision
decimal numbers. Very useful for counting beans.

I definitely nominate COBOL. It will have the added advantage that
whatever comes next will look as an improvement. (OK, there's still
INTERCAL).

Stephan

-- 
ir. Stephan H.M.J. Houben
tel. +31-40-2474358 / +31-40-2743497
e-mail: ········@win.tue.nl
From: Lao Xiao Hai
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B08965C.6F34D5C9@ix.netcom.com>
·······@pcrm.win.tue.nl wrote:

> I definitely nominate COBOL. It will have the added advantage that
> whatever comes next will look as an improvement. (OK, there's still
> INTERCAL).

I assume this was a joke.   In reality, there are still a lot of people successfully
developing software with COBOL.  Moreover,   the current COBOL standard,
and its planned successor, are both quite easy for applications developers to
learn and use.  One of COBOL's virtues has been that, in large corporations,
people who understand the problem domain have been able to transition to
the role of programmer and create solutions.   Typically, these people have
little training in computer science.  They are able to learn on the job.

I have seen a lot of excellent COBOL programmers who have made the
leap from clerical jobs to programming jobs and who have done really
good work.   Also, COBOL is not going away anytime soon, contrary
to popular opinion.    And it is still better for business data processing
applications than C++, any day of the week.   I would have to say it is
better for most of these kinds of applications than Perl or Scheme, Smalltalk
or even Java.    Ada might be the exception because it has a built-in decimal
type and a well-defined Information Systems Annex.    However, I don't
see Ada replacing COBOL anytime soon any more than I see any of those
other languages replacing it.   COBOL continues to evolve and improve,
but few in the programming community keep up-to-date about those
changes.  So many of them wrote it off long ago that they don't know
how it has improved over what it once was.    It is much like those who
still criticize Ada based on the old Ada 83 standard or Smalltalk based
on an outdated view of that language.   Hmmmm. Maybe Ruby will do. :-)

Richard Riehle
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <2u0igtc0piqnrsc8h04236pros8bt2kavf@4ax.com>
>·······@pcrm.win.tue.nl wrote:
>
>> I definitely nominate COBOL. It will have the added advantage that
>> whatever comes next will look as an improvement. (OK, there's still
>> INTERCAL).

I nominate FORTRAN. :-)
It is so appalling that any other language that they learn will come
as a pleasant relief !
From: Liam Devlin
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B0B91D2.536F361A@optonline.net>
raj wrote:
> 
> >·······@pcrm.win.tue.nl wrote:
> >
> >> I definitely nominate COBOL. It will have the added advantage that
> >> whatever comes next will look as an improvement. (OK, there's still
> >> INTERCAL).
> 
> I nominate FORTRAN. :-)
> It is so appalling that any other language that they learn will come
> as a pleasant relief !

Give RPG a shot before signing any contracts.

LiamD
From: Marie-No�lle Baechler
Subject: Re: Beginner's Language?
Date: 
Message-ID: <Xns90A8E9104ebfg01bluewinch@195.186.4.29>
>I assume this was a joke.   In reality, there are still a lot of people
>successfully developing software with COBOL.  Moreover,   the current
>COBOL standard, and its planned successor, are both quite easy for
>applications developers to learn and use.  One of COBOL's virtues has
>been that, in large corporations, people who understand the problem
>domain have been able to transition to the role of programmer and create
>solutions.   Typically, these people have little training in computer
>science.  They are able to learn on the job. 

In my employer, a teaching hospital, COBOL was still very important 
a few years ago, but it will have disappeared by January 1, 2002. 
The only system still using it, our patient management system will 
be replaced at that time.

Here, COBOL is disappearing because informations systems based on 
relational databases are used for all the major tasks. We also tend 
to rely on packages, we try to minimize local adaptations and they 
are developped as specific extensions by our suppliers.

Local extensions of our major information systems are mostly very
specific queries and they are developped in ORACLE SQL. We have a
few programs developped in PL/SQL.

Some of our large packages are not yet client/server. When they 
are, the client is developped in C++ (with one major exception 
using UNIFACE). A few less important applications have been 
developped as Intranet applications in ORACLE PL/SQL. Small 
specific client/server applications have been developped with 
a VB client.

So, for us, COBOL is finally disappearing. But it took 10 more
years than what I expected.

Marie-Noelle Baechler
From: Alejandro R. Mosteo
Subject: Re: Beginner's Language?
Date: 
Message-ID: <MPG.156e3fd440f1b7f39896b2@news.cis.dfn.de>
·······@pcrm.win.tue.nl ha escrito esto previamente:

> (OK, there's still INTERCAL).

Yes, it was a real find XD!

Cheers.

------------------------------
Alejandro R. Mosteo
mailto: ······@cepsz.unizar.es
------------------------------
From: Florian Weimer
Subject: Re: Beginner's Language?
Date: 
Message-ID: <8766ei7fct.fsf@deneb.enyo.de>
·······@pcrm.win.tue.nl () writes:

> COBOL has lots of interesting numerical types, such as fixed-precision
> decimal numbers. Very useful for counting beans.

Well, fixed point decimal numbers are extremely useful, and many
people actually need them.  Just try to implement the ECB currency
conversion guidelines in a language without fixed-point decimal
support, and you'll see what I mean.

Just my EUR .0000010100011110101110000101000111101011100001...
From: Johan Kullstam
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m3r8x6tsa5.fsf@sysengr.res.ray.com>
Florian Weimer <··@deneb.enyo.de> writes:

> ·······@pcrm.win.tue.nl () writes:
> 
> > COBOL has lots of interesting numerical types, such as fixed-precision
> > decimal numbers. Very useful for counting beans.
> 
> Well, fixed point decimal numbers are extremely useful, and many
> people actually need them.  Just try to implement the ECB currency
> conversion guidelines in a language without fixed-point decimal
> support, and you'll see what I mean.
> 
> Just my EUR .0000010100011110101110000101000111101011100001...

you can always do fixed point with integers.

for example, to do dollars to two decimal places, just count pennies
instead of dollars.

other than a little notational convenience, i've never understood what
the big deal was with fixed point.

-- 
J o h a n  K u l l s t a m
[········@ne.mediaone.net]
sysengr
From: Jean-Pierre Rosen
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9f52c7$pqb$1@s1.read.news.oleane.net>
"Johan Kullstam" <········@ne.mediaone.net> a �crit dans le message news: ··············@sysengr.res.ray.com...
> you can always do fixed point with integers.
>
> for example, to do dollars to two decimal places, just count pennies
> instead of dollars.
>
> other than a little notational convenience, i've never understood what
> the big deal was with fixed point.
>
Everything looks simple to people who didn't try to implement it...

Addition and subtraction are easy, but multiplication and division require some care.
If you implement fixed points with integers, you'll end up doing by hand exactly what the compiler does for you, except that the
people who wrote the compiler were educated in computer arithmetic, and believe me, there are lots of pitfalls there.
(Said by someone who did an implementation of fixed point arithmetic).

--
---------------------------------------------------------
           J-P. Rosen (·····@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr
From: Raymond Toy
Subject: Re: Beginner's Language?
Date: 
Message-ID: <4npucpsl3r.fsf@rtp.ericsson.se>
>>>>> "Jean-Pierre" == Jean-Pierre Rosen <·····@adalog.fr> writes:

    Jean-Pierre> "Johan Kullstam" <········@ne.mediaone.net> a �crit dans le message news: ··············@sysengr.res.ray.com...
    >> you can always do fixed point with integers.
    >> 
    >> for example, to do dollars to two decimal places, just count pennies
    >> instead of dollars.
    >> 
    >> other than a little notational convenience, i've never understood what
    >> the big deal was with fixed point.
    >> 
    Jean-Pierre> Everything looks simple to people who didn't try to implement it...

    Jean-Pierre> Addition and subtraction are easy, but multiplication
    Jean-Pierre> and division require some care.  If you implement
    Jean-Pierre> fixed points with integers, you'll end up doing by
    Jean-Pierre> hand exactly what the compiler does for you, except
    Jean-Pierre> that the people who wrote the compiler were educated
    Jean-Pierre> in computer arithmetic, and believe me, there are
    Jean-Pierre> lots of pitfalls there.  (Said by someone who did an
    Jean-Pierre> implementation of fixed point arithmetic).

Why is multiplication/division much harder?  You pretend the numbers
of integers, do the operation, and then figure out where the fixed
point should be.  That's not too hard.  As a DSP guy working on
fixed-point DSPs, we do this all the time.

Ray
From: Kent M Pitman
Subject: Re: Beginner's Language?
Date: 
Message-ID: <sfwhey1mxoh.fsf@world.std.com>
[ replying to comp.lang.lisp only
  http://world.std.com/~pitman/pfaq/cross-posting.html ]

Raymond Toy <···@rtp.ericsson.se> writes:

> Why is multiplication/division much harder?  You pretend the numbers
> of integers, do the operation, and then figure out where the fixed
> point should be.  That's not too hard.  As a DSP guy working on
> fixed-point DSPs, we do this all the time.

I agree it doesn't look that bad.  Seems like he could even carry
around the number as

 #S(FIXED-POINT :DIGITS 2343242342332432432 :DECIMAL-PLACES 3)

so that you don't have to truncate until you go to use the number for
a final purpose.  Meanwhile you could maintain the math on decimal
places separately from the math on the digits.  Sounds a lot like the
way I do math on my checkbook, so I don't see why it wouldn't work.
Then again, maybe I'm broke (or rich) and don't know it.
From: Frode Vatvedt Fjeld
Subject: Re: Beginner's Language?
Date: 
Message-ID: <2hhey17frk.fsf@dslab7.cs.uit.no>
Kent M Pitman <······@world.std.com> writes:

> [..] Meanwhile you could maintain the math on decimal places
> separately from the math on the digits.

Sound a bit like a floating decimal point to me ;-)

-- 
Frode Vatvedt Fjeld
From: Erik Naggum
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3200342163192289@naggum.net>
* Frode Vatvedt Fjeld
> Sound a bit like a floating decimal point to me ;-)

  Exactly the same, except for the base of the exponent, where 10 is simply
  a _major_ pain.

  Imagine how elegantly the worlds of the man and machine would have merged
  if we had not decided to base our number systems on the number of digits,
  but had used the thumbs more intelligently, like binary flags.  Suppose
  the right thumb meant 8 and the left meant 16.  We could have counted to
  32 using only two hands.  "Sweet 16" would only have been a digit away.
  (With a slogan like that, you could probably get arrested in some states.)

#:Erik
-- 
  Go octal!
From: Xah Lee
Subject: Re: Beginner's Language?
Date: 
Message-ID: <B73CE77B.43C1%xah@xahlee.org>
Nag'm wrote:
> Imagine how elegantly the worlds of the man and machine would have merged
> if we had not decided to base
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> our number systems on the number of digits ...
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

On what basis you make that bodacious assertion?

We use decimal number system, not vigesimal.

and, please imagine how elegantly the worlds of man and woman would have
merged if we decided to base our number system on reproductive body parts. 1
symbolize penis, 0 vagina, then digitalization in binary system would have
been discovered long before fire. (With a maxim like that, you could
probably get arrested by some churches.)

 Xah
 ···@xahlee.org
 http://xahlee.org/PageTwo_dir/more.html
 Go binary! (get it? get it?)


> From: Erik Naggum <····@naggum.net>
> Organization: Naggum Software, Oslo, Norway
> Newsgroups: comp.lang.lisp
> Date: Thu, 31 May 2001 23:56:05 GMT
> Subject: Re: Beginner's Language?
> 
> * Frode Vatvedt Fjeld
>> Sound a bit like a floating decimal point to me ;-)
> 
> Exactly the same, except for the base of the exponent, where 10 is simply
> a _major_ pain.
> 
> Imagine how elegantly the worlds of the man and machine would have merged
> if we had not decided to base our number systems on the number of digits,
> but had used the thumbs more intelligently, like binary flags.  Suppose
> the right thumb meant 8 and the left meant 16.  We could have counted to
> 32 using only two hands.  "Sweet 16" would only have been a digit away.
> (With a slogan like that, you could probably get arrested in some states.)
> 
> #:Erik
> -- 
> Go octal!
From: Dan
Subject: Re: Beginner's Language?
Date: 
Message-ID: <10335d19.0106011327.6ee56bef@posting.google.com>
I agree with Simon.

I nominate LOGO as a very good beginners programming language, as it
was designed to be a programming language for kids.  The turtle
graphics give beginners instant feedback and a starting point to begin
learning the basics of programming.  Unfortunately, few people ever
delve into the deeper concepts in LOGO, such as List Processing, and
believe it is just a drawing language for children.
From: Jean-Pierre Rosen
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9f5j6p$58d$1@s1.read.news.oleane.net>
"Raymond Toy" <···@rtp.ericsson.se> a �crit dans le message news: ··············@rtp.ericsson.se...
> Why is multiplication/division much harder?  You pretend the numbers
> of integers, do the operation, and then figure out where the fixed
> point should be.  That's not too hard.  As a DSP guy working on
> fixed-point DSPs, we do this all the time.
>
Yes, you "just" have to figure out where the fixed point should be.
Note that the result has twice more digits after the point than the original operands. This means that there is some rounding
involved, and of course if you want to meet the numerics annex requirements, this should be done right.

And did you consider the case where operands are of different fixed point types, with different smalls, and the expected result type
is a third fixed point type, or even a floating point type ? And of course, you should consider arbitrary smalls, not just powers of
2... That makes determining the correct rounding of the result more interesting.

Of course, it is doable. Compilers do it all the time. But why bother to reinvent the wheel, when the compiler provides a carefully
tested implementation ?

--
---------------------------------------------------------
           J-P. Rosen (·····@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr
From: Kent M Pitman
Subject: Re: Beginner's Language?
Date: 
Message-ID: <sfwelt5msvh.fsf@world.std.com>
[ replying to comp.lang.lisp only
  http://world.std.com/~pitman/pfaq/cross-posting.html ]

"Jean-Pierre Rosen" <·····@adalog.fr> writes:

> Of course, it is doable. Compilers do it all the time. But why
> bother to reinvent the wheel, when the compiler provides a carefully
> tested implementation ?

It is hard to make sense of what you have said here.  (I apologize in 
advance if this is just a problem with your use of English as a second 
language, but the rest of your text seems well enough expressed that I 
suspect the problem I'm having is not that, but something deeper.)

You must use the term "compiler" in a different way than we do in Lisp.

The Lisp compiler merely implements the language semantics.  It is not
responsible for cleverness of result.

Perhaps you mean "Languages do it all the time".  But the truth is that
languages don't.  Few languages have this semantics.  For those that do,
certainly their compilers will implement the spec.  But there are many
other languages out there that don't have this semantics.  Some of 
those languages are broken because the programmer is not left with the
power to recover from the language's failure to provide this datatype.
In Lisp though, there's plenty of power to do interesting and powerful
things left to the user, which is why users step in to do things the
compiler (i.e., the "language") does not.
From: vsync
Subject: Re: Beginner's Language?
Date: 
Message-ID: <86zoc72sq7.fsf@piro.quadium.net>
Robert Posey <·····@raytheon.com> writes:

> LISP is a great language, but its so different it is nightmarish at first to people with
> some programing experience, and I would assume the reverse is true.  I also would

Really?  I loved learning it.

-- 
vsync
http://quadium.net/ - last updated Tue May 15 15:02:08 PDT 2001
(cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner
      (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil))
From: Mark VandeWettering
Subject: Re: Beginner's Language?
Date: 
Message-ID: <slrn9fkbvd.1lom.markv@peewee.telescopemaking.org>
On 9 May 2001 18:24:26 GMT, Andreas Krennmair <···········@aon.at> wrote:

>The problem is that Lisp is in no way similar to a natural language. 

I find this statement curious.  Are there programming languages which are
similar to natural languages?  If there are, what benefits are there from
using those languages?

>And 
>natural language can be understood easier than some functional, theoretical
>stuff with a unique concept like Lisp. 

I've heard this argument about "natural languages" used with regards to 
perl before.  I am always confused by it.  Don't get me wrong, perl is 
an incredibly useful tool, and I give Larry Wall all the credit in the 
universe for making such a great tool and giving it to the world, but
I am constantly confused by justification.  First of all, precisely what
feature of perl is similar to natural languages?  Second of all, why
do we think that natural languages are good?  Natural languages are 
notoriously hard to learn, full of exceptions, and often vague.  Last,
what makes you think that processes are best described in terms of 
natural languages?  Mathematics implements entire languages specialized
to their domain just so that they can express the ideas they have clearly
and concisely.

>Don't get me wrong, Lisp is a great
>language, and I personally find it quite exciting as four year Pascal and
>two year C/C++ programmer, but it's hardly usable for teaching, because it
>is so unique (well, you _could_ to functional programming in C, but it would
>be considered bad style).

The reason that Scheme (I'll keep pretending you were talking about Scheme)
is good is precisely becaue it DOES leverage new ideas and gets students
to think about computation not in the natural way that they think about it, 
but in the formalized way that computers do. 

>Lisp has hardly anything in common with natural
>languages. Or could you express "My girlfriend's name is Suzy and her age
>is 17" as readable as this in Lisp:
>$girlfriend{'name'} = "Suzy";
>$girlfriend{'age'} = 17;

(set! girlfriend '((name . "Suzy") (age . 17)))

Is that so different?  Are association lists really harder than associative
arrays?

>Of course, this is not the best example, since Perl has a syntax that is
>not the optimum for beginners.

In fact, it is very unoptimal for beginners.  

>>  A beginner is not biased in any way and so it doe not matter what
>>  he/she started from. If he starts with Lisp; C, Java looks messy. If

>It _does_ matter. Beginners can easily get frustrated because of the
>sometimes confusing syntax. 

I'm not sure how you can present a program fragment in perl, and then 
in the same post claim that LISP has a confusing syntax.  

>BTW, I wouldn't recommend starting with Java
>or C/C++, either. 

Neither would I, unless you want them never to program again.

>I'd recommend and teach (if I were a teacher :) some
>Wirth language, because they're designed especially for teaching basics
>of programming.

You could do worse than Pascal/Modula/Oberon, but in most respects I
think Scheme is better for beginning programmers.

>Best regards,
>Andreas Krennmair
>-- 
>void strncpy(char *p, char *q, int n){while(n--){*p++=*q++;}} 


-- 
/* __  __ __   ____      __*/float m,a,r,k,v;main(i){for(;r<4;r+=.1){for(a=0;
/*|  \/  |\ \ / /\ \    / /*/a<4;a+=.06){k=v=0;for(i=99;--i&&k*k+v*v<4;)m=k*k
/*| |\/| | \ V /  \ \/\/ / */-v*v+a-2,v=2*k*v+r-2,k=m;putchar("X =."[i&3]);}
/*|_|  |_ark\_/ande\_/\_/ettering <·····@telescopemaking.org> */puts("");}}
From: John English
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3AFA91BE.BB9E4C8F@brighton.ac.uk>
Mark VandeWettering wrote:
> I am constantly confused by justification.  First of all, precisely what
> feature of perl is similar to natural languages?

You can write poetry in it? :-)

-----------------------------------------------------------------
 John English              | ·········@brighton.ac.uk
 Senior Lecturer           | http://www.it.bton.ac.uk/staff/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------
From: Michael Livshin
Subject: Re: Beginner's Language?
Date: 
Message-ID: <s3g0ed9v8f.fsf@bigfoot.com.cmm>
John English <··@brighton.ac.uk> writes:

> Mark VandeWettering wrote:
> > I am constantly confused by justification.  First of all, precisely what
> > feature of perl is similar to natural languages?
> 
> You can write poetry in it? :-)

there's nothing natural about poetry.

-- 
Computer Science is embarrassed by the computer.
                -- Alan Perlis
From: Lex Spoon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m366f1yy1g.fsf@chaos.resnet.gatech.edu>
Michael Livshin <········@yahoo.com> writes:

> John English <··@brighton.ac.uk> writes:
> 
> > Mark VandeWettering wrote:
> > > I am constantly confused by justification.  First of all, precisely what
> > > feature of perl is similar to natural languages?
> > 
> > You can write poetry in it? :-)
> 
> there's nothing natural about poetry.


And it's not specific to perl..................


-Lex
From: John English
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B0A74D9.2A811C9D@brighton.ac.uk>
Lex Spoon wrote:
> 
> Michael Livshin <········@yahoo.com> writes:
> 
> > John English <··@brighton.ac.uk> writes:
> >
> > > Mark VandeWettering wrote:
> > > > I am constantly confused by justification.  First of all, precisely what
> > > > feature of perl is similar to natural languages?
> > >
> > > You can write poetry in it? :-)
> >
> > there's nothing natural about poetry.
> 
> And it's not specific to perl..................

Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)

"I think that I will never see
 A poem lovely as a... doubly-linked list? ISAM file? etc..."

-----------------------------------------------------------------
 John English              | ·········@brighton.ac.uk
 Senior Lecturer           | http://www.comp.it.bton.ac.uk/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------
From: Ted Dennison
Subject: Poetry in source code (was: Beginner's Language?)
Date: 
Message-ID: <EDwO6.3609$r4.205188@www.newsranger.com>
In article <·················@brighton.ac.uk>, John English says...
>Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)

How about C?  Try -

http://www.ioccc.org/1998/schweikh3.c or
http://www.ioccc.org/1996/gandalf.c

I'm still not sure how one can claim that the ability to do this is a *good*
thing though...

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - ···············@telepath.com
From: John English
Subject: Re: Poetry in source code (was: Beginner's Language?)
Date: 
Message-ID: <3B0BD618.E5E05418@brighton.ac.uk>
Ted Dennison wrote:
> 
> In article <·················@brighton.ac.uk>, John English says...
> >Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)
> 
> How about C?  Try -
> 
> http://www.ioccc.org/1998/schweikh3.c or
> http://www.ioccc.org/1996/gandalf.c

Ouch! Disgusting! No more, please!

> I'm still not sure how one can claim that the ability to do this is a *good*
> thing though...

Anything but. I suspect that the ability to write poetry means that
the language has gone from being merely flexible to being positively
bendy (or bent :-).

-----------------------------------------------------------------
 John English              | ·········@brighton.ac.uk
 Senior Lecturer           | http://www.comp.it.bton.ac.uk/je
 Dept. of Computing        | ** NON-PROFIT CD FOR CS STUDENTS **
 University of Brighton    |    -- see http://burks.bton.ac.uk
-----------------------------------------------------------------
From: Preben Randhol
Subject: Re: Poetry in source code (was: Beginner's Language?)
Date: 
Message-ID: <slrn9gntba.fo5.randhol+abuse@kiuk0156.chembio.ntnu.no>
On Wed, 23 May 2001 16:24:08 +0100, John English wrote:

> Anything but. I suspect that the ability to write poetry means that
> the language has gone from being merely flexible to being positively
> bendy (or bent :-).

I see that there is a contest to write the most obfuscated code in C on
http://www.ioccc.org/.

I guess there is one for Perl too, or perhaps not, as Perl is obfuscated
to begin with. There should be a contest in Perl to write a
non-obfuscated code.

-- 
Preben Randhol ------------------- http://www.pvv.org/~randhol/ --
                 �For me, Ada95 puts back the joy in programming.�
From: Chad R. Meiners
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3b0b0533.0@silver.truman.edu>
Strange you should ask for one.  I wrote this when I was a first year
college student just learning the language.  I don't make any claims that it
is wonderful.

with Ada.text_IO; use Ada.text_IO;
Procedure hierarchy_of_need is
Type hierarchy is (nothing, faith, trust, truth,acceptance,love);
Package Hierarchy_IO is new Ada.Text_IO.Enumeration_IO(hierarchy);
use Hierarchy_IO;
Procedure hierarchy_is(Current_Level : hierarchy) is
 begin
  If Current_Level <hierarchy'pred(hierarchy'last) then
   hierarchy_is(hierarchy'succ(Current_level));
  end if;
  Put(hierarchy'succ(Current_Level));
  Put(" requires ");
  Put(Current_Level);
  new_line;
 end hierarchy_is;
begin
 Hierarchy_is(nothing);
end hierarchy_of_need;

-Chad R. Meiners

"John English" <··@brighton.ac.uk> wrote in message
······················@brighton.ac.uk...
not specific to perl..................
>
> Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)
>
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <rjtlgt8akmdrsk01nepenhigj6d91nph78@4ax.com>
>>I nominate FORTRAN. :-)
>>It is so appalling that any other language that they learn will come
>>as a pleasant relief !
>>

>Volker Bandke <·······@bsp-gmbh.com>
>Said by someone who probably never coded a single line of Fortran in his life.


Dem's fighting words ! Put yer dukes up matey !  :-)
But seriously,  I have coded a couple of university projects in
Fortran. But yes, I have never had to do it professionally.
( For which I thank, Moloch, Baal and Ceruneo

> And probably not a single line of code in any language, except possibly one.....

I don't want to turn this into a my ** is bigger than yours :-) but
for what it is worth ( about 10 cents ), I have programmed in:

Basic and VB ( for my sins ! )
Pascal
Modula-2
Ada
Occam ( yes ! I am that ancient...)
Fortan ( see above )
C
C++
Some Java

Currently  learning Haskell and Squeak and playing with Lisp and
Scheme. 

PS: Has anyone seen the great SICP video lectures that are available
free from MIT ?
From: Lao Xiao Hai
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B119900.596E3779@ix.netcom.com>
John English wrote:

> ....Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)
>
> "I think that I will never see
>  A poem lovely as a... doubly-linked list? ISAM file? etc..."

Poetry, by its very nature, relies heavily on ambiguity.   This is discussed
quite comprehensively in William Empsom's great book, "Seven Types
of Ambiguity," in which he lays out the models of ambiguity reflected
in various styles of poetry.    Poetry also makes it statement with
simile and metaphor.   Although we use metaphor often when discussing
programming, we avoid it when actually writing programs.

Programming, by its very nature relies on lack of ambiguity.   Well, of
course, that is generally true.  If one is programming in C++, ambiguity
is part of the fun.

Richard Riehle
From: Lex Spoon
Subject: poetry in PL's?  (was: Beginner's Language?)
Date: 
Message-ID: <m3k831uuta.fsf_-_@chaos.resnet.gatech.edu>
Lao Xiao Hai <·······@ix.netcom.com> writes:
> John English wrote:
> 
> > ....Go on then, write me a poem in Lisp (or Cobol, or Ada, or Java)... :-)
> >
> > "I think that I will never see
> >  A poem lovely as a... doubly-linked list? ISAM file? etc..."
> 
> Poetry, by its very nature, relies heavily on ambiguity.   This is discussed
> quite comprehensively in William Empsom's great book, "Seven Types
> of Ambiguity," in which he lays out the models of ambiguity reflected
> in various styles of poetry.    Poetry also makes it statement with
> simile and metaphor.   Although we use metaphor often when discussing
> programming, we avoid it when actually writing programs.
> 


Ah, some specific challenges!  That makes it easier.  Here goes.

First, you *can* have ambiguity:

    madeline draw execute.
    joe gush.
    madeline tear.


Is Joe spurting blood or enthusiastically praising a drawing?  etc.


Second, I don't see why a poem *has* to have any of these particular
elements.  Here's a cruddy poem with neither metaphor nor ambiguity.
It does have rhythm and visual layout, however.

    #(money money money money)
       with: #(house car fame love)
          do: [ :stuff :it |
              self buy: it with: stuff ].

    This line is never reached.



Finally, you really can have metaphors in programs.  The difference is
that, assuming you actually *implement* the metaphor (which I'm not
going to), you end up specifying certain parts of the metaphor very
precisely.  At any rate, this is especially possible if you don't have
to deal with type declarations.  Here goes:

    stateA7 := State new.
    stateA7 on: #cry   goTo: stateA7.
    stateA7 on: #laugh goTo: stateA7.
    stateA7 on: #sigh  goTo: stateA7.


    myLoveForYou := StateMachine withStates: {stateA7}.

    [ myLoveForYou numStates = 1 ] assert.


(in crude English: "my love for you is a state machine with one state.")



Okay, I'm no poet, and everyone is probably wiping the vomit off of
their keyboards now.  :)  Doesn't it seem clear now that computer
languages allow poetry?


Lex
From: Ted Dennison
Subject: Re: poetry in PL's?  (was: Beginner's Language?)
Date: 
Message-ID: <%INQ6.3618$rn5.196270@www.newsranger.com>
In article <·················@chaos.resnet.gatech.edu>, Lex Spoon says...
>(in crude English: "my love for you is a state machine with one state.")

For some reason, that line never worked for me when I tried it. :-)

>Okay, I'm no poet, and everyone is probably wiping the vomit off of
>their keyboards now.  :)  Doesn't it seem clear now that computer

On the bright side, I think I'm now much better equipped to stand up to Vogon
torture...

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html
          home email - ···············@telepath.com
From: Florian Weimer
Subject: Re: Beginner's Language?
Date: 
Message-ID: <871yp67f08.fsf@deneb.enyo.de>
Lao Xiao Hai <·······@ix.netcom.com> writes:

> Poetry, by its very nature, relies heavily on ambiguity.

Another definition of poetry involves the concept of 'bounded
language' (sorry, I don't know the English translation).  This means
that the poet obeys to certain restrictions (meter, overall and verse
structure, distinguished vocabulary, certain symbols or subjects).

This characterization is necessary if you look at 20th century poetry.
Some works are not ambiguous at all, but really drastic.  Nevertheless,
they are poems.

> Programming, by its very nature relies on lack of ambiguity.  Well,
> of course, that is generally true.  If one is programming in C++,
> ambiguity is part of the fun.

Ada provides ambiguity resolution rules as well (but doesn't go as far
as C++, of course).
From: Andrew Bromage
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddhll$b8o@goaway.cc.monash.edu.au>
G'day all.

·····@peewee.telescopemaking.org (Mark VandeWettering) writes:

>First of all, precisely what
>feature of perl is similar to natural languages?

You might want to read this:

	http://www.wall.org/~larry/natural.html

>Second of all, why
>do we think that natural languages are good?

Well, they're not "good".  Natural languages are morally neutral.  But
the fact that we're both using natural languages right now seems to
indicate that they are pragmatically useful.

Of course, if we wanted to speak more precisely, we could use jargon
vocabulary, or impose structure on our language where it is needed
(e.g. pseudocode), or if we were in the same room, we could even use
gestures or draw diagrams on a whiteboard.  In any case, we're just
supplementing the natural language with something else.

>Mathematics implements entire languages specialized
>to their domain just so that they can express the ideas they have clearly
>and concisely.

Which is precisely why my preferred first language is something more like
Haskell.  If the student is already familiar with mathematical notation,
Haskell comes naturally.  Rather than spending brainshare on learning
an unfamiliar syntax (and let's face it, Lisp/Scheme has an unfamiliar
syntax, even if it is a simple one), the student can spend their energy
on learning programming.

Cheers,
Andrew Bromage
From: Iain McNaughton
Subject: Re: Beginner's Language?
Date: 
Message-ID: <So1FmhAdel+6Ewxb@t956379207.demon.co.uk>
Oh, what the heck, here's my two cents:

Seems to me that the best language for a beginner is BASIC. I'm quite
serious about this. I don't mean Visual Basic, or any of the other
recent extensions or amendments to BASIC; I mean original BASIC, as
developed at Dartmouth in the 60s. It was developed as a teaching tool,
and it has all the main requirements for helping someone with their
first steps in programming: it is simple to learn, requires the beginner
to understand simple ideas like input and output of data, if-then
statements, and for loops. Sure, it's not fancy, and it's certainly not
state-of-the-art. But that's not the point. The point is that the first
thing a beginner has to do is learn how to think a little more clearly,
and solve simple problems in a simple way. BASIC meets these criteria,
you can use it as a base for more learning, and it has a large
supporting literature for the student and the teacher alike.

For the next language, I'd choose Pascal. Wirth envisaged it as a
teaching language, and it works as such.

After that, you pick the language that the student is going to find most
useful in his future life.

I await my flaming with interest !

Iain McNaughton.



>
>Which is precisely why my preferred first language is something more like
>Haskell.  If the student is already familiar with mathematical notation,
>Haskell comes naturally.  Rather than spending brainshare on learning
>an unfamiliar syntax (and let's face it, Lisp/Scheme has an unfamiliar
>syntax, even if it is a simple one), the student can spend their energy
>on learning programming.
>
>Cheers,
>Andrew Bromage

P.S. Andrew, I don't think Haskell is a good idea as a first teaching
language, precisely for the reasons you mention: it's too close to
mathematics, and thus *too far* from the way that most computer
languages work.
-- 
Iain McNaughton
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dro9p$t1r$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> Rob Warnock <····@rigden.engr.sgi.com> wrote:
> >  And since this thread included a considerable amount of Lisp/Scheme-bashing
> >  because the syntax isn't "natural" (by some opinions), one more excerpt:
> >
> >  Projects promoting programming in "natural language" are
> >  intrinsically doomed to fail.
> And that's what Lisp does, according to Paul Foley. He expressed the sentence
> "My girlfriend's name is Suzy and her age is 17" in Lisp via
> (and (name (girlfriend me) Suzy) (age her 17))
> To quote him:
> "and there you have it -- a perfect representation of natural language!"
>
> ergo: Lisp is intrinsically doomed to fail.

There's a *clear* distinction between a metalanguage that *could* be
used to represent X and X itself. Lisp does not promote programming
in the above style. That it makes manipulation of such representation
extremely trivial is a point in its favor.

In any case, I still find it odd that you'd claim a lot of things
about Lisp just a few days after proclaiming yourself as "an absolute
beginner with Lisp."

Dan.
From: Andreas Krennmair
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9drra9$jik3e$1@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
>  In any case, I still find it odd that you'd claim a lot of things
>  about Lisp just a few days after proclaiming yourself as "an absolute
>  beginner with Lisp."
To be honest, I already know what Lisp is about for about one year (you 
won't believe it, I learned about it in school!). But I never really used
it, I only heard many things about it in theory.

And, damn, although I read this group for a few days, I already found out
that there are many competent Lisp hackers and at least as many bigots
and ignorant advocates.

Andreas Krennmair
-- 
When the pin is pulled, Mr. Grenade is not our friend.
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ds45f$189$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> >  In any case, I still find it odd that you'd claim a lot of things
> >  about Lisp just a few days after proclaiming yourself as "an absolute
> >  beginner with Lisp."
> To be honest, I already know what Lisp is about for about one year (you
> won't believe it, I learned about it in school!). But I never really used
> it, I only heard many things about it in theory.

In other words, you probably realize that don't know enough to
make sweeping, unqualified statements about Lisp.


> And, damn, although I read this group for a few days,

Note that you've been crossposting to many different newsgroups.
I've been reading this thread from comp.lang.functional, though
I'm also subscribed to comp.lang.scheme and comp.lang.lisp.


> I already found out
> that there are many competent Lisp hackers and at least as many bigots
> and ignorant advocates.

Not that I necessarily disagree with your observation, but your
judgment and dismissal of a language without relevant knowledge
would, in many people's minds, qualify you as a bigot. Whether
it would in your mind, well, that's a good test of hypocrisy,
isn't it?


Dan.
From: Andreas Krennmair
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9duf0q$432h$2@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
> > And, damn, although I read this group for a few days,
>  Note that you've been crossposting to many different newsgroups.
Who cares? International usenet is totally crappy already, much too much
noise, and too much traffic, also. And spam!! We hardly have _any_ spam
in at.*, and when, it's quickly cancelled by a cancelbot.

>  Not that I necessarily disagree with your observation, but your
>  judgment and dismissal of a language without relevant knowledge
>  would, in many people's minds, qualify you as a bigot. Whether
I'm not a bigot, since I have my very own opinion on Lisp, and I see both
its good and bad sides. I don't shout "[my favorite language] �ber alles".
What many here miss to understand that there's always the right tool for
the right job, and obviously Lisp can't be it in all disciplines, nor does
any other language (because no language is perfect, also see my signature :).

Regards,
Andreas Krennmair
-- 
We'll try to make different mistakes this time
  -- Larry Wall
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dvfbd$80i$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> > > And, damn, although I read this group for a few days,
> >  Note that you've been crossposting to many different newsgroups.
> Who cares?

You should. Or do you not care if you have unresolvable references
in your sentences, which make them completely incomprehensible? Or
did you just miss the point?


> International usenet is totally crappy already, much too much
> noise, and too much traffic, also. And spam!! We hardly have _any_ spam
> in at.*, and when, it's quickly cancelled by a cancelbot.

What are you babbling about? Are you confusing the usenet with a
particular view of it provided by your news server?


> >  Not that I necessarily disagree with your observation, but your
> >  judgment and dismissal of a language without relevant knowledge
> >  would, in many people's minds, qualify you as a bigot. Whether

> I'm not a bigot, since I have my very own opinion on Lisp, and I see both
> its good and bad sides.

Of course no one accused you of being a bigot. And every bigot
*does* have his/her own opinions, even though they may not be
particularly well-informed. Whether you see its good and bad
sides is irrelevant.


> I don't shout "[my favorite language] �ber alles".

Not that I read German, but who has?


> What many here miss to understand that there's always the right tool for
> the right job,

What you fail to observe is that, nearly everyone understands
it. The problem here is that you refuse to believe that other
people are disagreeing with you because you are wrong, not
because they are biased in any way. Heck, I don't even like
Lisp all that much (even if I prefer it to some languages that
I've been forced to learn and use).


> and obviously Lisp can't be it in all disciplines, nor does
> any other language (because no language is perfect, also see my signature :).

No one ever suggested that Lisp is perfect in any form. It's
quite strange that you would perceive other people's arguments
as being absolute. Or maybe not.


Dan.
From: Biep @ http://www.biep.org/
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9fil63$47n84$1@ID-63952.news.dfncis.de>
Andrew Bromage comments:
> Natural languages are morally neutral.

Jerzy Karczmarczuk wrote:
> What is "morally neutral"??  In natural languages you can LIE!

Matthias Blume <·····@research.bell-labs.com> writes:
> You can lie in most programming languages as well.  (In C it's called
"cast".)

"Lex Spoon" <···@cc.gatech.edu> wrote in message
···················@chaos.resnet.gatech.edu...
> And if you are implementing a billing program,
> you can have it print out any kind of bills that suit your fancy,
> regardless of what people actually owe you.

> By almost any meaning of "lie", you can do it in programming languages!

But isn't that what "morally neutral" implies?  You can speak the truth,
AND you can lie.
A language that allowed only one of these options would not be neutral..

--
Biep
Reply via http://www.biep.org
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddfv2$gl3$1@merrimack.Dartmouth.EDU>
Andreas Krennmair <···········@aon.at> wrote:

>The problem is that Lisp is in no way similar to a natural language. And 
>natural language can be understood easier than some functional, theoretical
>stuff with a unique concept like Lisp.

You've got at least three assumptions there, none of which
I agree with. I don't see why a programming language
should be similar to a natural language (the only sense in
which they are both languages is that they have some form
of grammar) and it takes quite a lot of arrogance to say
that a programming language is harder to understand than a
natural language or that the imperative paradigm is closer
to the natural way of describing things for humans than
the functional paradigm.

Also, Lisp is hardly some functional thereotical stuff
with a unique concept.


>Don't get me wrong, Lisp is a great
>language, and I personally find it quite exciting as four year Pascal and
>two year C/C++ programmer, but it's hardly usable for teaching, because it
>is so unique (well, you _could_ to functional programming in C, but it would
>be considered bad style).

What is *so* unique? Lisp is a label applied to a broad
family of languages, not a single language. That alone
takes away the uniqueness. Furthermore, the functional
paradigm is hardly confined to the Lisp family.


>I currently go to an Austrian school where mostly programming/CS/software
>engineering-related things are taught (it's for 5 years, and you start
>at an age of 14),

Ouch. This is probably a bad idea...


>> > Now look at it. Could a neophite with literally *zero*
>> > experience in programming computers read it and stand a chance of
>> > understanding what it does or how it does it?
>>  
>>  yes, yes 
>for my comment, see above. Lisp has hardly anything in common with natural
>languages. Or could you express "My girlfriend's name is Suzy and her age
>is 17" as readable as this in Lisp:
>$girlfriend{'name'} = "Suzy";
>$girlfriend{'age'} = 17;

Except that this is completely wrong. Your perl statements
are imperative, not descriptive or even declarative. At
least most languages in the Lisp family will let you write
something close to:

(with (she (my girlfriend))
  (be (of name she) "Suzy")
  (be (of age she) 17))

Of course what this is supposed to mean is complete up to
the programmer.


That's aside from the fact that you chose an arbitrary
sentence that isn't at all representative of natural
languages. For a better exercise, take a few paragraphs
from a book or better yet, record a phone conversation or
radio broadcasts and come up with a formal notation that
could be used to capture their meaning.



>Of course, this is not the best example, since Perl has a syntax that is
>not the optimum for beginners.

Perl's syntax is the closest thing I've seen to a natural
syntax in a programming language.



Dan.


-- 
Q:      What's a WASP's idea of open-mindedness?
A:      Dating a Canadian.
From: Jochen Schmidt
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddkfc$hsgmv$1@ID-22205.news.dfncis.de>
FM wrote:

> Andreas Krennmair <···········@aon.at> wrote:
> 
>>The problem is that Lisp is in no way similar to a natural language. And
>>natural language can be understood easier than some functional,
>>theoretical stuff with a unique concept like Lisp.
> 
> You've got at least three assumptions there, none of which
> I agree with. I don't see why a programming language
> should be similar to a natural language (the only sense in
> which they are both languages is that they have some form
> of grammar) and it takes quite a lot of arrogance to say
> that a programming language is harder to understand than a
> natural language or that the imperative paradigm is closer
> to the natural way of describing things for humans than
> the functional paradigm.
> 
> Also, Lisp is hardly some functional thereotical stuff
> with a unique concept.
> 
> 
>>Don't get me wrong, Lisp is a great
>>language, and I personally find it quite exciting as four year Pascal and
>>two year C/C++ programmer, but it's hardly usable for teaching, because it
>>is so unique (well, you _could_ to functional programming in C, but it
>>would be considered bad style).
> 
> What is *so* unique? Lisp is a label applied to a broad
> family of languages, not a single language. That alone
> takes away the uniqueness. Furthermore, the functional
> paradigm is hardly confined to the Lisp family.
> 
> 
>>I currently go to an Austrian school where mostly programming/CS/software
>>engineering-related things are taught (it's for 5 years, and you start
>>at an age of 14),
> 
> Ouch. This is probably a bad idea...
> 
> 
>>> > Now look at it. Could a neophite with literally *zero*
>>> > experience in programming computers read it and stand a chance of
>>> > understanding what it does or how it does it?
>>>  
>>>  yes, yes
>>for my comment, see above. Lisp has hardly anything in common with natural
>>languages. Or could you express "My girlfriend's name is Suzy and her age
>>is 17" as readable as this in Lisp:
>>$girlfriend{'name'} = "Suzy";
>>$girlfriend{'age'} = 17;
> 
> Except that this is completely wrong. Your perl statements
> are imperative, not descriptive or even declarative. At
> least most languages in the Lisp family will let you write
> something close to:
> 
> (with (she (my girlfriend))
>   (be (of name she) "Suzy")
>   (be (of age she) 17))

(setf (gethash "name" *girlfriend*) "Suzy"
       (gethash "age" *girlfirend*) 17)

Is more like the equivalent to the Perl code.

but I would do:

(defclass girlfriend ()
 ((name :accessor girlfriend-name :initarg :name)
  (age :accessor girlfirend-age :initarg :age)))

and then

(make-instance 'girlfriend :name "Suzy" :age 17)

Which is IMHO much more natural than the Perlcode.

> That's aside from the fact that you chose an arbitrary
> sentence that isn't at all representative of natural
> languages. For a better exercise, take a few paragraphs
> from a book or better yet, record a phone conversation or
> radio broadcasts and come up with a formal notation that
> could be used to capture their meaning.
> 
> 
> 
>>Of course, this is not the best example, since Perl has a syntax that is
>>not the optimum for beginners.
> 
> Perl's syntax is the closest thing I've seen to a natural
> syntax in a programming language.

?? Is that meant as a joke or what????

Regards,
Jochen
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9djql4$hch$1@merrimack.Dartmouth.EDU>
"Jochen Schmidt" <···@dataheaven.de> wrote:
> FM wrote:
>
> > Andreas Krennmair <···········@aon.at> wrote:

> >>Of course, this is not the best example, since Perl has a syntax that is
> >>not the optimum for beginners.
> >
> > Perl's syntax is the closest thing I've seen to a natural
> > syntax in a programming language.
>
> ?? Is that meant as a joke or what????

I was dead serious. Its syntax looks more like a result
of evolution than design and that's what distinguishes
*natural* from *artificial*.

Dan.

(Sorry about multiple posts, but I didn't notice the followup.)
From: Andreas Krennmair
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dh21o$i8crr$2@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
> >I currently go to an Austrian school where mostly programming/CS/software
> >engineering-related things are taught (it's for 5 years, and you start
> >at an age of 14),
>  
>  Ouch. This is probably a bad idea...
You mean the age? That's not a problem. This school actually educates Austria's
software engineering elite. The students who manage to do all 5 years are
usually very innovative. The most interesting project of the last few year was 
e.g. an operating system (search for SkyOS on google). This year's projects 
was an organization tool for a LAN party already tested in the real world (500 
players, the site has more than 100000 hits and they already start licensing 
the software to other LAN parties)

Regards,
Andreas Krennmair
-- 
MakeHacker:	.
	@echo "Just another make hacker."
From: FM
Subject: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dhtr9$59d$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> > >I currently go to an Austrian school where mostly programming/CS/software
> > >engineering-related things are taught (it's for 5 years, and you start
> > >at an age of 14),

> >  Ouch. This is probably a bad idea...

> You mean the age? That's not a problem.

Specialized education at that age, to be honest, seems militaristic.


> This school actually educates Austria's
> software engineering elite.

This was probably my principal objection. Why should you or anyone
decide whether you are, at the age of 14, part of the nation's
software engineering elite or not? What the heck does it mean anyway?
If you refuse the assignment, then somehow you aren't part of that
elite?

As much as it might be inevitable, this practice of limiting young
people's options and permanently dividing them into different classes
for the future before they are even close to being adult, frightens
my humanistic side. I'm not sure if I see any tangible benefit either.

Why not start admitting 8-year olds? They are surely capable.


> The students who manage to do all 5 years are
> usually very innovative.

I think it's an excellent way to kill that innovative side everyone
is endowed with.


> The most interesting project of the last few year was
> e.g. an operating system (search for SkyOS on google).

I get some extremely annoying shockwave nonsense that says SkyOS is
the most powerful OS on earth with no other content.


> This year's projects
> was an organization tool for a LAN party already tested in the real world (500
> players, the site has more than 100000 hits and they already start licensing
> the software to other LAN parties)

I don't know what this means. What tool do you need to organize a
LAN party or whatever that is?


Dan.
From: raj
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <uh9qftsg7nohpaso8q4p12a8a6kit3v3g7@4ax.com>
>> > >I currently go to an Austrian school where mostly programming/CS/software
>> > >engineering-related things are taught (it's for 5 years, and you start
>> > >at an age of 14),

>> >  Ouch. This is probably a bad idea...
>
>> You mean the age? That's not a problem.
>> This school actually educates Austria's
>> software engineering elite.
>
>Specialized education at that age, to be honest, seems militaristic.

That is probably "not a problem" either.
Remember, you are talking about the educational system of a country
that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
Schicklgruber.
From: Andreas Krennmair
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dji16$irbvv$2@ID-37382.news.dfncis.de>
raj <········@optushome.com.au> wrote:
>  Remember, you are talking about the educational system of a country
>  that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
>  Schicklgruber.
You are so stupid. You think because there are a few "bad" guys from this
country, every Austrian must be evil. When you've heard of J�rg Haider,
did you also hear about the resistance against him inside of Austria? There
was quite a lot going on, and his party, the FP�, lost recent votes in
Vienna. 

Andreas Krennmair
-- 
"This struct already has a perfectly good definition."
  -- Apple MPW C Compiler
From: raj
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <m6qrftok534ai037991mf5316ads309usd@4ax.com>
On 12 May 2001 14:40:39 GMT, ···········@aon.at (Andreas Krennmair)
wrote:

>raj <········@optushome.com.au> wrote:
>>  Remember, you are talking about the educational system of a country
>>  that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
>>  Schicklgruber.
>You are so stupid. You think because there are a few "bad" guys from this
>country, every Austrian must be evil. 

Where did I say that _any_Austrian is evil ?

I merely pointed out that Adolf  Schicklgruber , Waldheim, Haider and
a few others with rather conservative politics were educated in
Austria.
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dlgj3$ies$1@bird.wu-wien.ac.at>
In comp.lang.functional raj <········@optushome.com.au> wrote:
> On 12 May 2001 14:40:39 GMT, ···········@aon.at (Andreas Krennmair)
> wrote:

>>raj <········@optushome.com.au> wrote:
>>>  Remember, you are talking about the educational system of a country
>>>  that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
>>>  Schicklgruber.
>>You are so stupid. You think because there are a few "bad" guys from this
>>country, every Austrian must be evil. 

> Where did I say that _any_Austrian is evil ?

You hadn't said so, but your statement clearly implies that you think it's
the fault of our educational system that there are politically doubtful
Austrians and that you agreed with the previous article, which stated
that it was a militaristic aspect of an educational system if pupils _can_
(they need not!) start to specialize in education at the age of 14. As if
this were any different from educational systems in other countries! Or
do you want to tell us that all Australian pupils get humanistic education
in history, arts and literature only until they are 18?

> I merely pointed out that Adolf  Schicklgruber , Waldheim, Haider and
> a few others with rather conservative politics were educated in Austria.

No, Haider, for example, had also studied in Harvard for some time. Does
this make Harvard the center of right-winged politicians? Haider's parents
were convinced Nazis so there is an easy explanation where his political
bias comes from. You don't need to bash the educational system of a
whole country, even more so if you obviously don't know much about it.

Regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Mark Wotton
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dloc8$d4p$1@spacebar.ucc.usyd.edu.au>
On Sun, 13 May 2001 08:28:19 +0000 (UTC), Markus Mottl posted:
>
>You hadn't said so, but your statement clearly implies that you think it's
>the fault of our educational system that there are politically doubtful
>Austrians and that you agreed with the previous article, which stated
>that it was a militaristic aspect of an educational system if pupils _can_
>(they need not!) start to specialize in education at the age of 14. As if
>this were any different from educational systems in other countries! Or
>do you want to tell us that all Australian pupils get humanistic education
>in history, arts and literature only until they are 18?

Well, yes, actually. At least when I went through, doing at least one
humanities subject was compulsory all the way through to year 12, which 
happens to be the year I turned 18. This doesn't include the study of
literature and English, which is also compulsory.

This should not be taken as an indictment on Austria's educational system:
it's just a data point.

mrak
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dlt85$msa$1@bird.wu-wien.ac.at>
In comp.lang.functional Mark Wotton <·······@hons.cs.usyd.edu.au> wrote:
> Well, yes, actually. At least when I went through, doing at least one
> humanities subject was compulsory all the way through to year 12,
> which happens to be the year I turned 18. This doesn't include the
> study of literature and English, which is also compulsory.

> This should not be taken as an indictment on Austria's educational system:
> it's just a data point.

You are extrapolating from your experience to the one of others. In
an age where you still sit in school, others usually already have to
work as apprentice so we are already only talking about a fraction of
the population.

Anyway, in Austria most part of the pupils who seek higher education
go to grammar schools rather than the professionally oriented higher
schools as Andreas does (is it really wrong to give people this option?).

E.g. in my school fine arts and music were both compulsory until year 10
(age 16), then you had to choose one of them. History, geography, German,
English and either Latin or French were compulsory up to the last year,
and this was a school that specialized in _nature science_. Humanist
grammar schools usually teach Latin, old Greek, French, English and
German as compulsory subjects nearly all the way through and usually
also encourage pupils to take another language. Of course, the other
subjects aren't neglected either...

So really, better inform yourself about educational systems of other
countries before making unjustified claims. In contrast to many other
systems, this is the standard of our _public_ schools where everybody
can go to irrespective of social status and income.

Regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Mark Wotton
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dlvq3$sbf$1@spacebar.ucc.usyd.edu.au>
On Sun, 13 May 2001 12:04:21 +0000 (UTC), Markus Mottl posted:
>In comp.lang.functional Mark Wotton <·······@hons.cs.usyd.edu.au> wrote:
>> Well, yes, actually. At least when I went through, doing at least one
>> humanities subject was compulsory all the way through to year 12,
>> which happens to be the year I turned 18. This doesn't include the
>> study of literature and English, which is also compulsory.
>
>> This should not be taken as an indictment on Austria's educational system:
>> it's just a data point.
>
>You are extrapolating from your experience to the one of others. In
>an age where you still sit in school, others usually already have to
>work as apprentice so we are already only talking about a fraction of
>the population.

Not in Australia. We have universal free public schooling: I'd be very
much surprised if less than 80% of current students completed 13 years of
schooling. (My school is probably not the best example, as only 2 people
out of 180 in the cohort did not go through to year 12.)

>Anyway, in Austria most part of the pupils who seek higher education
>go to grammar schools rather than the professionally oriented higher
>schools as Andreas does (is it really wrong to give people this option?).

I drew no moral comparisons.

>So really, better inform yourself about educational systems of other
>countries before making unjustified claims. In contrast to many other
>systems, this is the standard of our _public_ schools where everybody
>can go to irrespective of social status and income.

I was talking about the standard High School certificate. I checked the
website (http://www.boardofstudies.nsw.edu.au/) and a maximum of 6 out of
10 units can be from the sciences. This is the standard for *all* schools,
public or private, in my state (NSW): other states are similar.

mrak
From: Daniel C. Wang
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <r8twv7lh00t.fsf@vista.CS.Princeton.EDU>
This thread is off topic... kill it please....
From: FM
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dn0o9$4ps$1@merrimack.Dartmouth.EDU>
"Markus Mottl" <·····@miss.wu-wien.ac.at> wrote:

> that you agreed with the previous article, which stated
> that it was a militaristic aspect of an educational system if pupils _can_
> (they need not!) start to specialize in education at the age of 14. As if
> this were any different from educational systems in other countries!

Note the misrepresentation. The qualities of a certain choice do
not necessarily reflect the qualities of a system that allows such
a choice. I don't know much about Austria's educational system and
I did not make a single comment on it.


Dan.
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dn69d$355$1@bird.wu-wien.ac.at>
In comp.lang.functional FM <·····@dartmouth.edu> wrote:
> "Markus Mottl" <·····@miss.wu-wien.ac.at> wrote:
>> that you agreed with the previous article, which stated
>> that it was a militaristic aspect of an educational system if pupils _can_
>> (they need not!) start to specialize in education at the age of 14. As if
>> this were any different from educational systems in other countries!
> Note the misrepresentation. The qualities of a certain choice do
> not necessarily reflect the qualities of a system that allows such
> a choice. I don't know much about Austria's educational system and
> I did not make a single comment on it.

I know that you didn't comment on it on a general scale, but somebody
else generalized your statement. I was critizing his article, not yours...

Regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Andrew Cooke
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <3AFD45F1.6E381833@andrewcooke.free-online.co.uk>
That's an impressively small-minded post from Australia.  Following this
thread I had assumed - from the arrogant assumption that the poster's
cultural intuition was sufficient to dismiss the education system in
another country - that the posts were from the US.  But no...
Congratulations!

Andrew


raj wrote:
> 
> >> > >I currently go to an Austrian school where mostly programming/CS/software
> >> > >engineering-related things are taught (it's for 5 years, and you start
> >> > >at an age of 14),
> 
> >> >  Ouch. This is probably a bad idea...
> >
> >> You mean the age? That's not a problem.
> >> This school actually educates Austria's
> >> software engineering elite.
> >
> >Specialized education at that age, to be honest, seems militaristic.
> 
> That is probably "not a problem" either.
> Remember, you are talking about the educational system of a country
> that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
> Schicklgruber.
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9djqqq$iiu$1@merrimack.Dartmouth.EDU>
"Andrew Cooke" <······@andrewcooke.free-online.co.uk> wrote:
>
> That's an impressively small-minded post from Australia.  Following this
> thread I had assumed - from the arrogant assumption that the poster's
> cultural intuition was sufficient to dismiss the education system in
> another country - that the posts were from the US.  But no...
> Congratulations!

May I arrogantly assume that it was your arrogant assumption that led
to the above conclusion that there was such an arrogant assumption? Or
was it your cultural intuition?

In any case, I didn't mean to dismiss Austria's education system with
my cultural intuition. The original poster (Andreas) somehow mentioned
his school, seemingly out of context, which led to a separate
discussion as to whether it is desirable.


Dan.
From: Marco Antoniotti
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <y6cn18is76x.fsf@octagon.mrl.nyu.edu>
raj <········@optushome.com.au> writes:

> >> > >I currently go to an Austrian school where mostly programming/CS/software
> >> > >engineering-related things are taught (it's for 5 years, and you start
> >> > >at an age of 14),
> 
> >> >  Ouch. This is probably a bad idea...
> >
> >> You mean the age? That's not a problem.
> >> This school actually educates Austria's
> >> software engineering elite.
> >
> >Specialized education at that age, to be honest, seems militaristic.
> 
> That is probably "not a problem" either.
> Remember, you are talking about the educational system of a country
> that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
> Schicklgruber.

Very well.  This has gone on long enough and I now see the signs of
"thread decay" getting in.

Please stop all cross postings.

regards

-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group        tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA                 http://bioinformatics.cat.nyu.edu
                    "Hello New York! We'll do what we can!"
                           Bill Murray in `Ghostbusters'.
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dke0c$87s$1@bird.wu-wien.ac.at>
In comp.lang.functional raj <········@optushome.com.au> wrote:
>>Specialized education at that age, to be honest, seems militaristic.

> That is probably "not a problem" either.
> Remember, you are talking about the educational system of a country
> that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
> Schicklgruber.

Although this is completely off topic, I still feel that it's necessary
to answer this statement.

First of all, there is nothing militaristic about the Austrian school
system. In fact, it was mainly shaped by the government of the social
democrats. E.g. in contrast to some other countries, there are no
competitive elements in it like e.g. having students compete for a place
at good schools. Until this year, access to universities was _free_
for everybody. Contrast this to most other countries.

Secondly, "good" education does not necessarily make "good" people. If
it only were so easy!

What concerns Adolf "Schicklgruber" (why not name the devil: it's
Hitler), I happened to go to the same school where he had also studied.
In contrast to him I completed the eight years there instead of being
thrown out after one. So no, there is no reason to think that his
"success" was encouraged by the school system of his time and definitely
even less by our current one.

Just for your interest, the history of and around World War II is a major
topic in (compulsory!) Austrian history classes. The crimes, which were
also supported to a quite significant part by Austrians, are covered
there in accurate detail. All classes had to see the concentration camp
in Mauthausen, a rather shocking experience for the average teenager.
I can only hope that your country educates its children equally well
to be watchful citizens, because I am absolutely convinced that what
happened here can otherwise happen anywhere at anytime.

If you really blame the Austrian school system for producing people
like above, why don't you also count other people educated by it,
like e.g. Ludwig Wittgenstein, Kurt Goedel, Ludwig Boltzmann, Erwin
Schroedinger, Wolfgang Pauli or (more recent - around the age of Haider)
Anton Zeilinger?

What concerns our current political situation, I know that there is
nothing to be proud of. It might be sufficient for you to know that alone
in our capital nearly 200,000 people demonstrated against the forming
of this government (the people are still alive) and that it was only
due to a coalition that the extreme right could enter it (the largest
party is still the social democrats, who are in opposition).

Also note that the Austrian law (which hasn't changed in this respect)
disallows national socialist activities. For example, people who
publically deny the existence of concentration camps can be sentenced to
life-long prison! I doubt that your country has only closely as strict
anti-nazi laws (if any at all).  This also means that there is a hard
limit to which the extreme right can go without being forbidden due
to our constitutional laws (government does _not_ have the sufficient
majority in parliament for changing the constitution and would definitely
not dare to touch this specific issue).

Even if I am, as many others, extremely dissatisfied being governed
by a right-winged government, it was a democratic process that lead
to this result. If democracy is a value as such, we must accept its
outcomes. Everything else would just be another form of totalitarianism.
I don't think that the extreme right will get another chance to enter
government after the next elections. Their populist style has been
demasked by their sheer incompetence (e.g. they had to exchange half of
their ministers within not even a year), and they had severe losses in
_all_ provincial elections so far.

Last but not least, I'd be very, very happy if I were not constantly
confronted with the name "Haider", especially from foreign sources. The
more he is mentioned, the more power he gets, because some people say
"Look, he is not ignored on the international scene so he can defend
our interests.".  In contrast to popular belief in other countries,
Haider is an _unimportant_ Austrian politician of a small (a few hundred
thousand citizens) province. The mayor of our capitol is responsible for
more than three times as many people. I don't think you know his name. (He
is a social democrat, by the way, and his party has the absolute majority
in this city).

I hope that this clarifies some things about Austria and will make people
think twice before making wrong generalizing claims. It's exactly this
kind of defamatory statements that cause the kind of evil that you
believe to be opposing.

Regards,
Markus Mottl

P.S.:  My origin is neither Austrian nor German so you cannot take my opposition
       against your statement as being caused by nationalist feelings.

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Jorn W Janneck
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <oCmL6.6392$%i7.6222366@news1.rdc1.sfba.home.com>
"raj" <········@optushome.com.au> wrote in message
·······································@4ax.com...
> >> > >I currently go to an Austrian school where mostly
programming/CS/software
> >> > >engineering-related things are taught (it's for 5 years, and you
start
> >> > >at an age of 14),
>
> >> >  Ouch. This is probably a bad idea...
> >
> >> You mean the age? That's not a problem.
> >> This school actually educates Austria's
> >> software engineering elite.
> >
> >Specialized education at that age, to be honest, seems militaristic.
>
> That is probably "not a problem" either.
> Remember, you are talking about the educational system of a country
> that produced Joerg Haider , Kurt Waldheim and most (in)famously Adolf
> Schicklgruber.

what good does it do to remember this, precisely? it seems that this tells
me as much about the austrian educational system as, say, an account of the
australian history with, for instance, a special focus on the fate of the
indigenous population after the arrival of the british tells me about what
goes on in the schools down under. i.e., nothing.

so, care to elaborate?

best regards,

-- j
From: raj
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <7iurft0hbh4ilp040t9vob6bmhbfsavgkb@4ax.com>
>what good does it do to remember this, precisely? it seems that this tells
>me as much about the austrian educational system as, say, an account of the
>australian history with, for instance, a special focus on the fate of the
>indigenous population after the arrival of the british tells me about what
>goes on in the schools down under. i.e., nothing.

Actually the attempted genocide of the Aboriginal population of
Australia by the British is still a hot topic here. Australia Day (
January 26th) , is called Invasion Day by the native Australians.

Pauline Hanson, our home grown version of Haider is well known for her
anti-Aboriginal stance ( and anti Chinese and anti-Asian and ...)

Remembering is ultimately the only defence we have.
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dliea$ies$2@bird.wu-wien.ac.at>
In comp.lang.functional raj <········@optushome.com.au> wrote:
>>what good does it do to remember this, precisely? it seems that this tells
>>me as much about the austrian educational system as, say, an account of the
>>australian history with, for instance, a special focus on the fate of the
>>indigenous population after the arrival of the british tells me about what
>>goes on in the schools down under. i.e., nothing.

> Remembering is ultimately the only defence we have.

Remembering is good, and it is understandable that the international
community is especially watchful about Austria, though this is rationally
a rather weakly founded attitude given the unimportance of this small
country in political and economical terms. There is no scientific basis
for believing that Austria is any more likely to suffer a political turn
to the extreme right than most other countries (better watch elections
in Italy today and pray that Berlusconi, who is cooperating with the
neo-fascists, doesn't make it into government).

The example of Belgium, the country that most strongly supported the
sanctions (*) against the Austrian government, shows how easy it is to see
the splinter in someone else's eye but not the log in one's own. Whereas
their foreign minister participated in heavy criticism against Austria,
their minister of internal affairs was a member of an SS-organisation
over the last 25 (!) years as was recently discovered (he was fired,
he didn't go voluntarily). I don't want to know what would have happened
if Austria had dared to proclaim such ministers in crucial positions. We
might have been nuked.

Regards,
Markus Mottl

  (*) - I was intially also in favour of the international sanctions
        against the formation of our current government until it became
        evident that the effect was counter-productive: over time part of
        the population felt that those sanctions were addressed against
        them rather than the government and therefore took a defensive
        position that supported the government.

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Karel Thönissen
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <3AFE724C.31E70509@hello.nl>
Markus Mottl schreef:

> The example of Belgium, the country that most strongly supported the
> sanctions (*) against the Austrian government, shows how easy it is to see
> the splinter in someone else's eye but not the log in one's own. Whereas

This minister was fired within a week, so the similarity with many of
the countries mentioned earlier is rather weak: they did as they
preached.

> their foreign minister participated in heavy criticism against Austria,
> their minister of internal affairs was a member of an SS-organisation

Bollocks. The minister of foreign affairs was the federal minister. The
person that you call minister of internal affairs was not a federal
minister: he was minister of internal affairs for Flanders. Note that he
did not survive the political debate within the Flemish parliament.

> over the last 25 (!) years as was recently discovered (he was fired,
> he didn't go voluntarily). I don't want to know what would have happened
> if Austria had dared to proclaim such ministers in crucial positions. We
> might have been nuked.


-- 

Groeten, Karel Th�nissen

Hello Technologies develops high-integrity software for complex systems
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dlvo3$msa$2@bird.wu-wien.ac.at>
In comp.lang.functional Karel Th�nissen <··········@hello.nl> wrote:
> This minister was fired within a week, so the similarity with many of
> the countries mentioned earlier is rather weak: they did as they
> preached.

So what? Our president refused the appointments of two ministers and
this "only", because they had made statements with a racist touch -
something which is not too uncommon among foreign politicians of even
"politically correct" parties either. Other ministers were fired out of
different reasons, none of them being related to racist or extremist
activities. I think that our democratic institutions still work fine
(which doesn't mean that I am happy about our current government).

> Bollocks. The minister of foreign affairs was the federal minister. The
> person that you call minister of internal affairs was not a federal
> minister: he was minister of internal affairs for Flanders. Note that
> he did not survive the political debate within the Flemish parliament.

Right, but this just makes the situation even more interesting: how comes
that a country (Belgium) that attempts to stand as one has different
governments for, ahem, different ethnic groups (regions)? Does the
term "Vlaams Blok" ring a bell (and Sauwens isn't even member of this
extreme-right party so better don't ask how extremist those are!)? Have
you ever heard of ethnic clashes in Austria with Slovenian or Hungarian
minorities? I haven't. Just to make sure, I am not bashing Belgium
as a whole.  It's only double moral if people of a country that has
sufficient problems with the extreme right point with a finger and say
"All of you ...".

In any case, it doesn't make things any better that Sauwens does not
represent the whole of Belgium. Even if it was "only" Flanders, he still
had enough representative power to be internationally known (e.g. I
remember that he once visited Austria to establish economic connections).

Again: what is so bad about Austria (or so good about other countries)
that even some people of technically oriented newgroups can't resist the
temptation of bashing it as a whole (rather than specific aspects)? I
have never given my vote to any right-winged party so how do I deserve
reading criticism that is general enough to cover even me? Don't you
realize that this kind of generalizing, simple-minded criticism is
exactly what right-winged politicians need to gain votes?

Regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Karel Thönissen
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <3AFE9A33.951957B4@hello.nl>
Markus Mottl schreef:
> 
> In comp.lang.functional Karel Th�nissen <··········@hello.nl> wrote:
> > This minister was fired within a week, so the similarity with many of
> > the countries mentioned earlier is rather weak: they did as they
> > preached.
> 
> So what? Our president refused the appointments of two ministers and
> this "only", because they had made statements with a racist touch -
> something which is not too uncommon among foreign politicians of even
> "politically correct" parties either. Other ministers were fired out of
> different reasons, none of them being related to racist or extremist
> activities. I think that our democratic institutions still work fine
> (which doesn't mean that I am happy about our current government).
> 
> > Bollocks. The minister of foreign affairs was the federal minister. The
> > person that you call minister of internal affairs was not a federal
> > minister: he was minister of internal affairs for Flanders. Note that
> > he did not survive the political debate within the Flemish parliament.
> 
> Right, but this just makes the situation even more interesting: how comes
> that a country (Belgium) that attempts to stand as one has different
> governments for, ahem, different ethnic groups (regions)? Does the
> term "Vlaams Blok" ring a bell (and Sauwens isn't even member of this
> extreme-right party so better don't ask how extremist those are!)? Have
> you ever heard of ethnic clashes in Austria with Slovenian or Hungarian
> minorities? I haven't. Just to make sure, I am not bashing Belgium
> as a whole.  It's only double moral if people of a country that has
> sufficient problems with the extreme right point with a finger and say
> "All of you ...".
> 
> In any case, it doesn't make things any better that Sauwens does not
> represent the whole of Belgium. Even if it was "only" Flanders, he still
> had enough representative power to be internationally known (e.g. I
> remember that he once visited Austria to establish economic connections).
> 
> Again: what is so bad about Austria (or so good about other countries)
> that even some people of technically oriented newgroups can't resist the
> temptation of bashing it as a whole (rather than specific aspects)? I
> have never given my vote to any right-winged party so how do I deserve
> reading criticism that is general enough to cover even me? Don't you
> realize that this kind of generalizing, simple-minded criticism is
> exactly what right-winged politicians need to gain votes?

I must assume that this is a general remark, because I personally did
not bash Austria, not now in this discussion here, nor a year ago when
the debate ran, exactly for the reasons mentioned by you. I just wanted
to point out that the Belgian situation was different.

-- 

Groeten, Karel Th�nissen

Hello Technologies develops high-integrity software for complex systems
From: Andrew Bromage
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dll18$tft@goaway.cc.monash.edu.au>
G'day all.

raj <········@optushome.com.au> writes:

>Pauline Hanson, our home grown version of Haider is well known for her
>anti-Aboriginal stance ( and anti Chinese and anti-Asian and ...)

Talking about Pauline Hanson in a thread about education is just WRONG.

Followups to /dev/null.

Cheers,
Andrew Bromage
From: Jorn W Janneck
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <KHLL6.8591$%i7.8407222@news1.rdc1.sfba.home.com>
"raj" <········@optushome.com.au> wrote in message
·······································@4ax.com...
> >what good does it do to remember this, precisely? it seems that this
tells
> >me as much about the austrian educational system as, say, an account of
the
> >australian history with, for instance, a special focus on the fate of the
> >indigenous population after the arrival of the british tells me about
what
> >goes on in the schools down under. i.e., nothing.
>
> Actually the attempted genocide of the Aboriginal population of
> Australia by the British is still a hot topic here. Australia Day (
> January 26th) , is called Invasion Day by the native Australians.
>
> Pauline Hanson, our home grown version of Haider is well known for her
> anti-Aboriginal stance ( and anti Chinese and anti-Asian and ...)
>
> Remembering is ultimately the only defence we have.

nice tactics. but i had specifically challenged your attempt to make a
connection between the characteristics of a country's (austria's,
specifically) educational system and a short list of people of questionable
character or at least somewhat, uhum, controversial political views, that
presumably went through it. i agree with you on the value of memory in
general.

maybe you just apologize to the austrians for this somewhat thoughtless
remark of yours, i am sure you did mean no harm.

best regards,

-- j
From: Reini Urban
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dsc20$op3$2@fstgss02.tu-graz.ac.at>
In comp.lang.lisp raj <········@optushome.com.au> wrote:
:>> > >I currently go to an Austrian school where mostly programming/CS/software
:>> > >engineering-related things are taught (it's for 5 years, and you start
:>> > >at an age of 14),

:>> >  Ouch. This is probably a bad idea...
:>> You mean the age? That's not a problem.
:>> This school actually educates Austria's
:>> software engineering elite.
:>
:>Specialized education at that age, to be honest, seems militaristic.

: That is probably "not a problem" either.
: Remember, you are talking about the educational system of a country
: that produced Joerg Haider, Kurt Waldheim and most (in)famously Adolf
: Schicklgruber.

he was talking about an elite school that cannot mixed with a country wide 
"system". the brtish educational system is said to be more "militaristic" 
than the austrian. so what? pure nonsense.

more and more ground school pupils do learn programming in a lot of 
civilized countries. and to my knowledge most of them start with pascal
nowadays. before that it was basic. I started with basic at 10 in 
an ordinary school, no elite. my brother in law runs a ground school with a
lot of computers, and some of the kids (8-12 years) do like programming. 
(VB, I guess). 
-- 
Reini Urban
http://xarch.tu-graz.ac.at/acadwiki/AutoLispFaq
From: FM
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9dsdul$4ih$1@merrimack.Dartmouth.EDU>
"Reini Urban" <······@x-ray.at> wrote:

> more and more ground school pupils do learn programming in a lot of
> civilized countries. and to my knowledge most of them start with pascal
> nowadays. before that it was basic. I started with basic at 10 in
> an ordinary school, no elite. my brother in law runs a ground school with a
> lot of computers, and some of the kids (8-12 years) do like programming.
> (VB, I guess).

Wow, do you train 8-12 year olds to become pilots? <g>

And to make the point clear, no one ever suggested that there's
something militaristic about teaching programming early. I don't
see a clear benefit either, but YMMV.


Dan.
From: Andreas Krennmair
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9djhj4$irbvv$1@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
> > You mean the age? That's not a problem.
>  
>  Specialized education at that age, to be honest, seems militaristic.
Nobody is forced to go to that school. If somebody's not talented, he will
leave school after one year anyway.

>  As much as it might be inevitable, this practice of limiting young
>  people's options and permanently dividing them into different classes
>  for the future before they are even close to being adult, frightens
>  my humanistic side. I'm not sure if I see any tangible benefit either.
The other side is that you get a great job already at an age of 19 to 20
(depends on your sex: young men have to go to the Austrian army for 8 months)
with a salary of at least ATS 30000 (EUR 2180). And those who are in the
higher classes are very motivated because everybody likes the stuff they're
doing.

>  Why not start admitting 8-year olds? They are surely capable.
You don't have a general comprehensive education at an age of 8, but you have
one at an age of 14. That's what mostly left out on this school, only a little
bit of geography, chemistry and history, no arts subject or something, and
quite a lot of physics and maths.

> > The most interesting project of the last few year was
> > e.g. an operating system (search for SkyOS on google).
>  
>  I get some extremely annoying shockwave nonsense that says SkyOS is
>  the most powerful OS on earth with no other content.
Indeed, it isn't, but it's a proof a concept, and a really great achievement 
for that age, isn't it?

>  I don't know what this means. What tool do you need to organize a
>  LAN party or whatever that is?
On a LAN party young people usually meet to play multiplayer games (first
person shooter, strategy, whatever). You can do that privately, with say
10 people, or you can organize a big LAN party for 500 players.
Therefore you need a system to
 - publish news
 - give a possibility to let people communicate (messageboard, personal
   messaging system) over the web
 - organize catering on the LAN party
 - do votes/polls
 - organize which player gets which seat
 - manage all tournaments
 - etc.

Just have a look at http://www.dagor.net/ (unfortunately it's in German).

Best regards,
Andreas Krennmair
-- 
C.O.B.O.L - Completely Obsolete Boring Old Language.
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dk70r$4gv$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> > > You mean the age? That's not a problem.
> >
> >  Specialized education at that age, to be honest, seems militaristic.
> Nobody is forced to go to that school.

That's a questionable assumption. Kids are forced into a lot of
things without explicit coercion.


> If somebody's not talented, he will
> leave school after one year anyway.

I love the logic there. Would the kid feel the same about himself
when he leaves the school for whatever reason? It's not as though
there's a clear line between the "talented" and the "untalented"
either.


> >  As much as it might be inevitable, this practice of limiting young
> >  people's options and permanently dividing them into different classes
> >  for the future before they are even close to being adult, frightens
> >  my humanistic side. I'm not sure if I see any tangible benefit either.

> The other side is that you get a great job already at an age of 19 to 20
> (depends on your sex: young men have to go to the Austrian army for 8 months)
> with a salary of at least ATS 30000 (EUR 2180).

Whether this is a good thing, for the society or the individual, is
arguable. It's easy to get carried away with the notion of doing
things earlier than others could, but it's much harder to justify
the benefit.


> And those who are in the
> higher classes are very motivated because everybody likes the stuff they're
> doing.

I would think they would be just as motivated if they were studying
the same stuff on their own.


> >  Why not start admitting 8-year olds? They are surely capable.
> You don't have a general comprehensive education at an age of 8, but you have
> one at an age of 14. That's what mostly left out on this school, only a little
> bit of geography, chemistry and history, no arts subject or something, and
> quite a lot of physics and maths.

I don't think you'd have "general comprehensive education" by age
14 either. I don't know about other people, but I had been hardly
taught anything in school by 14 beyond a few misrepresented facts.
Provided that you need to learn two kinds of subjects, one that you
are already good at and one that you aren't, it would probably be
better to learn the former by yourself and the latter in an
organized setting, than the other way around.


> > > The most interesting project of the last few year was
> > > e.g. an operating system (search for SkyOS on google).
> >
> >  I get some extremely annoying shockwave nonsense that says SkyOS is
> >  the most powerful OS on earth with no other content.
> Indeed, it isn't, but it's a proof a concept, and a really great achievement
> for that age, isn't it?

A shockwave page is a great achievement? <g>

Frankly, writing a primitive OS (that's what I would have to assume)
is a great exercise, not an achievement of any kind. Age is hardly a
factor.

I'm not sure what you're trying to show with these examples either.
If you put together a group of smart kids in a school, obviously
some of them will do interesting, even impressive, things. But that
happens regardless of the setting.

I happen to feel that the world needs more interdisciplinary types,
those who could cross the boundaries and challenge the establishment.


Dan.
From: Andreas Krennmair
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dkbiq$j2ver$1@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
> > If somebody's not talented, he will
> > leave school after one year anyway.
>  
>  I love the logic there. Would the kid feel the same about himself
>  when he leaves the school for whatever reason? It's not as though
>  there's a clear line between the "talented" and the "untalented"
>  either.
The line IS drawn clearly within the first year. Those who get it, have good
marks on the tests in subjects like programming and "basics of computer
science", and those who don't, will fail in at least 2 subjects (programming,
basics of computer science, sometimes also accounting, and quite often
maths).

> > And those who are in the
> > higher classes are very motivated because everybody likes the stuff they're
> > doing.
>  
>  I would think they would be just as motivated if they were studying
>  the same stuff on their own.
Of course they would, but in school they're supported and trained by
professionals, either having several years of experience in the industry or
being respectable computer science professors.

>  Frankly, writing a primitive OS (that's what I would have to assume)
>  is a great exercise, not an achievement of any kind. Age is hardly a
>  factor.
Well, I wouldn't call it too primitive, since it has some built-in layer
that makes in binary compatible with Linux. AFAIK, you can also easily
replace the scheduler, and they already have a quite good scheduler for
hard realtime applications.

Regards,
Andreas Krennmair
-- 
Users should be more Linux-friendly
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dkicf$5c$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> > > If somebody's not talented, he will
> > > leave school after one year anyway.
> >
> >  I love the logic there. Would the kid feel the same about himself
> >  when he leaves the school for whatever reason? It's not as though
> >  there's a clear line between the "talented" and the "untalented"
> >  either.
> The line IS drawn clearly within the first year. Those who get it, have good
> marks on the tests in subjects like programming and "basics of computer
> science", and those who don't, will fail in at least 2 subjects (programming,
> basics of computer science, sometimes also accounting, and quite often
> maths).

Lovely assertion. How do you know? Even worse than using test
scores or grades to evaluate kids is putting blind trust in
evaluations based on those measures. This is only tangentially
related to the original point but if you think you can judge
14 year-olds purely based on their grades, well, I hope you
don't become a teacher.


> > > And those who are in the
> > > higher classes are very motivated because everybody likes the stuff they're
> > > doing.
> >
> >  I would think they would be just as motivated if they were studying
> >  the same stuff on their own.
> Of course they would, but in school they're supported and trained by
> professionals, either having several years of experience in the industry or
> being respectable computer science professors.

I think the better test of someone's talent and motivation is
whether one needs this type of support and/or training.


> >  Frankly, writing a primitive OS (that's what I would have to assume)
> >  is a great exercise, not an achievement of any kind. Age is hardly a
> >  factor.
> Well, I wouldn't call it too primitive, since it has some built-in layer
> that makes in binary compatible with Linux. AFAIK, you can also easily
> replace the scheduler, and they already have a quite good scheduler for
> hard realtime applications.

Perhaps I should've said "trivial" or "of no theoretical or
practical significance." In any case, there's absolutely nothing
informative about this OS on the web as far as I could find,
except a short description on TUNES.org, which basically says the
system is a hack, but an impressive one in terms of the amount of
work put into it.


Dan.
From: Andreas Krennmair
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dlf33$i3ggi$1@ID-37382.news.dfncis.de>
FM <·····@dartmouth.edu> wrote:
>  Lovely assertion. How do you know? Even worse than using test
>  scores or grades to evaluate kids is putting blind trust in
>  evaluations based on those measures. This is only tangentially
That's experience. The school now exists since the early 80's, and many of
the teachers already teach there for almost the same time.

>  related to the original point but if you think you can judge
>  14 year-olds purely based on their grades, well, I hope you
>  don't become a teacher.
How else do you want to, if not on their grades? That would be interesting.
And don't think measuring by social competence comes too short.


> > Of course they would, but in school they're supported and trained by
> > professionals, either having several years of experience in the industry or
> > being respectable computer science professors.
>  
>  I think the better test of someone's talent and motivation is
>  whether one needs this type of support and/or training.
How do you want to teach yourself project development? You obviously need
a class. The whole thing isn't that easy, so you need some advice, actually
a lot of advice. Because of that reason the subject "project development" is
taught for 3 years.

>  Perhaps I should've said "trivial" or "of no theoretical or
>  practical significance." In any case, there's absolutely nothing
Ahm, the students who did that _are_ now writing realtime applications for
a company. So it has practical significance: the students had the possibility
in school to concentrate on the things they were interested in by doing it
as a project. The result is SkyOS, and they've learned quite a lot, more than
what is taught in the subject "operating system", which is mostly based on
Tanenbaum's book (not the Minix book, the other, more theoretical one).

Andreas Krennmair
-- 
Geologists rock your world.
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dmscr$3cq$1@merrimack.Dartmouth.EDU>
"Andreas Krennmair" <···········@aon.at> wrote:
> FM <·····@dartmouth.edu> wrote:
> >  Lovely assertion. How do you know? Even worse than using test
> >  scores or grades to evaluate kids is putting blind trust in
> >  evaluations based on those measures. This is only tangentially
> That's experience. The school now exists since the early 80's, and many of
> the teachers already teach there for almost the same time.

Experience doesn't mean anything without a feedback mechanism,
which doesn't really exist for teachers, and insofar as it
exists, it's greatly flawed because of their influence.


> >  related to the original point but if you think you can judge
> >  14 year-olds purely based on their grades, well, I hope you
> >  don't become a teacher.

> How else do you want to, if not on their grades? That would be interesting.
> And don't think measuring by social competence comes too short.

Why do you have to judge 14-year olds? Let'em be what they are.
My objection was your logic that if someone has bad grades, then
he must not be talented. It is completely backward.


> > > Of course they would, but in school they're supported and trained by
> > > professionals, either having several years of experience in the industry or
> > > being respectable computer science professors.
> >
> >  I think the better test of someone's talent and motivation is
> >  whether one needs this type of support and/or training.
> How do you want to teach yourself project development? You obviously need
> a class. The whole thing isn't that easy, so you need some advice, actually
> a lot of advice. Because of that reason the subject "project development" is
> taught for 3 years.

Whether you find something easy or not is completely irrelevant.
If you mean certain specific techniques used to manage software
engineering projects, yes you can learn without a class. If you
mean some practical exposure to those techniques within a social
setting, yes you can learn without a class.


> >  Perhaps I should've said "trivial" or "of no theoretical or
> >  practical significance." In any case, there's absolutely nothing
> Ahm, the students who did that _are_ now writing realtime applications for
> a company. So it has practical significance: the students had the possibility
> in school to concentrate on the things they were interested in by doing it
> as a project. The result is SkyOS, and they've learned quite a lot, more than
> what is taught in the subject "operating system", which is mostly based on
> Tanenbaum's book (not the Minix book, the other, more theoretical one).

To paraphrase, it was a great *exercise*. I hope you knew what
I meant by *theoretical* or *practical* significance.


Dan.
From: Biep @ http://www.biep.org/
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9do8ad$imtpa$1@ID-63952.news.dfncis.de>
"FM" <·····@dartmouth.edu> wrote in message
·················@merrimack.Dartmouth.EDU...
> I don't think you'd have "general comprehensive education" by age
> 14 either. I don't know about other people, but I had been hardly
> taught anything in school by 14 beyond a few misrepresented facts.

Well, someone with a good education will probably know more "school stuff"
by the age of 14 than many others will learn at all.
What is lacking will be life experience, a sense of scientific humility,
and a good sense of what life is really about.

I don't think I have had a particularly good education, but at 14 I had a
good basis of the three Rs, basic grammar, a working knowledge of a few
foreign languages, roughly the same amount of historic and geographic
knowledge that I have now (those were out of vogue at that time), and
decent introductions in physics, math, and biology.  (Chemistry came
later.)  Culture history had been good, arts and crafts, like physical
education, simply didn't have my attention.  (Still, I was a decent
swimmer.)

My real problem with strong specialisation that early would be the lack of
insight in the goals of life.

Follow-ups set to misc.education

--
Biep
Reply via http://www.biep.org
From: thi
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <y16sni9r6rq.fsf@glug.org>
···········@aon.at (Andreas Krennmair) writes:

   Indeed, it isn't, but it's a proof a concept, and a really great
   achievement for that age, isn't it?

i tend to think evaluation of achievement (or anything) based on age is
somewhat old-fashioned.  this holds especially in software.

thi
From: Markus Mottl
Subject: Re: [OT] Software Engineering at 14
Date: 
Message-ID: <9djrcc$2be$1@bird.wu-wien.ac.at>
In comp.lang.functional FM <·····@dartmouth.edu> wrote:
>> You mean the age? That's not a problem.

> Specialized education at that age, to be honest, seems militaristic.

Nobody is forced to go to this type of school ("HTL") - it's up to their
choice. They can also continue with more general education in a grammar
school ("AHS"). Some people choose to limit their choices...

>> This school actually educates Austria's software engineering elite.

> This was probably my principal objection. Why should you or anyone
> decide whether you are, at the age of 14, part of the nation's
> software engineering elite or not? What the heck does it mean anyway?
> If you refuse the assignment, then somehow you aren't part of that
> elite?

That's probably what their teachers told them. Their education is
very practically oriented (both in the positive and negative sense of
the word), which also includes a significant amount of e.g. mainframe
assembler programming etc. In my opinion they specialize far too much
on irrelevant details of certain platforms or technologies (including
programming languages).

> As much as it might be inevitable, this practice of limiting young
> people's options and permanently dividing them into different classes
> for the future before they are even close to being adult, frightens
> my humanistic side. I'm not sure if I see any tangible benefit either.

I agree on this.

>> The students who manage to do all 5 years are
>> usually very innovative.

> I think it's an excellent way to kill that innovative side everyone
> is endowed with.

My experience with graduates from these schools at university generally
is that their knowledge does not help them too much when faced with
tasks that they were not specially trained for (in comparison to other
students).  Their technical mastery is certainly higher than average,
but not significantly different from the one of people who studied (<>
played with) computers for fun besides school.

Regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Peter Schuller
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dmq0v$60r$1@hecate.umd.edu>
[age 14]
>> You mean the age? That's not a problem.
>
>Specialized education at that age, to be honest, seems militaristic.

Sorry to but this late, but I have to re-act to this. One doesn't have to be
an idiot because one is young. There is nothing wrong with persuing one's
interests while still young.

I began programming when I was 8. I knew exactly what type of job I wanted
eventuellay, and I *wanted* to pursue my interestes.

The biggest problem was the stupid educational system which acts a huge bump
on the road (this is Sweden by the way; pretty much comparable to US
education except slightly "faster"). In order to get good grades, everyone
has to send a *significant* part of their lives working on subjects in
school they do now *want* to be studying. Why? Because some suit at the
governemntal level thinks that X, Y and Z should be required subjects for
all students (nevermind that if you're not interested in it you don't
remember it anyway).

You couldn't take an alternate route even if you wanted to - unless you
dropped out completely.

The biggest ploblem I had with the system was always the lack of choice, and
I was quite vocal about those opinions. (Oh and btw, I had well above
average grades, so I'm not complaining because I got bad grades or something
here.)

*PLEASE* let people choose. They're not vegetables just because they haven't
turned 18.

>Why not start admitting 8-year olds? They are surely capable.

Heh; I hadn't read the entire message. Glad you suggested it :)

Militaristic would be *forcing* students to specialize; just as militaristic
as it is to force students to get a "broad" education defined by someone else.

If a person wanted to get a Ph.D. in whatever subject, he/she should be
allowed to do so regardless of age.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrival: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dmvrg$49c$1@merrimack.Dartmouth.EDU>
"Peter Schuller" <··············@infidyne.com> wrote:
> [age 14]
> >> You mean the age? That's not a problem.
> >
> >Specialized education at that age, to be honest, seems militaristic.
>
> Sorry to but this late, but I have to re-act to this. One doesn't have to be
> an idiot because one is young. There is nothing wrong with persuing one's
> interests while still young.

One can be uninformed and misled because one is young.
There's a good reason why kids are not always responsible
for their own decisions. And there's nothing wrong with
pursuing one's interests while still young. There's
something wrong with creating a system that a kid and his
parents can use to keep him away from other possible
interests.


> I began programming when I was 8. I knew exactly what type of job I wanted
> eventuellay, and I *wanted* to pursue my interestes.

I'm somehow skeptical as to what degree this could be true.
You mean the job that you envisioned as a 8 year old turned
out to be the same job that you wanted later on? And you
knew exactly what people did in other jobs that you didn't
want? I don't know how anyone who hasn't retired could say
he knows *exactly* what type of job he wants, let alone an
8-year old.


> The biggest problem was the stupid educational system which acts a huge bump
> on the road (this is Sweden by the way; pretty much comparable to US
> education except slightly "faster").

I'm not sure if I comprehend this. The US doesn't have
anything close to single education system. Every state has
its own standards, every district has its own standards,
and every private school has its own standards. And in each
school, kids get to choose their own courses, within
certain limits.


> In order to get good grades, everyone
> has to send a *significant* part of their lives working on subjects in
> school they do now *want* to be studying. Why? Because some suit at the
> governemntal level thinks that X, Y and Z should be required subjects for
> all students (nevermind that if you're not interested in it you don't
> remember it anyway).

Nevermind that interests change quickly and there are a lot
of things that kids should learn, whether they happen to
recognize the necessity or not.

Also, specialization is a lot more tolerable when it doesn't
take place in separate places.


> >Why not start admitting 8-year olds? They are surely capable.
>
> Heh; I hadn't read the entire message. Glad you suggested it :)
>
> Militaristic would be *forcing* students to specialize; just as militaristic
> as it is to force students to get a "broad" education defined by someone else.

You can always go from broad to narrow, the other way around
is much harder. The law also recognizes, here in the US
anyway, that it's much harder to go from a non-virgin to a
virgin than the other way around. And you overestimate the
degree of choice kids usually have in such matters.

There's almost a point where some form of broad education is
necessary for one to be considered a citizen.


> If a person wanted to get a Ph.D. in whatever subject, he/she should be
> allowed to do so regardless of age.

That's a strawman. One should have received a broad, extensive
education before becoming a Ph.D. candidate.


Dan.
From: Peter Schuller
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dnnnf$idk$1@hecate.umd.edu>
>There's a good reason why kids are not always responsible
>for their own decisions. And there's nothing wrong with
>pursuing one's interests while still young. There's
>something wrong with creating a system that a kid and his
>parents can use to keep him away from other possible
>interests.

Kids and parents can *always* abuse the system. That's not anything new.
The same thing applies today.

>> I began programming when I was 8. I knew exactly what type of job I wanted
>> eventuellay, and I *wanted* to pursue my interestes.
>
>I'm somehow skeptical as to what degree this could be true.
>You mean the job that you envisioned as a 8 year old turned
>out to be the same job that you wanted later on?

Probably not, but I stopped having doubts a loooong time ago. When most
people were discussing what direction of eductaion to choose at the
Gymnasium level (and later at the university level) I was amazed how 90%
didn't know. I've never had problems choosing that, because I knew my
current interests and I knew where I wanted to end up.

>And you
>knew exactly what people did in other jobs that you didn't
>want?

That argument can be taken as far as you like. One can never know exactly
what it's like to be in every single possible profession. I've always been
leaning towards science, mathematics and computers. And no, I wasn't bullied
into it by my parents or anything. That's the way my brain works.

The first computer I ever tried was a Mac running MacOS. I later tried DOS.
Guess what? I preferred DOS. And this was when I was a super-newbie.

>I don't know how anyone who hasn't retired could say
>he knows *exactly* what type of job he wants, let alone an
>8-year old.

When I said "exactly" I didn't really mean it literally, but I knew what my
interetets were, and I know I wanted to be a programmer.

>> The biggest problem was the stupid educational system which acts a huge bump
>> on the road (this is Sweden by the way; pretty much comparable to US
>> education except slightly "faster").
>
>I'm not sure if I comprehend this. The US doesn't have
>anything close to single education system. Every state has
>its own standards, every district has its own standards,
>and every private school has its own standards. And in each
>school, kids get to choose their own courses, within
>certain limits.

It's those "limits" I'm talking about. In this regard, the US is actually
worse than Sweden - if I had gone to a university in Sweden I could have
concentrated on what I'm interested in (computers, math, physics,
philosophy, and some other stufF). I'm currently attending a US unversity
where 50% of the curriculum is CORE - and it's more or less the same all
over the place (believe me, I've checked this stuff for at least 100
universities around the country).

That's one reason why I'm dropping out. I don't want to waste even more time
of my life. Instead I'll concentrate on running my company.

>Nevermind that interests change quickly and there are 

Of course they do. But always saying "nope, I could change my mind, I'm not
going to decide" is useless.

> a lot
>of things that kids should learn, whether they happen to
>recognize the necessity or not.

... and once again, the "it's important to learn" argument, which is
completely without merit in this context. I have forgotten the vast majority
of what I "learned" in school. I remember the math, physics etc well because
I *want* to know it. As for history and similar subjects - I've forgotten
most of it. And I don't need it. I don't need to know exactly which year
some king died because I'm not interested.

Then there are subjects that were useless from the beginning that I had to
take anyway. English for example. I have learned all my English from
watching TV/movies. English in Sweden was a complete waste of time.

Swedish - another useless subject for me. Ok - did learn (and like learning)
grammer. But sadly that topic was mostly ignored (apparantly everything
thought it was boring and difficult). Instead we droned on about history of
a bunch of mentally challened alcoholics who wrote a bunch of books I
haven't read. I remember nothing of that except a few names in the back of
my mind. We also did variuos excercies with regards to writing properly
(punctuation, dividing text into paragraphs, etc). While I'm no shiny
example of corrct writing, I learned it all myself from reading and writing
on FidoNet and the Internet. Everything we did in school on the topic was
useless.

I could go on. I *literally* wasted years of my life, and that's not
counting free time and sleeping.

>Also, specialization is a lot more tolerable when it doesn't
>take place in separate places.

In the sense that everyone should go to the same school? Sure, fine by me!
Just don't force me to read about where Ingmar Bergman was born. I couldn't
care less, and I won't remember it anyway.

>You can always go from broad to narrow, the other way around
>is much harder.

Yes, but one should be able to make decisions - even if it requires the
concent of the parents. But it should be possible to deviate from the
standard path that everyone's supposed to take. If nothing else, that would
increase diversity in the society as a whole.

> The law also recognizes, here in the US
>anyway, that it's much harder to go from a non-virgin to a
>virgin than the other way around.

Hmm? How is sex among young children relevant? It's *impossible* to go from
non-virgin to virgin.

>And you overestimate the
>degree of choice kids usually have in such matters.

No I don't; I state that I think they should have more choice.

I fully realize that not everyone should be presented with all these choices
early in life. But the possibility should exist if the child takes the
initiative. <insert super natural being here> knows that I would have done so.

>There's almost a point where some form of broad education is
>necessary for one to be considered a citizen.

Yes, but once again, teaching a bunch of stuff the subject doesn't remember
is useless.

>> If a person wanted to get a Ph.D. in whatever subject, he/she should be
>> allowed to do so regardless of age.
>
>That's a strawman. One should have received a broad, extensive
>education before becoming a Ph.D. candidate.

I'm not debating that. But age in and of itself should not be an issue.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrival: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: FM
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dntj0$elp$1@merrimack.Dartmouth.EDU>
"Peter Schuller" <··············@infidyne.com> wrote:

> >And you
> >knew exactly what people did in other jobs that you didn't
> >want?
>
> That argument can be taken as far as you like. One can never know exactly
> what it's like to be in every single possible profession. I've always been
> leaning towards science, mathematics and computers. And no, I wasn't bullied
> into it by my parents or anything. That's the way my brain works.

Human brains are fairly similar to one another. I once thought
when I was really young that I was leaning towards science, only
to discover later that I didn't know what science really meant.
I think the reason why our inclinations tend not to change has
more to do with positive feedback than them being right.


> The first computer I ever tried was a Mac running MacOS. I later tried DOS.
> Guess what? I preferred DOS. And this was when I was a super-newbie.

I had the opposite reaction, so it must be that I'm not fit to be
a programmer. <g>


> >> The biggest problem was the stupid educational system which acts a huge bump
> >> on the road (this is Sweden by the way; pretty much comparable to US
> >> education except slightly "faster").
> >
> >I'm not sure if I comprehend this. The US doesn't have
> >anything close to single education system. Every state has
> >its own standards, every district has its own standards,
> >and every private school has its own standards. And in each
> >school, kids get to choose their own courses, within
> >certain limits.

> It's those "limits" I'm talking about. In this regard, the US is actually
> worse than Sweden - if I had gone to a university in Sweden I could have
> concentrated on what I'm interested in (computers, math, physics,
> philosophy, and some other stufF). I'm currently attending a US unversity
> where 50% of the curriculum is CORE - and it's more or less the same all
> over the place (believe me, I've checked this stuff for at least 100
> universities around the country).

Brown University?

In any case, what colleges decide to require for their degrees is
a completely distinct issue. That's a point where there are enough
plausible choices that it's hard to characterize them as a single
system of any kind.


> > a lot
> >of things that kids should learn, whether they happen to
> >recognize the necessity or not.
>
> ... and once again, the "it's important to learn" argument, which is
> completely without merit in this context. I have forgotten the vast majority
> of what I "learned" in school. I remember the math, physics etc well because
> I *want* to know it. As for history and similar subjects - I've forgotten
> most of it. And I don't need it. I don't need to know exactly which year
> some king died because I'm not interested.

Do you believe you learn only *facts* (or whatever it is that you can
remember or forget) in history classes? That might be all they teach,
but that's not all you were supposed to learn, IMHO.


> >You can always go from broad to narrow, the other way around
> >is much harder.
>
> Yes, but one should be able to make decisions - even if it requires the
> concent of the parents. But it should be possible to deviate from the
> standard path that everyone's supposed to take. If nothing else, that would
> increase diversity in the society as a whole.

Of course everyone needs to deviate from the standard path at some
point. That doesn't mean that specialization is the only way or that
it's a good idea for a 14 year old.


> >And you overestimate the
> >degree of choice kids usually have in such matters.
>
> No I don't; I state that I think they should have more choice.
>
> I fully realize that not everyone should be presented with all these choices
> early in life. But the possibility should exist if the child takes the
> initiative. <insert super natural being here> knows that I would have done so.

What possibility? Learning by yourself is a possibility for most
circumstances, though not always (i.e. I didn't have access to
any CS literature and/or a programmable computer when I was very
young. I'm not too sure if it was a bad thing).


> >There's almost a point where some form of broad education is
> >necessary for one to be considered a citizen.
>
> Yes, but once again, teaching a bunch of stuff the subject doesn't remember
> is useless.

But that some people don't remember what they are taught doesn't
mean that teaching in general is useless. Whether you will need
or remember something is not clear to anyone when the decision to
teach it is made.


Dan.
From: Peter Schuller
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9ds03g$phk$2@hecate.umd.edu>
>C.S. Lewis (who was an educator before he was an author) talked about
>this problem over 40 years ago. He pointed out that you can really
>only measure such tangibles as the student's retention of "facts".

I agree with this - mostly. But the issue at hand was wheather you learned
something useful in history class, not wheater you can measure it :)

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrival: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: David Rush
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <okf4rukdmsc.fsf@bellsouth.net>
··············@infidyne.com (Peter Schuller) writes:
> >C.S. Lewis (who was an educator before he was an author) talked about
> >this problem over 40 years ago. He pointed out that you can really
> >only measure such tangibles as the student's retention of "facts".
> 
> I agree with this - mostly. But the issue at hand was wheather you learned
> something useful in history class, not wheater you can measure it :)

Yes, and my point is/was that there *are* useful things that can be learned
from the study of history, but they can't be spoon-fed as part of a
class without becoming a dangerous form of political
indoctrination. You can (honestly) only teach the facts (distorted by
politics though they may be). The student has to think for himself.

The original poster, who was whinging about the irrelevance of
studying history on a computer curriculum, clearly never grasped that
basic fact. In fact, computer science is, in general, far too ignorant
of *it's* history. Other engineering disciplines make a point out of
post-mortem analysis of errors; few indeed are the computer
firms/software engineers that do. I remember having one professor in
my Uni. days who lamented this; I have learned since that he was very
right. If you're ignorant of history, you *will* repeat; even if
you're compliant to the latest silver-bullet buzzword.

For that matter the "soft sciences" have more to tell us in practical
CS than many of us geekier types would like to admit. Large-scale
programming is at least as much a social exercise as it is a technical
one. Broad education[1] is *good* for software development.

david rush

[1] IIRC, at least one poster (the same one who complainmed about
having to learn history?) sang out in praise of Perl. While I am not a
Perl fan, you have to admit the Larry Wall is very broadly
educated/informed, and he himself clains that he has brought ideas
from many diverse topics to bear in the design of Perl.
-- 
In no other country in the world is the love of property keener or
more alert than in the United States, and nowhere else does the
majority display less inclination toward doctrines which in any way
threaten the way property is owned.
	-- Democracy in America (Alexis de Tocqueville)
From: Peter Schuller
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9e1mab$hr6$1@hecate.umd.edu>
>The original poster,

Me.

>who was whinging about the irrelevance of
>studying history on a computer curriculum, clearly never grasped that
>basic fact. 

Of course I do. The point was that you should get to *choose*. There is no
objective truth that says history is somehow more important for everyone to
learn than, say, quantum physics. Or if there is such an objective truth,
it's impossible to determine wheather a subjective opinion matches that
truth. I never said a CS student should study only CS courses. I just said
the student should have the ability to choose. Instead of history, perhaps I
would have studied filosophy, etc.

Just because I don't think everyone should be forced to get a specific broad
education, it doesn't mean I am against getting a broad education. You
clearly don't "grasp this basic fact"...

>In fact, computer science is, in general, far too ignorant
>of *it's* history. Other engineering disciplines make a point out of
>post-mortem analysis of errors; few indeed are the computer
>firms/software engineers that do. I remember having one professor in
>my Uni. days who lamented this; I have learned since that he was very
>right. If you're ignorant of history, you *will* repeat; even if
>you're compliant to the latest silver-bullet buzzword.

Ok. And exactly how does this mean I have to know when that aforementioned
alcoholic was admitted to a mental institution?

I actually don't have anything against history in the general sense. Just
the history tought in school. I want choice. WWII? Give it to me. WWI? The
same. The history of the human species? Sure. And so on. Swedish kings?
No, and I shouldn't be foreced to study it. Especially not more than once.

>For that matter the "soft sciences" have more to tell us in practical
>CS than many of us geekier types would like to admit. Large-scale
>programming is at least as much a social exercise as it is a technical
>one. Broad education[1] is *good* for software development.

Repeat of question above + see above about broad education.

>david rush
>
>[1] IIRC, at least one poster (the same one who complainmed about
>having to learn history?) sang out in praise of Perl. While I am not a
>Perl fan, you have to admit the Larry Wall is very broadly
>educated/informed, and he himself clains that he has brought ideas
>from many diverse topics to bear in the design of Perl.

I did no such thing. I absolutely hate perl. It's a mess. So no, that was
not the same person who complained.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrival: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: Biep @ http://www.biep.org/
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9e2r9n$pni9$1@ID-63952.news.dfncis.de>
"Peter Schuller" <··············@infidyne.com> wrote in message
·················@hecate.umd.edu...
> I actually don't have anything against history in the general sense. Just
> the history tought in school. I want choice. WWII? Give it to me. WWI?
The
> same. The history of the human species? Sure. And so on. Swedish kings?
> No, and I shouldn't be foreced to study it. Especially not more than
once.

But how can you ever understand the intricacies of the positions and
actions of the various groups in Sweden (or anywhere) during, say, WWII,
without a thorough knowledge of preceding history?

WWII on itself is not history, that is a story.  It becomes history when
you see it in the context of how thought patterns have grown the way they
have, how someone's behaviour follows from the atmosphere they grew up in,
and why that atmosphere was as it was..

Now if you had an incompetent teacher, that is sad, but it doesn't relate
to this discussion.

--
Biep
Reply via http://www.biep.org
From: Peter Schuller
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dnu1o$inn$1@hecate.umd.edu>
>>That's a strawman. One should have received a broad, extensive
>>education before becoming a Ph.D. candidate.

And btw, that's a matter of definition. One that should be changed. What's
important is what you *know*, not what you've studied. A CS Ph.D isn't
likely to remember details tought in history or social science (unless the
person in question is particularly interested in the subject); likewise a
History Ph.D isn't likely to be able to explain the difference between
automatic and dynamic memory allocation in C, or what a "class" is in the
context of object oriented programming.

However, a CS major is expected to be aware of the second world war, and a
history major is expected to know what a computer is. But that's a different
matter - one that does not require anyone to study computer or World War II
in extreme detail.

(I happen to be interested in WWII, so in my case I wouldn't mind studying
it in detail, but any other example will do just fine aswell. I'm not
interested in Swedish kings for example.)

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
Key retrival: Send an E-Mail to ·········@scode.org
E-Mail: ··············@infidyne.com Web: http://www.scode.org
From: Marc Spitzer
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <slrn9fuvbh.26o1.marc@oscar.eng.cv.net>
In article <············@hecate.umd.edu>, Peter Schuller wrote:
>>I'm not sure if I comprehend this. The US doesn't have
>>anything close to single education system. Every state has
>>its own standards, every district has its own standards,
>>and every private school has its own standards. And in each
>>school, kids get to choose their own courses, within
>>certain limits.
> 
> It's those "limits" I'm talking about. In this regard, the US is actually
> worse than Sweden - if I had gone to a university in Sweden I could have
> concentrated on what I'm interested in (computers, math, physics,
> philosophy, and some other stufF). I'm currently attending a US unversity
> where 50% of the curriculum is CORE - and it's more or less the same all
> over the place (believe me, I've checked this stuff for at least 100
> universities around the country).
> 
> That's one reason why I'm dropping out. I don't want to waste even more time
> of my life. Instead I'll concentrate on running my company.
> 

The goal of a US university education is to teach you how to learn and think
on your own along with what technical vocation you wish to pick up,comp. sci.
or french lit. or none at all.  Those core courses are designed, in therory,
to produce an educated person who can think, reason and continue to learn 
abount things in general.  What you seem to want is a trade school for
programming and that is fine but it does not belong in a university/college.

>>Nevermind that interests change quickly and there are 
> 
> Of course they do. But always saying "nope, I could change my mind, I'm not
> going to decide" is useless.
> 
>> a lot
>>of things that kids should learn, whether they happen to
>>recognize the necessity or not.
> 
> ... and once again, the "it's important to learn" argument, which is
> completely without merit in this context. I have forgotten the vast majority
> of what I "learned" in school. I remember the math, physics etc well because
> I *want* to know it. As for history and similar subjects - I've forgotten
> most of it. And I don't need it. I don't need to know exactly which year
> some king died because I'm not interested.

I don't care when some king died ether, dates are not the interesting
part of history.  Much of what I find interesting in history can be 
summed up with this statement "I can not beleve this shit happened,
but it did"

Also history can be considered the sum total of all recorded human 
mistakes.  I would say almost all if not all the mistakes we make
today were made by someone else and recorded.  Think of it as free
experience, gain without pain, if you use it.  This intrest in 
history came about from one of those 'core' courses that I did not
want to take but was required to for graduation.

The older and wiser people where correct, how could this happen?


> 
> Then there are subjects that were useless from the beginning that I had to
> take anyway. English for example. I have learned all my English from
> watching TV/movies. English in Sweden was a complete waste of time.
> 
> Swedish - another useless subject for me. Ok - did learn (and like learning)
> grammer. But sadly that topic was mostly ignored (apparantly everything
> thought it was boring and difficult). Instead we droned on about history of
> a bunch of mentally challened alcoholics who wrote a bunch of books I
> haven't read. I remember nothing of that except a few names in the back of
> my mind. We also did variuos excercies with regards to writing properly
> (punctuation, dividing text into paragraphs, etc). While I'm no shiny
> example of corrct writing, I learned it all myself from reading and writing
> on FidoNet and the Internet. Everything we did in school on the topic was
> useless.

How was being trained to read and write the language of the country you are 
living in a waste of time? 

> 
> I could go on. I *literally* wasted years of my life, and that's not
> counting free time and sleeping.
> 
>>Also, specialization is a lot more tolerable when it doesn't
>>take place in separate places.
> 
> In the sense that everyone should go to the same school? Sure, fine by me!
> Just don't force me to read about where Ingmar Bergman was born. I couldn't
> care less, and I won't remember it anyway.
> 

Sweden needs more movie stars.

>>You can always go from broad to narrow, the other way around
>>is much harder.
> 
> Yes, but one should be able to make decisions - even if it requires the
> concent of the parents. But it should be possible to deviate from the
> standard path that everyone's supposed to take. If nothing else, that would
> increase diversity in the society as a whole.

If it requires the consent of parents then it is not your decision to make.

I disagree with your comment about diversity, what you are talking about is
fragmentation.  Also remember for every group there is a culture that is a
unifying force and that culture must be taught sucessfuly for people to be
able to survive and prosper in that group.  Sweden is a group and the 
standard education that they give there children will help them survive
in sweden, this is in part how the group survives more then 1 generation.

Your statement about diversity helping socity is only true up o a point.
After that point it will undermine the fundmential valued of the group
and it is not a group an more.  This is generialy considdered bad from
the groups point of view.

> 
>> The law also recognizes, here in the US
>>anyway, that it's much harder to go from a non-virgin to a
>>virgin than the other way around.
> 
> Hmm? How is sex among young children relevant? It's *impossible* to go from
> non-virgin to virgin.

He was making a point, if you don't like it fine come up with a counter
arguement.  The above was not a counter argument.

> 
>>And you overestimate the
>>degree of choice kids usually have in such matters.
> 
> No I don't; I state that I think they should have more choice.
> 
> I fully realize that not everyone should be presented with all these choices
> early in life. But the possibility should exist if the child takes the
> initiative. <insert super natural being here> knows that I would have done so.

who should get these special choices then?  Are we looking for platos philosifer
kings?  But remember plato gave them no choice on what they would learn.

> 
>>There's almost a point where some form of broad education is
>>necessary for one to be considered a citizen.
> 
> Yes, but once again, teaching a bunch of stuff the subject doesn't remember
> is useless.

not if it makes you part of the group.  I was in the army reserves for severial
years and one of the first thing we were taught in basic was close order drill.
This had nothing to do with my job or surviving in a war zone, it once did.
But what it does do is introduce you to the Army culture and start 
indoctranating you in it, this is IMPORTANT and that is why it is taught.


> 
>>> If a person wanted to get a Ph.D. in whatever subject, he/she should be
>>> allowed to do so regardless of age.
>>
>>That's a strawman. One should have received a broad, extensive
>>education before becoming a Ph.D. candidate.
> 
> I'm not debating that. But age in and of itself should not be an issue.

Your complaint is that people are making you learn stuff you do not like
or think you need.  Now any one applying for a PH.D. should be well 
educated in general and specific.  Your method of education would
take away the general part and leave only the specific.  How would
this make a better reasearcher?

marc



> 
> -- 
> / Peter Schuller, InfiDyne Technologies HB
> 
> PGP userID: 0xE9758B7D or 'Peter Schuller <··············@infidyne.com>'
> Key retrival: Send an E-Mail to ·········@scode.org
> E-Mail: ··············@infidyne.com Web: http://www.scode.org
> 
From: James A. Robertson
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <3AFFCBA2.56B9BD69@mail.com>
'Core' courses in Universities run in fads here.  When I graduated
(1984) we were at the tail end of an era where there pretty much were no
'Core' classes at a University.  I took a path that had only the
following requirements:

36 credit hours in math (my major)
at least 3 credits in each of the following areas within the math dept:

Geometry/Topology
Analysis
Algebra
Statistics

So I had 36 credits determined by my major, and everything else totally
up to me.  This sort of things has its drawbacks as well; most 18-21
year olds (myself at the time included) are not about to make totally
wise choices; I specialized in 'gut' courses to fill out my 120
credits.  


Peter Schuller wrote:
> 

> >I'm not sure if I comprehend this. The US doesn't have
> >anything close to single education system. Every state has
> >its own standards, every district has its own standards,
> >and every private school has its own standards. And in each
> >school, kids get to choose their own courses, within
> >certain limits.
> 
> It's those "limits" I'm talking about. In this regard, the US is actually
> worse than Sweden - if I had gone to a university in Sweden I could have
> concentrated on what I'm interested in (computers, math, physics,
> philosophy, and some other stufF). I'm currently attending a US unversity
> where 50% of the curriculum is CORE - and it's more or less the same all
> over the place (believe me, I've checked this stuff for at least 100
> universities around the country).
> 
> That's one reason why I'm dropping out. I don't want to waste even more time
> of my life. Instead I'll concentrate on running my company.
> 

-- 
James A. Robertson
Product Manager (Smalltalk), Cincom
·······@mail.com
<Talk Small and Carry a Big Class Library>
From: Biep @ http://www.biep.org/
Subject: Re: [OT] Software Engineering at 14 (was: Re: Beginner's Language?)
Date: 
Message-ID: <9dob4m$j5du5$1@ID-63952.news.dfncis.de>
"Peter Schuller" <··············@infidyne.com> wrote in message
·················@hecate.umd.edu...
> I began programming when I was 8. I knew exactly what type of job I
wanted
> eventuellay, and I *wanted* to pursue my interestes.

> > Why not start admitting 8-year olds? They are surely capable.
> Heh; I hadn't read the entire message. Glad you suggested it :)

I think it is very easy to stunt the development of a child at that age,
and it resuires a specific effort from an educational system to make them
grow in areas they haven't learned to appreciate yet.
I happen to think that an educational system in a democracy has the moral
obligation to do just that: to help turn children into full human beings,
rather than allow them to hide in a corner for the rest of their lives.
After all, these children will be tomorrow's voters.
One is certainly allowed to dislike, say, history even after being exposed
to a decent quantity of facts and their significance, but someone who does
not want to do some historic research should at least be aware that they
are missing so much that they better refrain from voting.  I doubt whether
a child of 14 who dislikes history will have learned that lesson already -
the a-ha erlebnis will not have occurred yet, I would guess.  The same is
true m. m. for other subjects.

Follow-ups to misc.education
--
Biep
Reply via http://www.biep.org
From: Friedrich Dominicus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87u22t39oe.fsf@frown.here>
···········@aon.at (Andreas Krennmair) writes:

> >  yes, yes 
> for my comment, see above. Lisp has hardly anything in common with natural
> languages. Or could you express "My girlfriend's name is Suzy and her age
> is 17" as readable as this in Lisp:
> $girlfriend{'name'} = "Suzy";
> $girlfriend{'age'} = 17;

Now there are different ways to do it. Some were pointed out in
another mail, but you could expose the Data-Structure behind the Hash
Table in Lisp. You may say who cares, but learning programming is to
some extend about learning data structures too.

so there are different ways to make a girl-friend
a) as structure
(defstruct girl-friend
      name
      age)


(defvar *my-girl-friend* (make-girl-friend :name "Ann" :age 30))

b) as property list
left out because other have done it

c) as object (subject;-)
(defclass girl-friend ()
                   ((name :initarg :name :accessor name)
                    (age :initarg :age :accessor age)))


(setf my-girl (make-instance 'girl-friend 
                                 :name "Foo"
                                 :age 20))



Now you have just one option in Pascal you have to write

type Girl_friend = record
   name : STRING [30];
   age : INTEGER
end

my-girl : (POINTER ?) Girl_friend;

my_girl.name := "Ann";
my_girl.age  := 30;

What is if you have a longer name? What is if you declare my_girl to
be a Pointer to Girl_friend?
Why should that be easier to understand?

I had to learn programming with Modula-2 and it was the hell for
me. I doubt that it could have been worse while learning Lisp.


> No. Only after understanding the fundamental concepts of Lisp.

So what? I have to understand the fundamental concepts of any
programming langauge why is Pascal different here.
> 
> > >Is it intuitively obvious to
> > > even the most casual observer how to make a similar program?
> >  yes
> No. See answer before. :)
Again why is a record struct in Pascal easier to understand than in
Lisp. What about the Pointers? What about memory handling etc?

> >  he/she started from. If he starts with Lisp; C, Java looks messy. If
> It _does_ matter. Beginners can easily get frustrated because of the
> sometimes confusing syntax. BTW, I wouldn't recommend starting with Java
> or C/C++, either. I'd recommend and teach (if I were a teacher :) some
> Wirth language, because they're designed especially for teaching basics
> of programming.

For a special kind of learning inflexible languages. IMHO the whole
books and langauges have one big advantage. The are there for Top-down
devlopment. No space for errors, no space for piecemeal grow. If you
forget a ; you get a friendly message that you're an idiot (not
really) you have to go back to you editor fix that bug and compile it
again.

You can not simply test out a function by itself in no time. You have
to stop recompile and start again. All this is so tedious and
frustrating that I can't see any reason why that should be a good
thing.

Regards
Friedrich
From: Markus Mottl
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9ddssk$bb7$1@bird.wu-wien.ac.at>
In comp.lang.functional Andreas Krennmair <···········@aon.at> wrote:
> The problem is that Lisp is in no way similar to a natural language.

Same is true for all _programming_ languages. Let's not try to maintain
the illusion that programming languages are, could be, or even should be
similar to natural language. Natural language is highly ambiguous and
imprecise, which surely does not make it a good choice for programming
tasks.

> And natural language can be understood easier than some functional,
> theoretical stuff with a unique concept like Lisp.

Sure: you have had about two decades of training, several hours a
day. This definitely makes you good at speaking natural language.
Natural language more easily understood than Lisp? Try to learn Chinese
and tell me again...

Furthermore, I wouldn't regard Lisp as particularly theoretically
inspired, at least not if you compare it to "real" functional languages
like e.g. Haskell.

And yes, this "theoretical" stuff is remarkably readable. Go and look for
yourself:

  http://www.haskell.org

Or try a language from the ML-family, e.g.:

  http://www.ocaml.org

> I was bored in the beginning, because I already knew Pascal, but then
> the teacher explained me that they chose to teach Pascal because it
> is so easy to read and to understand and it still has so many things
> common with other languages.

The true reason most likely is that he had learnt Pascal himself in
school and therefore also uses it for teaching.

> Lisp has hardly anything in common with natural
> languages. Or could you express "My girlfriend's name is Suzy and her age
> is 17" as readable as this in Lisp:
> $girlfriend{'name'} = "Suzy";
> $girlfriend{'age'} = 17;

Don't cheat yourself. There is absolutely no reason why a language like
Perl should be considered anywhere close to natural language. And yes,
I'd say that most well-designed languages make tasks like handling
records significantly easier and safer than Perl.

Take this Lisp-example. First we define a structure to describe persons:

  (defstruct (person) (name) (age))

Now we create a value for your girlfriend:

  (make-person :name "Suzy" :age 17)

To be clear, I am not a particular friend of Lisp and strongly prefer
other (functional and logic) languages. But I just wanted to show that
your claim is not justified.

Other languages also seem much more "natural" to me than your
Perl-example, e.g.:

OCaml with tuples:

  let my_girlfriend = "Suzy", 17

Or (with more structure for readability):

  type person = { name : string; age : int }

  let my_girlfriend = { name = "Suzy"; age = 17 }

None of these examples looks more "theoretical" or less "natural" than
yours. It's probably best if you just take a look at the documentation
of these and other languages, play around a bit, and maybe you'll find
that these languages are much more elegant than you initially thought...

Best regards,
Markus Mottl

-- 
Markus Mottl, ·····@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
From: Hannah Schroeter
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9debuo$vq5$1@c3po.schlund.de>
[c.l.ada, c.l.smalltalk removed from the crossposting]

Hello!

In article <············@bird.wu-wien.ac.at>,
Markus Mottl  <·····@miss.wu-wien.ac.at> wrote:
>[...]

>> Lisp has hardly anything in common with natural
>> languages. Or could you express "My girlfriend's name is Suzy and her age
>> is 17" as readable as this in Lisp:
>> $girlfriend{'name'} = "Suzy";
>> $girlfriend{'age'} = 17;

Now, a literal translation to Lisp is this:

(defvar *girlfriend* (make-hash-table))
(setf (gethash :name *girlfriend*) "Suzy")
(setf (gethash :age *girlfriend*) 17)

>Don't cheat yourself. There is absolutely no reason why a language like
>Perl should be considered anywhere close to natural language. And yes,
>I'd say that most well-designed languages make tasks like handling
>records significantly easier and safer than Perl.

>Take this Lisp-example. First we define a structure to describe persons:

>  (defstruct (person) (name) (age))

>Now we create a value for your girlfriend:

>  (make-person :name "Suzy" :age 17)

How about

(defclass person ()
  ((name :type string :initarg :name :accessor p-name)
   (age :type (integer 0 *) :initarg :age :accessor p-age)))

; so you can specialize on significant others
(defclass so-mixin () ())

(defclass so (person so-mixin) ())

(let ((girlfriend (make-instance 'so :name "Suzy" :age 17)))
  ...)

>[...]

Kind regards,

Hannah.
From: Hannah Schroeter
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9drk7a$o50$1@c3po.schlund.de>
[Stop crossposting -> F'up to c.l.lisp in this case]

Hello!

In article <············@c3po.schlund.de>,
Hannah Schroeter <······@schlund.de> wrote:
>[...]

>(defclass person ()
>  ((name :type string :initarg :name :accessor p-name)
>   (age :type (integer 0 *) :initarg :age :accessor p-age)))

>; so you can specialize on significant others
>(defclass so-mixin () ())

>(defclass so (person so-mixin) ())

My bug: This must be ordered thus:
  (defclass so (so-mixin person) ())
so that so-mixin comes before person in the class precedence list,
so you can override "person" methods with "so-mixin" methods if wanted.

>(let ((girlfriend (make-instance 'so :name "Suzy" :age 17)))
>  ...)

>[...]

Kind regards,

Hannah.
From: [Invalid-From-Line]
Subject: Re: Beginner's Language?
Date: 
Message-ID: <slrn9fk16m.4lj.ssthapa@hepcat.telocity.com>
Andreas Krennmair <···········@aon.at> wrote:
>It _does_ matter. Beginners can easily get frustrated because of the
>sometimes confusing syntax. BTW, I wouldn't recommend starting with Java
>or C/C++, either. I'd recommend and teach (if I were a teacher :) some
>Wirth language, because they're designed especially for teaching basics
>of programming.

    I think syntax is a big plus with scheme and to a slightly lesser extent,
lisp.  The syntax is something that can be easily learned since it is so
regular and after that the instructor can move on to programming.  With
other languages, the syntax takes a while to learn and that takes away from
time the instructor can use to teach the actual material.

-- 
----------------------------------------------------------------------------
	   		              |
Suchandra Thapa                       | "There are only two kinds of math . 
··········@NOSPAMalumni.uchicago.edu  | books. Those you cannot read beyond 
			              | the first sentence, and those you 
			              | can not read beyond the first page."
			              |                     -C.N. Yang
----------------------------------------------------------------------------
From: Eugene Zaikonnikov
Subject: Re: Beginner's Language?
Date: 
Message-ID: <6y7kzpclga.fsf@viking.cit>
* "AK" == Andreas Krennmair <···········@aon.at> writes:

AK>  The problem is that Lisp is in no way similar to a natural
AK>  language. And natural language can be understood easier than some
AK>  functional, theoretical stuff with a unique concept like
AK>  Lisp.

Lisp isn't a language with a unique concept for a very long time. It
provides support for quite a few paradigms and does it much better
than many of the languages.

AK>  Lisp has hardly anything in common with natural languages. Or
AK>  could you express "My girlfriend's name is Suzy and her age is
AK>  17" as readable as this in Lisp: 
AK>  $girlfriend{'name'} = "Suzy";
AK>  $girlfriend{'age'} = 17;

(make-instance 'girlfriend
    :name "Suzy"
    :age 17)

?

--
  Eugene
From: Kent M Pitman
Subject: Re: Beginner's Language?
Date: 
Message-ID: <sfwk83o9001.fsf@world.std.com>
[ replying to comp.lang.lisp only
  http://world.std.com/~pitman/pfaq/cross-posting.html ]

Eugene Zaikonnikov <······@cit.org.by> writes:

> 
> * "AK" == Andreas Krennmair <···········@aon.at> writes:
> 
> AK>  The problem is that Lisp is in no way similar to a natural
> AK>  language. And natural language can be understood easier than some
> AK>  functional, theoretical stuff with a unique concept like
> AK>  Lisp.
> 
> Lisp isn't a language with a unique concept for a very long time. It
> provides support for quite a few paradigms and does it much better
> than many of the languages.
> 
> AK>  Lisp has hardly anything in common with natural languages. Or
> AK>  could you express "My girlfriend's name is Suzy and her age is
> AK>  17" as readable as this in Lisp: 
> AK>  $girlfriend{'name'} = "Suzy";
> AK>  $girlfriend{'age'} = 17;
> 
> (make-instance 'girlfriend
>     :name "Suzy"
>     :age 17)
> 
> ?

(defstruct person
  name
  age
  siblings  ; brothers and sisters
  s.o.      ; "significant other" - who they're committed to
  date)     ; who they're going out with to dinner tonight.

Lisp also lets you describe yourself as:

  #1=#S(person :name "Andreas" :age 18
               :s.o. #S(person :name "Suzy" :age 17
                               :s.o. #1#))

or her as:

  #1=#S(person :name "Suzy" :age 17
               :s.o. #S(person :name "Andreas" :age 18
                               :s.o. #1#))

And Lisp lets you say describe soap opera setups like the
following games between two pairs of twins.

  #1=#S(person
         :name "Suzy" :age 17
         :siblings (#2=#S(person
                           :name "Sally" :age 17
                           :siblings (#1#)
                           :s.o. #3=#S(person :name "Antonio" :age 18
                                        :siblings (#4=#S(person
                                                          :name "Andreas"
                                                          :age  18
                                                          :siblings (#3#)
                                                          :s.o. #1#
                                                          :date #2#))
                                        :s.o. #2#
                                        :date #1#)
                           :date #4#))
         :s.o. #4#
         :date #3#)

Perhaps Perl has a convenient notion for talking about shared and circular
structure, too...?

[Btw, this triggers bugs in LWW 4.1.20's reader and printer, but I've 
 reported them and assume they'll be fixed.  Unfortunately, though,
 it made it hard to test the example.  Hope I didn't screw it up.]
From: Marco Antoniotti
Subject: Re: Beginner's Language?
Date: 
Message-ID: <y6cr8xwothn.fsf@octagon.mrl.nyu.edu>
Kent M Pitman <······@world.std.com> writes:

> [ replying to comp.lang.lisp only
>   http://world.std.com/~pitman/pfaq/cross-posting.html ]

I have abstained so far from this cross-posting frenzy.  But it has
been very hard to resist.  I know I can be very polemic and therefore
exerted some self restraint.

However, I would claim that some croos-posting would have been
effective in this case :)  Especially with the READ/PRINT example you
just posted :)


> Perhaps Perl has a convenient notion for talking about shared and circular
> structure, too...?

Of course it does.  Remember Greenspun's Tenth Rule of Programming :)

Cheers


-- 
Marco Antoniotti ========================================================
NYU Courant Bioinformatics Group	tel. +1 - 212 - 998 3488
719 Broadway 12th Floor                 fax  +1 - 212 - 995 4122
New York, NY 10003, USA			http://bioinformatics.cat.nyu.edu
	       "Hello New York! We'll do what we can!"
			Bill Murray in `Ghostbusters'.
From: Kent M Pitman
Subject: Re: Beginner's Language?
Date: 
Message-ID: <sfweltwrm3h.fsf@world.std.com>
Marco Antoniotti <·······@cs.nyu.edu> writes:

> > Perhaps Perl has a convenient notion for talking about 
> > shared and circular structure, too...?
> 
> Of course it does.  Remember Greenspun's Tenth Rule of Programming :)

Uh, can't say that I do.
From: Rob Warnock
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dj2kv$7klcs$1@fido.engr.sgi.com>
Kent M Pitman  <······@world.std.com> wrote:
+---------------
| Marco Antoniotti <·······@cs.nyu.edu> writes:
| > > Perhaps Perl has a convenient notion for talking about 
| > > shared and circular structure, too...?
| > 
| > Of course it does.  Remember Greenspun's Tenth Rule of Programming :)
| 
| Uh, can't say that I do.
+---------------

<URL:http://philip.greenspun.com/research/index.html>
Greenspun's Tenth Rule of Programming: "Any sufficiently complicated
C or Fortran program contains an ad-hoc, informally-specified bug-ridden
slow implementation of half of Common Lisp." 


-Rob

-----
Rob Warnock, 31-2-510		····@sgi.com
SGI Network Engineering		<URL:http://reality.sgi.com/rpw3/>
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA
From: ······@newsguy.com
Subject: Re: Beginner's Language?
Date: 
Message-ID: <86vgn1xd4o.fsf@blah.winkywooster.org>
Kent M Pitman <······@world.std.com> writes:
> Marco Antoniotti <·······@cs.nyu.edu> writes:
> > Of course it does.  Remember Greenspun's Tenth Rule of Programming :)
> 
> Uh, can't say that I do.

Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C
or Fortran program contains an ad-hoc, informally-specified bug-ridden
slow implementation of half of Common Lisp."
From: Steven D. Majewski
Subject: The Other 9 ? [was: Beginner's Language?]
Date: 
Message-ID: <9f3icf$4nm$1@murdoch.acc.Virginia.EDU>
In article <··············@blah.winkywooster.org>,  <······@newsguy.com> wrote:
>
>Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C
>or Fortran program contains an ad-hoc, informally-specified bug-ridden
>slow implementation of half of Common Lisp."


Does anyone know what the first 9 rules are ? 

-- Steve Majewski
From: Geoff Summerhayes
Subject: Re: The Other 9 ? [was: Beginner's Language?]
Date: 
Message-ID: <thal52r0ap6q47@corp.supernews.com>
"Steven D. Majewski" <·····@minsky.med.Virginia.EDU> wrote in message ·················@murdoch.acc.Virginia.EDU...
> In article <··············@blah.winkywooster.org>,  <······@newsguy.com> wrote:
> >
> >Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C
> >or Fortran program contains an ad-hoc, informally-specified bug-ridden
> >slow implementation of half of Common Lisp."
>
>
> Does anyone know what the first 9 rules are ?
>
> -- Steve Majewski

They don't exist. He started and finished with the tenth one.

Geoff
From: Pierre R. Mai
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87pudgs05s.fsf@orion.bln.pmsf.de>
Kent M Pitman <······@world.std.com> writes:

>   #1=#S(person
>          :name "Suzy" :age 17
>          :siblings (#2=#S(person
>                            :name "Sally" :age 17
>                            :siblings (#1#)
>                            :s.o. #3=#S(person :name "Antonio" :age 18
>                                         :siblings (#4=#S(person
>                                                           :name "Andreas"
>                                                           :age  18
>                                                           :siblings (#3#)
>                                                           :s.o. #1#
>                                                           :date #2#))
>                                         :s.o. #2#
>                                         :date #1#)
>                            :date #4#))
>          :s.o. #4#
>          :date #3#)
> 
> Perhaps Perl has a convenient notion for talking about shared and circular
> structure, too...?
> 
> [Btw, this triggers bugs in LWW 4.1.20's reader and printer, but I've 
>  reported them and assume they'll be fixed.  Unfortunately, though,
>  it made it hard to test the example.  Hope I didn't screw it up.]

The examples seem to work correctly in CMU CL, being printed back as
expected, at least.  BTW, the unsuspecting reader might want to bind
or set *PRINT-CIRCLE* to T before trying the examples out... ;)

Regs, Pierre.

-- 
Pierre R. Mai <····@acm.org>                    http://www.pmsf.de/pmai/
 The most likely way for the world to be destroyed, most experts agree,
 is by accident. That's where we come in; we're computer professionals.
 We cause accidents.                           -- Nathaniel Borenstein
From: Paolo Amoroso
Subject: Re: Beginner's Language?
Date: 
Message-ID: <laz7Ots=3elp0N04s=3ArP=mMWFJ@4ax.com>
[Followup posted to comp.lang.lisp only - Paolo]

On 9 May 2001 18:24:26 GMT, ···········@aon.at (Andreas Krennmair) wrote:

> stuff with a unique concept like Lisp. Don't get me wrong, Lisp is a great
> language, and I personally find it quite exciting as four year Pascal and
> two year C/C++ programmer, but it's hardly usable for teaching, because it
> is so unique (well, you _could_ to functional programming in C, but it would
> be considered bad style).

Note that Common Lisp is a multiparadigm programming language by design.
You are not limited to using functional features.


Paolo
-- 
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/
From: J�rgen Exner
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3b02a7d0$1@news.microsoft.com>
"Matthias Blume" <·····@research.bell-labs.com> wrote in message
······················@research.bell-labs.com...
> false and (in some sense) true
> (Functions _are_ first-class objects in C; and you cannot do _elegant_
functional
> programming in C.)

Sorry, that's not correct.
In C the only first-class objects are byte, chars, ints, doubles, ..., and
pointers. These are the only objects you can use
    - as elements of a complex data structure (array, record or however you
want to call it)
    - return value of a function/procedure

Second class objects in C are e.g. strings, arrays, and functions/procedures
because they cannot be be used as elements in a complex data structure or as
a return value of a function.

Of course, because C is so low-level, you can simulate functional
programming by using pointers to functions and for complex datastructes. But
with the same argument could be applied to even assembler.

jue
From: Matthias Blume
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B02E7E3.D3640D53@research.bell-labs.com>
"J�rgen Exner" wrote:
> 
> "Matthias Blume" <·····@research.bell-labs.com> wrote in message
> ······················@research.bell-labs.com...
> > false and (in some sense) true
> > (Functions _are_ first-class objects in C; and you cannot do _elegant_
> functional
> > programming in C.)
> 
> Sorry, that's not correct.
> In C the only first-class objects are byte, chars, ints, doubles, ..., and
> pointers. These are the only objects you can use
>     - as elements of a complex data structure (array, record or however you
> want to call it)
>     - return value of a function/procedure
> 
> Second class objects in C are e.g. strings, arrays, and functions/procedures

A agree about the arrays, C does not have strings so the comment about them
is pointless, and I DO NOT agree about functions.  In C functions are function
pointers, and they are completely first-class because they can be used "as 
elements of a complex data structure (array, record or however you want to
call it)" and they can be the "return value of a function/procedure".

> Of course, because C is so low-level, you can simulate functional
> programming by using pointers to functions

Functions and pointers to functions are the same in C.  There is some slight
syntactic confusion about that because of some apparent differences between
f and (*f).  But the difference is not really there.  If you think about
every function expression F as a pointer to the function, you get the right
interpretation.  In other words, there are no functions in C beyond function
pointers.

Matthias
From: Boris Smilga
Subject: Re: Beginner's Language?
Date: 
Message-ID: <kf4rukkeno.fsf@rome.bhasha.com>
Matthias Blume <·····@research.bell-labs.com> writes:

>                                             <...>  In C functions are function
> pointers, and they are completely first-class because they can be used "as 
> elements of a complex data structure (array, record or however you want to
> call it)" and they can be the "return value of a function/procedure".

Pronouncing this explicitely, "being a first-class object" is not the
same as "being dynamically creatable". [Can one say "creatable" in
English?] The ability to generate first-class procedures (closures) on
the fly is, probably, one of the most pleasant distinctions of Scheme. 
(There are other languages with that feature, of course, but Scheme
was, most likely, the first one to provide it.)

 -BSm
From: ·@b.c
Subject: Re: Beginner's Language?
Date: 
Message-ID: <07a6gt8v3c5vd229vqn7gpg5e4fmlq19r5@4ax.com>
On Wed, 16 May 2001 16:49:39 -0400, Matthias Blume
<·····@research.bell-labs.com> wrote:

>is pointless, and I DO NOT agree about functions.  In C functions are function
>pointers, and they are completely first-class because they can be used "as 

In C, a function has to have a name, and it can't be instantiated at run time
from data available only at run time.  If that's first class, what class is a
Lisp lambda?  Do ordinal numbers go that low?
From: FM
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dvfe7$7t6$1@merrimack.Dartmouth.EDU>
<·@b.c> wrote:
> On Wed, 16 May 2001 16:49:39 -0400, Matthias Blume
> <·····@research.bell-labs.com> wrote:
>
> >is pointless, and I DO NOT agree about functions.  In C functions are function
> >pointers, and they are completely first-class because they can be used "as
>
> In C, a function has to have a name, and it can't be instantiated at run time
> from data available only at run time.

That's a completely different issue. Type "int" is a finite set of
values (as every integral type in C is) and you can say that it's
always instantiated from data avaiable at compile time as well. If
you see a closure as a function/environment pair, then the
"function" part of the closure is static as well. There's nothing
first-class about being able to instantiate at runtime anyway.

On the other hand, there's something odd about calling functions
first-class in C. I'd rather phrase it "function pointers are
first-class values in C." Then again, I'd do the same for Common
Lisp.


Dan.
From: Matthias Blume
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B03D88B.E878B018@research.bell-labs.com>
·@b.c wrote:
> 
> On Wed, 16 May 2001 16:49:39 -0400, Matthias Blume
> <·····@research.bell-labs.com> wrote:
> 
> >is pointless, and I DO NOT agree about functions.  In C functions are function
> >pointers, and they are completely first-class because they can be used "as
> 
> In C, a function has to have a name, and it can't be instantiated at run time
> from data available only at run time.  If that's first class, what class is a
> Lisp lambda?  Do ordinal numbers go that low?

You are confusing issues.  C functions are not exactly the same as functions in
functional programming languages.  C functions are first-order (not to be confused
with first-class). This means that there are no _nested_ functions.  If you leave
out the nested functions from, say, ML (without perturbing anything else), you get 
precisely the C model.  You can still pass these functions around with abandon, but
in implementation terms you don't need more than one instance of each one.

So the problem is one of terminology:

  ML- (or Lisp-) functions are first class.
  C functions are first class.

But:

  ML functions and C functions are not the same concept.

Because:

  ML functions are higher-order.
  C functions are first-order.

In other words, C functions are first-class for what they are, but this does not mean
that they are in some way equivalent to ML functions.

Think of it like this: We can say: "C integers are first class" (which is undisputed,
or so I hope), but C _integers_ are in no way equivalent to ML _reals_ (which are also
first class but otherwise different).

Matthias
From: J�rgen Exner
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3b041055$1@news.microsoft.com>
"Matthias Blume" <·····@research.bell-labs.com> wrote in message
······················@research.bell-labs.com...
> ·@b.c wrote:
[excellent explanation clipped]
>   ML functions and C functions are not the same concept.
> Because:
>   ML functions are higher-order.
>   C functions are first-order.
>
> In other words, C functions are first-class for what they are, but this
does not mean
> that they are in some way equivalent to ML functions.

Very nicely put. That's what I tried to say, but I couldn't phrase it right.

jue
From: David Thornley
Subject: Re: Beginner's Language?
Date: 
Message-ID: <5WjK6.72$Dd5.32782@ruti.visi.com>
In article <············@nh.pace.co.uk>,
Marin David Condic <························@pacemicro.com> wrote:
>First, let me point out that I have no objection to teaching anyone Lisp at
>some later point in their CS education. I have nothing against Lisp, in this
>sense. The reason I wouldn't teach it as a FIRST programming language should
>be fairly obvious. It is complex and unlike the bulk of other programming
>languages. Whatever one decides to teach as a FIRST language ought to be
>simple, easily understood, easy to work with, representative of most
>commonly used languages and reflective of well understood, sound programming
>practices. Lisp tends to not fit this description well at all.
>
C++, properly taught, does.  I don't know if it's properly taught
anywhere.  I've taught C as a first language successfully, and the
areas that gave the most trouble are the areas that I could avoid
using C++.  No more pointers, C-style arrays, C-style string handling,
or printf/scanf.

Now, if you try to learn C++ really well, you'll run into the wolves
that lurk in the corners, but that's not where you'd be teaching a
beginner.

Common Lisp, if taught properly, is also very good.  What you may
be losing by using a language that looks different you make up for
by omitting so much of the felderkarb that other languages have.
In CL, if you need a number, you don't have to decide exactly
what sort of number it is to be before the program works.  More
of a CL program is an attack on the problem than in most languages.


--
David H. Thornley                        | If you want my opinion, ask.
·····@thornley.net                       | If you don't, flee.
http://www.thornley.net/~thornley/david/ | O-
From: Ola Rinta-Koski
Subject: Re: Beginner's Language?
Date: 
Message-ID: <x5zocly361.fsf@arenal.cyberell.com>
········@visi.com (David Thornley) writes:
> C++, properly taught, does.  I don't know if it's properly taught
> anywhere.  I've taught C as a first language successfully, and the
> areas that gave the most trouble are the areas that I could avoid
> using C++.  No more pointers, C-style arrays, C-style string handling,
> or printf/scanf.

  I must be missing something here. What kind of non-trivial program
  can be written without pointers in C++? Certainly not one using any
  OOP features like virtual functions etc.
-- 
        Ola Rinta-Koski                                 ···@cyberell.com
        Cyberell Oy                                     +358 41 467 2502
        Rauhankatu 8 C, FIN-00170 Helsinki, FINLAND	www.cyberell.com
From: David Thornley
Subject: Re: Beginner's Language?
Date: 
Message-ID: <HHCK6.200$Dd5.131237@ruti.visi.com>
In article <··············@arenal.cyberell.com>,
Ola Rinta-Koski  <···@cyberell.com> wrote:
>········@visi.com (David Thornley) writes:
>> C++, properly taught, does.  I don't know if it's properly taught
>> anywhere.  I've taught C as a first language successfully, and the
>> areas that gave the most trouble are the areas that I could avoid
>> using C++.  No more pointers, C-style arrays, C-style string handling,
>> or printf/scanf.
>
>  I must be missing something here. What kind of non-trivial program
>  can be written without pointers in C++? Certainly not one using any
>  OOP features like virtual functions etc.

You can rewrite most C programs that use pointers into C++ programs
that use references and STL vectors, and it is certainly possible
to write non-trivial C programs.  In the context of this thread,
I'm talking about teaching people to program using a language, not
teaching them how best to use a language.  If I were teaching
an introduction to programming class, I'd leave object orientation
for later.

Even there, you don't have to use pointers heavily.  Common Lisp
and Java aren't difficult because almost everything is a pointer
in both languages.  If you teach things like

Fnord *foo = new Fnord;
....
foo->bar(baz);

you can get polymorphism without getting as deep into pointers
as I had to do halfway through an Introduction to Programming in
C class.

I think C++ can be an excellent introductory language, provided
everybody is using standard compilers with standard libraries.
Just don't try to cover anywhere near the whole language in
the introductory course.

--
David H. Thornley                        | If you want my opinion, ask.
·····@thornley.net                       | If you don't, flee.
http://www.thornley.net/~thornley/david/ | O-
From: Mark VandeWettering
Subject: Re: Beginner's Language?
Date: 
Message-ID: <slrn9fkb6b.1lom.markv@peewee.telescopemaking.org>
Marin David Condic <························@pacemicro.com> wrote:

>First, let me point out that I have no objection to teaching anyone Lisp at
>some later point in their CS education. I have nothing against Lisp, in this
>sense. The reason I wouldn't teach it as a FIRST programming language should
>be fairly obvious. It is complex and unlike the bulk of other programming
>languages. Whatever one decides to teach as a FIRST language ought to be
>simple, easily understood, easy to work with, representative of most
>commonly used languages and reflective of well understood, sound programming
>practices. Lisp tends to not fit this description well at all.
>
>If you are familiar with Lisp, try this: Write a small program to read in a
>couple of numbers from a keyboard, do some math with them and print the
>result to the screen. Now look at it. Could a neophite with literally *zero*
>experience in programming computers read it and stand a chance of
>understanding what it does or how it does it? Could a neophite duplicate it
>easily or modify it to do something different? Is it intuitively obvious to
>even the most casual observer how to make a similar program?
>
>That's why I wouldn't recommend Lisp as a first programming language in an
>intro to CS course.
>
>Gee. I never thought I'd have to defend THAT statement! :-)

Well, programming languages are likely to bring out enthusiasts (read 
"zealots") both for and against.

I'll pretend for the moment that we were talking about Scheme, as that
is my preferred variant.  There are a number of features why I believe
it to be an excellent choice for beginning novice programmers.

1)  While some people do get mired in the whole paren thing, Scheme has 
a remarkably simple syntax, simpler than virtually any other programming
language.  The entire language report is reasonably small, even when 
including things like macros and the like.

2) Scheme supports a wide variety of programming styles: from procedural
to functional to object oriented to logic programs.

3) Scheme is interactive, which encourages experimentation.

4) Scheme has good textbooks, including what I consider the best computer
science textbook around: Structure and Interpretation of Computer Programs.

5) Scheme encourages thinking of programs as data.

I could probably dig up some more reasons, but these I think are all quite
compelling.  I'm actually not very fond of untyped languages, but in most
other respects I think it is an excellent choice, indeed, perhaps the 
best one among many possibilities.

	Mark

>
>MDC
>--
>Marin David Condic
>Senior Software Engineer
>Pace Micro Technology Americas    www.pacemicro.com
>Enabling the digital revolution
>e-Mail:    ············@pacemicro.com
>Web:      http://www.mcondic.com/
>
>
>"Friedrich Dominicus" <·····@q-software-solutions.com> wrote in message
>···················@frown.here...
>>
>> Why no Lisp?
>>
>
>
>


-- 
/* __  __ __   ____      __*/float m,a,r,k,v;main(i){for(;r<4;r+=.1){for(a=0;
/*|  \/  |\ \ / /\ \    / /*/a<4;a+=.06){k=v=0;for(i=99;--i&&k*k+v*v<4;)m=k*k
/*| |\/| | \ V /  \ \/\/ / */-v*v+a-2,v=2*k*v+r-2,k=m;putchar("X =."[i&3]);}
/*|_|  |_ark\_/ande\_/\_/ettering <·····@telescopemaking.org> */puts("");}}
From: ·······@my-deja.com
Subject: Re: Beginner's Language?
Date: 
Message-ID: <nm9k83p2pyy.fsf@kindness.mit.edu>
"Marin David Condic" <························@pacemicro.com> writes:

> First, let me point out that I have no objection to teaching anyone Lisp at
> some later point in their CS education. I have nothing against Lisp, in this
> sense. The reason I wouldn't teach it as a FIRST programming language should
> be fairly obvious.

The Scheme dialect of Lisp is, in fact, largely designed with pedagogy
in mind.  It is used as a first programming language not only at places
like MIT, but even in high schools.  Here is some rationale behind such
a choice:

http://www.htdp.org/2001-01-18/Book/node4.htm

> If you are familiar with Lisp, try this: Write a small program to read in a
> couple of numbers from a keyboard, do some math with them and print the
> result to the screen.

Since Scheme is interactive, a beginning programmer doesn't need to
learn keyboard I/O.  Given the amount of GUI and web programming done
these days, why bother?  Beginning programming is more about the process
of transforming input (e.g. function arguments) into output (e.g. return
values), rather than the mechanics of I/O by keyboard, web forms, or
anything else.

But since you asked, here's a Scheme program that takes input both
ways (as function arguments as well as from the keyboard):

(define (quiz op n1 n2)
  (display "Your answer? ")
  (if (equal? (op n1 n2) (read))
      "Correct!"
      (op n1 n2)))

> Now look at it. Could a neophite with literally *zero*
> experience in programming computers read it and stand a chance of
> understanding what it does or how it does it?

Usually "neophyte" refers to someone with non-zero experience.  It
originally meant a newly-ordained priest, not someone with zero church
experience.  Nonetheless, I think the above program could be explained
quickly and understood reasonably by someone with zero experience.

> Could a neophite duplicate it easily or modify it to do something
> different?

Yes, although they can already do a lot with it as-is.  You can quiz
yourself on addition, multiplication, GCD, LCM, and pretty much any math
operation that takes two numbers.

> Is it intuitively obvious to even the most casual observer how to make
> a similar program?

At least as obvious, if not moreso, than it would be in other
programming language.

> That's why I wouldn't recommend Lisp as a first programming language in an
> intro to CS course.
> 
> Gee. I never thought I'd have to defend THAT statement! :-)

Given that the Scheme dialect of Lisp *has* been used as a first
programming language in so many schools, you shouldn't be surprised.

http://www.schemers.com/schools.html

Followups set to comp.lang.scheme
From: Francis Leboutte
Subject: Re: Beginner's Language?
Date: 
Message-ID: <gbmkft4keqk5b7kg1r2lko0bmn9ssqnv67@4ax.com>
"Marin David Condic" <························@pacemicro.com> wrote:

>...
>That's why I wouldn't recommend Lisp as a first programming language in an
>intro to CS course.

Lisp was my first programming language. It has been a pleasure and easy. Since
then, I have always regretted to have to program in other languages, even if
sometimes it was fun too.

>Gee. I never thought I'd have to defend THAT statement! :-)

Maybe you will learn something :-)

>MDC

--
www.algo.be
Logo programming : www.algo.be/logo.html
From: Georg Bauhaus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9deb6a$hdp$1@a1-hrz.uni-duisburg.de>
Marin David Condic (························@pacemicro.com) wrote:

: If you are familiar with Lisp, try this: Write a small program to read in a
: couple of numbers from a keyboard, do some math with them and print the
: result to the screen. Now look at it. Could a neophite with literally *zero*


Then, Ola Rinta-Koski (with f'Up to iso-something):

"(let ((foo 0))
  (dotimes (i 5)
    (incf foo (read)))
  foo)

[is easy]"

: That's why I wouldn't recommend Lisp as a first programming language in an
: intro to CS course.

: Gee. I never thought I'd have to defend THAT statement! :-)

The above looks like Scheme with macros(?) and has a few didactical
problems, as I'd like to report, with some additional guesses thrown in.
(not to say that these problems are not present in many or all
other languages): You may have to answer some questions from your
inexperieced(!) listeners,
- what is let? and then: why do I have to place an additional pair
  of parens around foo 0?
- what is i for?
- what does it mean that this foo is standing on its own
  on the last line?
- if the first thing in a list is a function that does something
  with the rest, then what function is i?
- ...

As you may see by now, there _is_ some complexity even
behind the most "simple" syntax, and while, of course,
all these questions can be answered, the tree (or graph?)
of follow up questions is going to grow large.
So some of these things (like creating "variables") had
better explain themselves a bit more, i.e. without
overloaded parentheses, for example.

When it was my job to teach OO Prgramming with Java :-( to
grown ups with essentially only high school math background,
(it had to be Java, by contract) I was puzzled that there
was no problem in talking about graphs and trees of inheritance
at a very early stage (though not formally, and by example),
but it was _very_
difficult to explain the concept of a function, what it is,
what it is there for, let alone, what it is as a method of
some class.

(All these phaenomena may be my fault, but in this case, I don't
think so.)

 One reason seems to be abstraction: If they have
been doing math for years, it doesn't seem difficult to
see that there is a form in "multiply the number of
goods by their respective prices" that can be used for
anything that has a price, be it bread or a house or a
service. And to find a notation for this function.
But it does seem to become difficult at the point
where familiarity stops: real machines, real data,
real OSs, and the first new syntax, math background or not.

What worked well was flow charts. Very well, indeed.
But which language serves well in the transport of flow
charts to code, and does so after a few introductory words?
I'll vote for a language that has a lucid syntax for this
like "IF condition THEN do_this, OTHERWISE do_that."
until, after formal training, a alternative approach becomes
feasable.
(Maybe the punctiation (which carries meaning!) could
be replaced with words, so people don't become annoyed
with orthographical issues right from the beginning?
Or should they be drilled to formal exactitude? :-)

What I think is lively important in the choice of a 
first programming language, is to have a visual hook in them
to explain fundamental issues (like why "c = c + 1" is
valid in languages actually taught, and which needs
some notion of an accumulator or equivalent, on computers).

If you want to know how to code, you will
have to know a setq-free and a setq-only approach
(after all, there is memory, in real machines at some
level). Is there a good way to do only one of them at
the beginning? I don't know but I would love to read
some real empirical evidence.


Georg Bauhaus

PS: What I find puzzling is the lack of an abundance of
statements from
people who have actually taught several very different
languages...

PPS: And as for beginners with math skills, who cannot yet
master SICP, Abelson's LOGO book _is_ a good reading,
I find.
From: Jochen Schmidt
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9deggj$httk3$1@ID-22205.news.dfncis.de>
Georg Bauhaus wrote:

> Marin David Condic (························@pacemicro.com) wrote:
> 
> : If you are familiar with Lisp, try this: Write a small program to read
> : in a couple of numbers from a keyboard, do some math with them and print
> : the result to the screen. Now look at it. Could a neophite with
> : literally *zero*
> 
> 
> Then, Ola Rinta-Koski (with f'Up to iso-something):
> 
> "(let ((foo 0))
>   (dotimes (i 5)
>     (incf foo (read)))
>   foo)
> 
> [is easy]"
> 
> : That's why I wouldn't recommend Lisp as a first programming language in
> : an intro to CS course.
> 
> : Gee. I never thought I'd have to defend THAT statement! :-)
> 
> The above looks like Scheme with macros(?) and has a few didactical
> problems, as I'd like to report, with some additional guesses thrown in.

It seems to be CommonLisp. You could also write:

(loop :repeat 5 :sum (read))

Which is maybe easier to understand.
        

> (not to say that these problems are not present in many or all
> other languages): You may have to answer some questions from your
> inexperieced(!) listeners,
> - what is let? and then: why do I have to place an additional pair
>   of parens around foo 0?
> - what is i for?
> - what does it mean that this foo is standing on its own
>   on the last line?
> - if the first thing in a list is a function that does something
>   with the rest, then what function is i?
> - ...

some of your questions are IMHO biased through your knowledge of languages 
like Pascal, C...
If they are _really_ newbies some of those questions will *never* arise 
because they have nothing to compare with (like you do here)

Taking the example in C

#include <stdio.h>
 
int main (int argc, char** argv) {
  int sum=0;
  int foo=0;
  int i=0;
  for (;i<5;++i) {
     scanf("%d", &foo);
     sum=sum+foo;
  }
  printf("%d", sum);
}

It is not clear to me that this could be easier to explain then the first 
Lisp-variant.

- What is #include
- What is <stdio.h>
- What is int
- What is main
- What is argc
- What is char** (!!!)
- What is argv
- what is for
- why are ";" used in for instead of "," in other places...
- what is scanf
- what is this %d thingy
- what is the & before foo
- what is printf
- What are those {,} all around
- If functions are recocnized by a opening paren after there name, why
  are the parameters of the function foo splitted by ";" and why is there no
  ";" at the end of the line but this "{" thingy....

Pascal is not much easier in this point...

BASIC:

FOR i = 0 TO 5
  INPUT foo
  sum = sum + foo
NEXT i
PRINT sum

would be rather understandable but is IMHO beaten by far through

(loop :repeat 5 :sum (read))

But I've to say that it is absolutely unrealistic to begin with such a 
function. The first lessons should *not* contain any control-statements.
The nice thing with Lisp is that you can begin with simple arithmetic 
without teaching I/O Functions first. So they can compare the first lessons 
with using a more and more sophisticated calculator.

Regards,
Jochen
From: Friedrich Dominicus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <87k83pi19j.fsf@frown.here>
Jochen Schmidt <···@dataheaven.de> writes:

> 
> #include <stdio.h>
>  
> int main (int argc, char** argv) {
int main (void) should be enough here ;-)
>   int sum=0;
>   int foo=0;
>   int i=0;
>   for (;i<5;++i) {
>      scanf("%d", &foo);
>      sum=sum+foo;
>   }
>   printf("%d", sum);
> }
> 
> It is not clear to me that this could be easier to explain then the first 
> Lisp-variant.
> 
> - What is #include
> - What is <stdio.h>
> - What is int
> - What is main


> - What is argc
unessary
> - What is char** (!!!)
dito 
> - What is argv
dito

Till then Friedrich
From: Ola Rinta-Koski
Subject: Re: Beginner's Language?
Date: 
Message-ID: <x5n18kxrrs.fsf@arenal.cyberell.com>
·······@l1-hrz.uni-duisburg.de (Georg Bauhaus) writes:
> Marin David Condic (························@pacemicro.com) wrote:
> : If you are familiar with Lisp, try this: Write a small program to read in a
> : couple of numbers from a keyboard, do some math with them and print the
> : result to the screen. Now look at it. Could a neophite with literally *zero*

> Then, Ola Rinta-Koski (with f'Up to iso-something):
> 
> "(let ((foo 0))
>   (dotimes (i 5)
>     (incf foo (read)))
>   foo)
> 
> [is easy]"

> : That's why I wouldn't recommend Lisp as a first programming language in an
> : intro to CS course.
> 
> : Gee. I never thought I'd have to defend THAT statement! :-)
> 
> The above looks like Scheme with macros(?)

  But is in fact straight ANSI Common Lisp.

> and has a few didactical problems, as I'd like to report, with some
> additional guesses thrown in.  (not to say that these problems are
> not present in many or all other languages): You may have to answer
> some questions from your inexperieced(!) listeners,

  But of course. That's what the teacher's job is.

> So some of these things (like creating "variables") had better
> explain themselves a bit more, i.e. without overloaded parentheses,
> for example.

  And is there a rationale for this statement? Would it be better to
  use brackets or curly brackets, so as not to use parentheses for
  different purposes?

  No language, even one designed solely for the purpose of teaching,
  will be completely self-explanatory for a neophyte. What remains to
  be debated is the degree of help needed for the student to "get
  it". I am not advocating (Common) Lisp as a first language per se; I
  am merely stating that it would not automatically be a worse choice
  than <pick-your-lingo>.

> PS: What I find puzzling is the lack of an abundance of statements
> from people who have actually taught several very different
> languages...

  On what basis do you make this statement? I can't speak for others,
  but I have taught C and C++ in addition to Lisp. If you want
  comments from only those with at least (say) five (or ten, or
  twenty, or...) languages on the list, you'll have a quiet
  conversation.
-- 
        Ola Rinta-Koski                                 ···@cyberell.com
        Cyberell Oy                                     +358 41 467 2502
        Rauhankatu 8 C, FIN-00170 Helsinki, FINLAND	www.cyberell.com
From: Georg Bauhaus
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9dgu2l$eeo$1@a1-hrz.uni-duisburg.de>
Ola Rinta-Koski (···@cyberell.com) wrote:

[Georg says:
 (let ((foo 0)) ...) may confuse beginners because of double parens]

:   And is there a rationale for this statement? Would it be better to
:   use brackets or curly brackets, so as not to use parentheses for
:   different purposes?

Every language has syntactical quirks, no doubt, I think this has
been said many times in this thread. In this case, using LET
involves several advanced concepts, or at least, it could,
for beginners. And as you have written, it is the teachers job
to explain them.

Now there are languages where variables spring into existence
when you name them. Good for beginners? Is scoping, besides
beeing required and good knowledge, an obstacle in some first
"Read five numbers" program? (Well, I don't think so,
_after_ some explanaitions about simpler language facilities.)

How many basic concepts do you need? Is this number relevant?
If so, to what? How difficult are they to remember syntax-wise?
From the little I know, most languages used will do, in combination
with good teachers and texts, so lets hope there are enough
good teachers :-) (I'm not a teacher, but in times, I teach
and can only say this is a hard job if you are seriously 
trying to explain basics, no matter what language is used.)

Some posts have shown up that give credits to verbosity,
so should the syntax be verbose as well? 

function square a number
 with argument num
 returning squared
is defined as
 squared becomes num * num
return

Well...
I have no chance to try this out, has someone some
experience with this issue? (if this is an issue, i.e.:-) 

So, yes:

:   No language, even one designed solely for the purpose of teaching,
:   will be completely self-explanatory for a neophyte. What remains to
:   be debated is the degree of help needed for the student to "get
:   it". I am not advocating (Common) Lisp as a first language per se; I
:   am merely stating that it would not automatically be a worse choice
:   than <pick-your-lingo>.


: > PS: What I find puzzling is the lack of an abundance of statements
: > from people who have actually taught several very different
: > languages...

:   On what basis do you make this statement? I can't speak for others,
:   but I have taught C and C++ in addition to Lisp. If you want
:   comments from only those with at least (say) five (or ten, or
:   twenty, or...) languages on the list, you'll have a quiet
:   conversation.

Chances are that this is due to them not reading or posting news,
I'd say. OTOH, there are many who have defended their dearest language
when language superiority for (task x not= teaching) is
not the issue.  For example, you could use Ada without nested
procedures for a start, and certainly without generics.
You could use some LISP without passing functions around,
although both are essential features of the respective
languages. (Meyer has dedicated a whole chapter in OOSC2 to teaching
Eiffel to students at different levels, BETA has been used
here some time ago, so who knows...)
But could you use languages that, internally, can be considered
as understandable in terms of trees, like PROLOG, when those
who have to learn programming, don't have a clear notion of trees yet?

From an old primer for SNOBOL4, I remember a sentence from
the preface that stated that you would have to know the meaning
of the most basic technical terms, or else programming will soon
become frustrating. Therefore, if the number of such technicalities
even for a subset of some language is high, it may not be the best
choice. class Obstacle { public static void main (String[] args) {
}}, a variation of what Jochen said. (From my experience, it is
_not_ the boilerplate stuff, but the syntax clutter, that makes C
syntax hard to comprehend: most symbols don't do anything that
has to do with data manipulation or calculations.)

One thing I would like to add to the discussion is
the quality of error messages. Imagine the translator complains
about an error and you cannot see the relation to your code
without some deeper knowledge of your language ...


Georg Bauhaus
From: Dodger
Subject: Re: Beginner's Language?
Date: 
Message-ID: <qUGJ6.53934$B22.13742966@news1.rdc2.pa.home.com>
"Marin David Condic" <························@pacemicro.com> wrote in
message ·················@nh.pace.co.uk...

> My advice for a first programming language would be Ada (for a lot of
> reasons besides being my favorite language :-) followed by Pascal & maybe
> Modula-2. Save the other stuff until the students have progressed a
little.

Got a better one. It's terrible (which is a better representation of what
they will end up doing, most likely), and wonky, and regardless of all your
opinions of perl for weal or woe, it makes Perl look beautiful...

But, it will get kids programming.

LPC. Set them up a mud. Get them to code LPC (a whacked out MUD code C-based
...thing...) or some other MU* code that is actually programmable.

After their fifth soul-sucking sword or beer vending machine or pseudo-AI
dragonbot, they will have some ideas of what they are doing, most likely,
and the ideas on how it really workds will sink into their brains.

Besides, think of it like this: You can theorise about what cough medicine
to give a two year old all you want, too, but Dimetapp tastes like Koolaid,
and they won't spit it out.

--
Dodger
www.dodger.org
www.necrosoft.net
www.gothic-classifieds.com
From: Lex Spoon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m3eltpz11h.fsf@chaos.resnet.gatech.edu>
"Dodger" <······@necrosoft.net> writes:

> "Marin David Condic" <························@pacemicro.com> wrote in
> message ·················@nh.pace.co.uk...
> 
> > My advice for a first programming language would be Ada (for a lot of
> > reasons besides being my favorite language :-) followed by Pascal & maybe
> > Modula-2. Save the other stuff until the students have progressed a
> little.
> 
> Got a better one. It's terrible (which is a better representation of what
> they will end up doing, most likely), and wonky, and regardless of all your
> opinions of perl for weal or woe, it makes Perl look beautiful...
> 
> But, it will get kids programming.
> 
> LPC. Set them up a mud. Get them to code LPC (a whacked out MUD code C-based
> ...thing...) or some other MU* code that is actually programmable.


Amy Bruckman's Moose Crossing is a mud intended as a place for kids to
learn about programming:

    http://www.cc.gatech.edu/elc/moose-crossing/

If you think muds for programming is interesting, you should
definitely look into Moose Crossing.


Lex Spoon
From: Markus Kliegl
Subject: Re: Beginner's Language?
Date: 
Message-ID: <ae4dry1c.fsf@linux.holy-unicorn>
Lex Spoon <···@cc.gatech.edu> writes:

> "Dodger" <······@necrosoft.net> writes:
> 
> > "Marin David Condic" <························@pacemicro.com> wrote in
> > message ·················@nh.pace.co.uk...
> > 
> > > My advice for a first programming language would be Ada (for a lot of
> > > reasons besides being my favorite language :-) followed by Pascal & maybe
> > > Modula-2. Save the other stuff until the students have progressed a
> > little.
> > 
> > Got a better one. It's terrible (which is a better representation of what
> > they will end up doing, most likely), and wonky, and regardless of all your
> > opinions of perl for weal or woe, it makes Perl look beautiful...
> > 
> > But, it will get kids programming.
> > 
> > LPC. Set them up a mud. Get them to code LPC (a whacked out MUD code C-based
> > ...thing...) or some other MU* code that is actually programmable.
> 
> 
> Amy Bruckman's Moose Crossing is a mud intended as a place for kids to
> learn about programming:
> 
>     http://www.cc.gatech.edu/elc/moose-crossing/
> 
> If you think muds for programming is interesting, you should
> definitely look into Moose Crossing.
> 
> 
> Lex Spoon
> 

What is Moose as a language like, though? Is it a well-designed language
(I only saw something about it being OO, which is obviously essential for
a MUD programming language, anyway)? LPC is quite an interesting language,
as it offers a lower-level language, a C-like language without pointers
and efficient closures, so besides being extremely impure, it at least
has first-class functions :-)

Been a while since I had a look at LPC, so I hope I didn't get anything
wrong.

-- 
Markus Kliegl
From: Lex Spoon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m37kzda020.fsf@chaos.resnet.gatech.edu>
> > 
> > Amy Bruckman's Moose Crossing is a mud intended as a place for kids to
> > learn about programming:
> > 
> >     http://www.cc.gatech.edu/elc/moose-crossing/
> > 
> > If you think muds for programming is interesting, you should
> > definitely look into Moose Crossing.
> > 
> > 
> > Lex Spoon
> > 
> 
> What is Moose as a language like, though? Is it a well-designed language
> (I only saw something about it being OO, which is obviously essential for
> a MUD programming language, anyway)? LPC is quite an interesting language,
> as it offers a lower-level language, a C-like language without pointers
> and efficient closures, so besides being extremely impure, it at least
> has first-class functions :-)
> 
> Been a while since I had a look at LPC, so I hope I didn't get anything
> wrong.
> 


I don't know a lot about it -- I just *hear* a lot about it, because
Amy Bruckman is a professor at my university and her PhD project gets
a lot of discussion.  I'll share what I've picked up.

The most striking is an English-like syntax, which is valuable for
newbies but of questionable use for more experienced programmers.  The
second thing to note is that it has a GUI.  You don't have to learn a
lot of console commands to modify your programs -- you select an
object and then it pops up in a local editting window, where you can
view all the available methods and instance variables and then mess
around with them.


Regarding power, I know that it has threads, and I suppose that it has
objects (each MUD object being an object).  I don't know if it has
something like closures.  At any rate, I get the impression it's not a
great place to learn about extremely fancy algorithms.  It's a place,
as far as I can tell, that is best used to learn those first steps
like flow of control, instance variables, and saying *exactly* what
you mean.


Lex
From: Tarjei T. Jensen
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9d867n$ort13@news.kvaerner.com>
Marin David Condic wrote
>My advice for a first programming language would be Ada (for a lot of
>reasons besides being my favorite language :-) followed by Pascal & maybe
>Modula-2. Save the other stuff until the students have progressed a little.

But none of these are any improvement on Ada or sufficiently different to be
of paedagogic value. Well, perhaps Delphi for a windows project to
familiarize student with windows programming.


Greetings,
From: ronald schroder
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3af79d85.1462818@news.minvenw.nl>
On Tue, 8 May 2001 09:11:46 +0200, "Tarjei T. Jensen"
<·············@kvaerner.com> wrote:

>But none of these are any improvement on Ada or sufficiently different to be
>of paedagogic value. Well, perhaps Delphi for a windows project to
>familiarize student with windows programming.
>
I was taught Pascal in the early days, in the tradition set by
professor Edsger W. Dijkstra et al., and it didn't hurt me.
Pascal can be a very paedogogic language, was indeed designed to be
just that. And I still use Delphi, even like it.
Scheme was a fourth or fifth language for me and I like it, but I
wouldn't deem it proper for a first course. Procedural programming IS
a low level business, but it helps us to see that computers do what we
tell them, not what we want them to do.

Ronald Schr�der
From: Lex Spoon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m3ae4dyyck.fsf@chaos.resnet.gatech.edu>
> Scheme was a fourth or fifth language for me and I like it, but I
> wouldn't deem it proper for a first course. Procedural programming IS
> a low level business, but it helps us to see that computers do what we
> tell them, not what we want them to do.


Others disagree, of course.  One wonderful thing about Scheme is that
it's very easy to learn recursion with it.  I don't think I really
understood recursion until I saw the way it's formulated in Scheme:

        (defun myfunc (x1 x2)
          (cond
            ((base case 1)  (code for base case 1))
            ((base case 2)  (code for base case 2))
            ((... however many base cases you want...))
            ((recursive case)  (recursive code))))



There are lots of things to think about when picking an initial
language.  One of the most important for rank beginners is the
*primitives* that are available.  If the learner is happy averaging
lists of numbers and generating sentences and things like that, then
Scheme is a wonderful place to start, but many beginners would be
happier playing with graphical objcets....

Lex
From: Tim May
Subject: Re: Beginner's Language?
Date: 
Message-ID: <tcmay-2C1AFC.17543016052001@news.got.net>
In article <··············@chaos.resnet.gatech.edu>,
 Lex Spoon <···@cc.gatech.edu> wrote:

> > Scheme was a fourth or fifth language for me and I like it, but I
> > wouldn't deem it proper for a first course. Procedural programming IS
> > a low level business, but it helps us to see that computers do what we
> > tell them, not what we want them to do.
> 
> 
> Others disagree, of course.  One wonderful thing about Scheme is that
> it's very easy to learn recursion with it.  I don't think I really
> understood recursion until I saw the way it's formulated in Scheme:
> 
>         (defun myfunc (x1 x2)
>           (cond
>             ((base case 1)  (code for base case 1))
>             ((base case 2)  (code for base case 2))
>             ((... however many base cases you want...))
>             ((recursive case)  (recursive code))))

But there are all those parentheses! It hurts my brain.

(Oh, you mean other languages have their own mixtures of semicolons, 
colons, brackets, and other symbols?)

As a physicist who hated Fortran when he studied it in the early 70s, 
after playing with Basic in the late 60s, and who then looked at Pascal 
and similar languages in the late 70s, I was thrilled to learn Lisp in 
the mid-80s...it made so much sense, and the Flavors system supported 
objects pretty well. Specifically, Zetalisp on a Symbolics 3670.

Some co-workers used my Vax for some Ada work, circa 1981, but I never 
learned any Ada. It exposed me to objects, though. Or at least the 
project it was being used for, the Intel iAPX 432, did.

Smalltalk was essentially unavailable at the time I learned Lisp. It was 
crudely available on general machines by the mid-80s. I bought Smalltalk 
Agents for my Mac in the mid-90s, but QKS sort of went away. Today, I am 
excited by Squeak, a full-blown (and more) Smalltalk. Runs on nearly 
every platform. Open source. Good stuff.

For beginners, I have no idea which language is best. I know that 
Fortran punchcards for use on an IBM 360/75 is a horrible introduction 
to computing.

--Tim May

-- 
Timothy C. May         ·····@got.net        Corralitos, California
Political: Co-founder Cypherpunks/crypto anarchy/Cyphernomicon
Technical: physics/soft errors/Smalltalk/Squeak/agents/games/Go
Personal: b.1951/UCSB/Intel '74-'86/retired/investor/motorcycles/guns
From: Gary Scott
Subject: Re: Beginner's Language?
Date: 
Message-ID: <3B032646.34265D84@flash.net>
Tim May wrote:
> 
> In article <··············@chaos.resnet.gatech.edu>,
>  Lex Spoon <···@cc.gatech.edu> wrote:
> 
> > > Scheme was a fourth or fifth language for me and I like it, but I
> > > wouldn't deem it proper for a first course. Procedural programming IS
> > > a low level business, but it helps us to see that computers do what we
> > > tell them, not what we want them to do.
> >
> >
> > Others disagree, of course.  One wonderful thing about Scheme is that
> > it's very easy to learn recursion with it.  I don't think I really
> > understood recursion until I saw the way it's formulated in Scheme:
> >
> >         (defun myfunc (x1 x2)
> >           (cond
> >             ((base case 1)  (code for base case 1))
> >             ((base case 2)  (code for base case 2))
> >             ((... however many base cases you want...))
> >             ((recursive case)  (recursive code))))
> 
> But there are all those parentheses! It hurts my brain.
> 
> (Oh, you mean other languages have their own mixtures of semicolons,
> colons, brackets, and other symbols?)
> 
> As a physicist who hated Fortran when he studied it in the early 70s,
> after playing with Basic in the late 60s, and who then looked at Pascal
> and similar languages in the late 70s, I was thrilled to learn Lisp in
> the mid-80s...it made so much sense, and the Flavors system supported
> objects pretty well. Specifically, Zetalisp on a Symbolics 3670.
> 
> Some co-workers used my Vax for some Ada work, circa 1981, but I never
> learned any Ada. It exposed me to objects, though. Or at least the
> project it was being used for, the Intel iAPX 432, did.
> 
> Smalltalk was essentially unavailable at the time I learned Lisp. It was
> crudely available on general machines by the mid-80s. I bought Smalltalk
> Agents for my Mac in the mid-90s, but QKS sort of went away. Today, I am
> excited by Squeak, a full-blown (and more) Smalltalk. Runs on nearly
> every platform. Open source. Good stuff.
> 
> For beginners, I have no idea which language is best. I know that
> Fortran punchcards for use on an IBM 360/75 is a horrible introduction
> to computing.

Fortran 95 or "F" on Wintel or Linux x86, would however be an excellent
choice.  Most widely available system, free versions of "F" are
available for most platforms.

> 
> --Tim May
> 
> --
> Timothy C. May         ·····@got.net        Corralitos, California
> Political: Co-founder Cypherpunks/crypto anarchy/Cyphernomicon
> Technical: physics/soft errors/Smalltalk/Squeak/agents/games/Go
> Personal: b.1951/UCSB/Intel '74-'86/retired/investor/motorcycles/guns


-- 

Gary Scott
·············@flash.net

················@fortranlib.com
http://www.fortranlib.com

Support the GNU Fortran G95 Project:  http://g95.sourceforge.net
From: Tom Lake
Subject: Re: Beginner's Language?
Date: 
Message-ID: <BYKM6.91970$r3.18818401@typhoon.nyroc.rr.com>
Very nice but none of this has any relevance to BASIC programmers.  Could
you guys cut out the references to the BASIC newsgroups from your list of
newsgroups?  We're getting cluttered up and it's really confusing the many
beginners who are asking for our help.  I've been programming in BASIC for a
living for thirty years (even before Gates and Co. made it popular) and have
never run into a situation where BASIC couldn't be used to solve any problem
I encountered.  TIA

Tom Lake
From: Lex Spoon
Subject: Re: Beginner's Language?
Date: 
Message-ID: <m33da19zaz.fsf@chaos.resnet.gatech.edu>
"Tom Lake" <·····@twcny.rr.com> writes:

> Very nice but none of this has any relevance to BASIC programmers.  Could
> you guys cut out the references to the BASIC newsgroups from your list of
> newsgroups?  We're getting cluttered up and it's really confusing the many
> beginners who are asking for our help.  

So you say...



> I've been programming in BASIC for a
> living for thirty years (even before Gates and Co. made it popular) and have
> never run into a situation where BASIC couldn't be used to solve any problem
> I encountered.  TIA


And then you join in.  Welcome.  :) BASIC was intended as a beginner's
language, was it not?  If you think BASIC is so great, then why should
anyone bother with Scheme or Pascal or Smalltalk or anything else?



Lex
From: Charles Hixson
Subject: Re: Beginner's Language?
Date: 
Message-ID: <CjHM6.10998$gc1.978820@newsread1.prod.itd.earthlink.net>
Tim May wrote:

> In article <··············@chaos.resnet.gatech.edu>,
>  Lex Spoon <···@cc.gatech.edu> wrote:
> 
>> > Scheme was a fourth or fifth language for me and I like it,
>> > but I wouldn't deem it proper for a first course. Procedural
>> > programming IS a low level business, but it helps us to see
>> > that computers do what we tell them, not what we want them to
>> > do.
>> 
>> 
>> Others disagree, of course.  One wonderful thing about Scheme
>> is that
>> it's very easy to learn recursion with it.  I don't think I
>> really understood recursion until I saw the way it's formulated
>> in Scheme:
>> 
>>         (defun myfunc (x1 x2)
>>           (cond
>>             ((base case 1)  (code for base case 1))
>>             ((base case 2)  (code for base case 2))
>>             ((... however many base cases you want...))
>>             ((recursive case)  (recursive code))))
> 
> But there are all those parentheses! It hurts my brain.
> ...
> For beginners, I have no idea which language is best. I know
> that Fortran punchcards for use on an IBM 360/75 is a horrible
> introduction to computing.
> 
> --Tim May
> 

Clearly one should start with 7094 assembler.  And coding forms.  
Key punch machines are too expensive to allow beginners to play 
with.  Dig your teeth into FAP (Fortran Assembly Program?  I 
forget.)  After awhile you'll be ready to try Fortran II.   :-)

Of course, I was told that one should learn by flipping console 
switches, and rewiring EAM cards.  It must have worked, or 
Fortran and Cobol could never have been built.
From: Biep @ http://www.biep.org/
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9e01ge$aqom$1@ID-63952.news.dfncis.de>
"Lex Spoon" <···@cc.gatech.edu> wrote in message
···················@chaos.resnet.gatech.edu...
> If the learner is happy averaging lists of numbers
> and generating sentences and things like that,
> then Scheme is a wonderful place to start,
> but many beginners would be happier playing with graphical objects..

.. and for them (PLT) Scheme is a wonderful place to start.

--
Biep
Reply via http://www.biep.org
From: illya
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9e0gr9$n2q$05$1@news.t-online.com>
Yes, for more easier lerning test:

http://www.perl-maker.com

Greetings
illi

Biep @ http://www.biep.org/ <·········@my-web-site.com> schrieb in im
Newsbeitrag: ·············@ID-63952.news.dfncis.de...
> "Lex Spoon" <···@cc.gatech.edu> wrote in message
> ···················@chaos.resnet.gatech.edu...
> > If the learner is happy averaging lists of numbers
> > and generating sentences and things like that,
> > then Scheme is a wonderful place to start,
> > but many beginners would be happier playing with graphical objects..
>
> .. and for them (PLT) Scheme is a wonderful place to start.
>
> --
> Biep
> Reply via http://www.biep.org
>
>
>
>
From: Marin David Condic
Subject: Re: Beginner's Language?
Date: 
Message-ID: <9d8st9$t2r$1@nh.pace.co.uk>
If it were me, I'd just use Ada and be done with it. However, some people
may have too much of an anti-Ada bias and would refuse to use it in their
course - in which case I'd suggest considering Pascal or some other similar
language that is reasonably well known and available & provides the right
sort of constructs for teaching about how to think about programming.

You're right - there is no advantage over Ada. This is especially true since
Gnat is generally available, of descent quality and has plenty of
educational materials associated with it. A prof can hand students an
intro-level text, a compiler, an IDE with debugging capabilites and plenty
of examples of working code - all of it free or reasonably inexpensive (The
book is about all you'd have to pay for.) Syntactically and semantically,
Ada is better than Pascal & many other languages and offers plenty of room
for the student to grow. I'd use Ada for an intro class and not look back -
but obviously some people have an irrational attitude about it. (Just lets
watch how long it takes the cross-posting of this thread to bring out the
Anti-Ada bigots who know nothing of the language and have never used it, yet
*know* they hate it. :-)

I had a prof in business school who taught MIS for MBA's. He found out I
used Ada on the job and immediately began snearing at it and commenting on
it with contempt and wondering who it was who was "forcing" us to use Ada.
In conversation, I discovered that he knew *nothing* of Ada beyond rumors.
He was pretty well astonished that we would use Ada *by*choice* because we
found it technically superior. If this is the sort of prof who proposes
teaching an intro level class on programming, I'd rather he at least went
with Pascal rather than trying to teach beginners with C++ or something
equally unsuitable.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    ············@pacemicro.com
Web:      http://www.mcondic.com/


"Tarjei T. Jensen" <·············@kvaerner.com> wrote in message
·················@news.kvaerner.com...
> But none of these are any improvement on Ada or sufficiently different to
be
> of paedagogic value. Well, perhaps Delphi for a windows project to
> familiarize student with windows programming.
>
From: raj
Subject: Beginner's Ide
Date: 
Message-ID: <7p1hfto4sa6d4sek62ipntjsrvaqsvodtt@4ax.com>
>You're right - there is no advantage over Ada. This is especially true since
>Gnat is generally available, of descent quality and has plenty of
>educational materials associated with it. A prof can hand students an
>intro-level text, a compiler, an IDE with debugging capabilites and plenty
>of examples of working code - all of it free or reasonably inexpensive (The
>book is about all you'd have to pay for.) 

The GNAT IDE should be avoided like the plague.
Aonix do a nice free ( for noncommercial use ) compiler + Ide that
should be fine for students.
From: Marin David Condic
Subject: Re: Beginner's Ide
Date: 
Message-ID: <9dbii0$sl0$1@nh.pace.co.uk>
I don't know what you don't like about AdaGIDE. It is not terribly
sophisticated, but it does work reasonably well for relatively smallish
projects. Perhaps the Aonix environment is a better thing - maybe its just a
matter of taste. One point to observe here is that there are at least two
available compilers and environments suitable for teaching a programming
course and both are available to students at no cost. IMHO, that's a good
thing and a reason to use Ada in a CS department.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    ············@pacemicro.com
Web:      http://www.mcondic.com/


"raj" <········@optushome.com.au> wrote in message
·······································@4ax.com...
> The GNAT IDE should be avoided like the plague.
> Aonix do a nice free ( for noncommercial use ) compiler + Ide that
> should be fine for students.
>
From: chris.danx
Subject: Re: Beginner's Ide
Date: 
Message-ID: <WAcK6.788$577.216783@news2-win.server.ntlworld.com>
> I don't know what you don't like about AdaGIDE. It is not terribly
> sophisticated, but it does work reasonably well for relatively smallish
> projects.

I don't know what he's got against it either.  I use AdaGIDE all the time and
it's fine for me.  In the beginning I had some problems with it not putting the
package name in the save box but this is fixed now so i have few problems with
it.  The only real annoying thing is that i can't open multiple AdaGIDEs' in
Win98 anymore and i don't know why.  It was especially good for fixing broken
programs where i'd put the main program in one AdaGIDE and the broken package
body in another.  This might just be a windows thing though.  Any thoughts?

Danx
From: Simon Wright
Subject: Re: Beginner's Language?
Date: 
Message-ID: <x7vr8xzdr59.fsf@smaug.pushface.org>
"Marin David Condic" <························@pacemicro.com> writes:

> My advice for a first programming language would be Ada (for a lot
> of reasons besides being my favorite language :-) followed by Pascal
> & maybe Modula-2. Save the other stuff until the students have
> progressed a little.

All very heavy, what about Logo? (after all, it was designed for
beginners).

-S (tongue _not_ in cheek)
From: raj
Subject: Re: Beginner's Language?
Date: 
Message-ID: <6dimftcc7cefpqkk12hfvu9e09on0k50r9@4ax.com>
>All very heavy, what about Logo? (after all, it was designed for
>beginners).

I have taught Logo to my children.
My experience has been that after a few lessons, they lose
interest....

However, I was able to reinterest my 9 year old in programming by
using Game Maker by Mark Overmars.
Games can be made using drag and drop, but very soon one finds that
the "built in programming language " is necessary.
He loved being able to creat his own games.
However, he has now graduated to Black and White which is a little
beyond Game Maker's ability !

Check.
http://www.cs.ruu.nl/people/markov/kids/index.html

I just noticed that Mark had a program called Drape, a "Visual lego
for preschoolers who cannot read" . I havent checked that out yet.

Blurb from the site:
"Did you always want to design computer games but don't you want to
spend a lot of time learning to become a programmer?
Then you came to the right place. Game Maker is a program that allows
you to make exciting computer games without the need to write a single
line of code.
Using easy to learn drag-and-drop actions you can make professional
looking games in little time. Games with backgrounds, animated
graphics, music and sound effects. And once you get more experienced
there is a built-in programming language that gives you full
flexibility. What is best, Game Maker can be used completely free
of charge. And you can use the games you produced in any way you like.
You can even sell them!"
From: Biep @ http://www.biep.org/
Subject: OZ as a beginners' banguage?
Date: 
Message-ID: <9ddhrd$i1k5i$1@ID-63952.news.dfncis.de>
On a related note, what would people think of OZ as a beginners' language?
(http://www.mozart-oz.org)  Is it used anywhere as such?

--
Biep
Reply via http://www.biep.org
From: Andrew Cooke
Subject: Re: OZ as a beginners' banguage?
Date: 
Message-ID: <3AFA4C18.D192E46@andrewcooke.free-online.co.uk>
There's a book in draft form that uses Oz to introduce programming in a
range of styles - I'd think it would be a very good way to learn (but I
guess it would depend a lot on the student - I'm thinking of the kind of
student who'd enjoy SICP, not the kind who's wondering what the mouse is
for).

Andrew

"Biep @ http://www.biep.org/" wrote:
> 
> On a related note, what would people think of OZ as a beginners' language?
> (http://www.mozart-oz.org)  Is it used anywhere as such?
> 
> --
> Biep
> Reply via http://www.biep.org
From: Torbjörn Lager
Subject: Re: OZ as a beginners' banguage?
Date: 
Message-ID: <3AFBC943.6ABBD8BD@ling.gu.se>
"Biep @ http://www.biep.org/" wrote:
> 
> On a related note, what would people think of OZ as a beginners' language?
> (http://www.mozart-oz.org)  Is it used anywhere as such?

Two relevant items from the Mozart Latest News page at 
http://www.mozart-oz.org/news.cgi:

---------------------------------------------------------- 
Apr 4,
2001 Mozart at the 7th World Conference on Computers in Education
(WCCE)

The 7th World Conference on Computers in Education (WCCE 2001) will
take place in Copenhagen, Denmark from July 28 to Aug. 3, 2001.

At WCCE 2001, there will be a panel discussion on Monday, July 30, from
11:00 to 12:30, on The Next Generation of Programming Languages.
Moderator: Juris Reinfelds. Participants: Peter Van Roy, Corky
Cartwright, Seif Haridi, Mikihiko Onari, Arthur Tattnall, and Ingrid de
Vargas Milto.

(Peter Van Roy and Seif Haridi are in the OZ development team, and are 
also authors of the book draft at:
 
      http://www.info.ucl.ac.be/~pvr/book.ps.gz
      http://www.info.ucl.ac.be/~pvr/book.pdf

)

---------------------------------------------------------- 
Jan 31, 2001
Multiparadigm Programming Without Loss of Depth

There will be a session on the use of Mozart/Oz for computer science
education at the:

  32nd SIGCSE Technical Symposium on Computer Science Education

to be held on Feb. 21-25, 2001, in Charlotte, NC USA. The SIGCSE
symposium Web site is:

            http://www.math.grin.edu/~sigcse/2001/

The Mozart session is titled: Multiparadigm Programming Without Loss of
Depth and will be presented by Juris Reinfelds of New Mexico State
University in a "Birds of a Feather" session on Thursday Feb. 22, from
5:15 pm to 6:15 pm.
----------------------------------------------------------

-- 
----------------------------------------------------------------
Torbj�rn Lager                  Computational Linguist
Department of Linguistics       Uppsala University
S-751 20 Uppsala                Sweden
Phone: +46 18 471 7860          http://stp.ling.uu.se/~torbjorn/
----------------------------------------------------------------