[comp.edu] beginning language--APL

Edward_M_Cherlin@cup.portal.com (04/09/90)

The question was what should be the first language for CS and non-CS 
students.  I run the U.S. half of a worldwide non-profit organization
devoted to making APL the first language.  For non-CS students the
rationale is that it is a math language which has been successfully 
introduced in elementary school, and for CS the rationale is that it is
a math and computer language suitable for math, science, computer design,
data processing, graphics, music and more.  This argument has been made
best by Prof. Alan Perlis, when be became chairman of the CS department
at Yale and made APL the first language for CS there.

My organization, I-APL Ltd. offers APL free for PCs, is testing versions
for Apple II and Commodore 64 for elementary schools, and is preparing a
version for UNIX.  We plan to publish source code.

hil@zhukov.ADS.COM (Hilarie Nickerson) (04/10/90)

In article <28729@cup.portal.com> Edward_M_Cherlin@cup.portal.com writes:
>The question was what should be the first language for CS and non-CS 
>students.  I run the U.S. half of a worldwide non-profit organization
>devoted to making APL the first language.  For non-CS students the
>rationale is that it is a math language which has been successfully 
>introduced in elementary school, and for CS the rationale is that it is
>a math and computer language suitable for math, science, computer design,
>data processing, graphics, music and more.  This argument has been made
>best by Prof. Alan Perlis, when be became chairman of the CS department
>at Yale and made APL the first language for CS there.

When I was at Yale (early 80's), intro CS courses were divided into
"learn a language" style courses for non-majors and "here's CS"
for prospective majors. Perlis taught the first prospective major
course using APL -- he expected students to master the language
pretty much on their own within the first three weeks of class.
His approach was designed to screen out people who weren't serious
about CS -- while I found APL easy, most other students found it
extremely difficult and about 2/3 of the students in the class eventually
dropped it. Students in the non-major class where the focus was on
learning APL did not experience the same difficulties.

I believe that the first class in CS should be about learning CS,
not about learning a language -- based on the above, APL is not
a good choice for such a class. I suspect that some people who
would have been good at CS were screened out by the use of APL
in the first class at Yale.

-- 
---
Hilarie Nickerson          Advanced Decision Systems
hil@ads.com                Mountain View, CA

denelsbe@unc.cs.unc.edu (Kevin Denelsbeck) (04/10/90)

In article <28729@cup.portal.com> Edward_M_Cherlin@cup.portal.com writes:
>The question was what should be the first language for CS and non-CS 
>students.  I run the U.S. half of a worldwide non-profit organization
>devoted to making APL the first language.  For non-CS students the
>rationale is that it is a math language which has been successfully 
>introduced in elementary school, and for CS the rationale is that it is
>a math and computer language suitable for math, science, computer design,
>data processing, graphics, music and more.  This argument has been made
>best by Prof. Alan Perlis, when be became chairman of the CS department
>at Yale and made APL the first language for CS there.
>

APL as a first language?  Sounds scary to me.  Don't get me wrong -- I
love the language -- but programming in APL is such a different mindset
(compared to almost any other language) that I have to question whether
it's a suitable basis for further development as a CS major.  APL makes
some things too easy (e.g. sorting, string manipulation) -- which means
(to me) a deficiency in instructional value -- and doesn't treat (or
treat well) topics I would consider elementary for a CS first-course,
such as learning how to debug programs or working with files.  Maybe
it's been used successfully in elementary school, but so has Pascal,
LOGO, and many others, I'm sure.
     I can't imagine its effects on non-CS people taking the course to
fulfill a requirement.  Having TAed this course at a couple of strong
universities, I can say that Pascal is enough of a challenge for many of
these students, especially non-science majors.  Trying to help them fix
a buggy APL program could be a time-consuming and confusing process for
both student and TA.  (Any Yale TAs out there who could comment on this?)
     Also, is APL used enough (in other fields and in industry) to defend
its inclusion in a first course?  The reason I ask is that, for many
students taking the first course, the motivation is either: requirement
for major (implying that the language will be used later); general
requirement (gain familiarity with solving problems via computer); or,
something to pad the resume with (i.e. "computer skills").  Does APL
succeed here?

Kev @ UNC

franciskovich-dennis@CS.YALE.EDU (Dennis Franciskovich) (04/10/90)

denelsbe@unc.cs.unc.edu (Kevin Denelsbeck) writes :
| In article <28729@cup.portal.com> Edward_M_Cherlin@cup.portal.com writes:
  [discussion of APL as a first language]
| >data processing, graphics, music and more.  This argument has been made
| >best by Prof. Alan Perlis, when be became chairman of the CS department
| >at Yale and made APL the first language for CS there.
|
|      I can't imagine its effects on non-CS people taking the course to
| fulfill a requirement.  Having TAed this course at a couple of strong
| universities, I can say that Pascal is enough of a challenge for many of
| these students, especially non-science majors.  Trying to help them fix
| a buggy APL program could be a time-consuming and confusing process for
| both student and TA.  (Any Yale TAs out there who could comment on this?)

APL has not been taught as the first language here since at least
Spring 1988.  The switch was made to Scheme, and now currently
Common LISP.  I did hear horror stories from some of the older
undergrads regarding this first course, although Prof. Perlis's
course had a reputation that was independent of the language
(I know this first-hand, having TA'd the course a few semesters ago).
--
Dennis

ahmed-shakil@cs.yale.edu (Shakil Ahmed) (04/12/90)

In article <28729@cup.portal.com>, Edward_M_Cherlin@cup.portal.com writes:
> The question was what should be the first language for CS and non-CS 
> students.  I run the U.S. half of a worldwide non-profit organization
> devoted to making APL the first language.  For non-CS students the
> rationale is that it is a math language which has been successfully 
> introduced in elementary school, and for CS the rationale is that it is
> a math and computer language suitable for math, science, computer design,
> data processing, graphics, music and more.  This argument has been made
> best by Prof. Alan Perlis, when be became chairman of the CS department
> at Yale and made APL the first language for CS there.
> 

APL is no longer the first CS language here.  In fact, APL  hasn't been
taught at all in the YALE CS department for a couple of years now.

-- Shakil Ahmed
===============================================================================
Dept. of Computer Science      INTERNET: ahmed-shakil@cs.yale.edu
PO Box 2158, Yale Station      BITNET  : ahmed-shakil@yalecs.bitnet
New Haven, CT 06520-2158       UUCP    : {ucbvax,decvax,harvard,...}!yale!ahmed
===============================================================================

joshua@athertn.Atherton.COM (Flame Bait) (04/12/90)

(Personal Background: I learned PASCAL first.  Even today when I write
C, AWK, or shell script, my code still has a PASCAL flavor (or after taste). 
I try to write strongly typed programs even when I am working in a loosely 
typed language.  I think this is a good thing.  I'd recommend PASCAL as a 
first language, even if they never use it again.  At a technical school,
I'd use C as a first language, since that is where the jobs are right now.)

denelsbe@unc.cs.unc.edu (Kevin Denelsbeck) writes:
>APL as a first language?  Sounds scary to me.  

It is scary!  I once worked with someone with a heavy APL background.
It was horrible: an entire UI written in about 4 pages, and no whitespace.  
The functions, variables, and macros all had 2 character names.  The 
design was really weird, with lots of global variables and strange flow 
control.  I do not know if this was the person or the language, of course.  

In article <28729@cup.portal.com> Edward_M_Cherlin@cup.portal.com writes:
> For non-CS students the rationale is that it is a math language which 
> has been successfully introduced in elementary school

Most non-CS students do not like math, they want text oriented languages
like ICON, BASIC, or AWK.  The fact that APL "has been successfully
introduced in elementary school" puts it below BASIC (which has been 
introduced in many elementary schools) and the UNIX shells (which are
often used by people with little or no computer background).
 
> and for CS the rationale is that it is a math and computer language 
> suitable for math, science, computer design, data processing, graphics, 
> music and more.  

Do not mix up "can be used" with "is suitable for" or "is good for".
Just because someone writes a data processing program in APL, does not
mean that APL is suitable for data processing programs.  APL is not
commonly used for science, computer design, data processing, graphics
or music programs, but then again APL is not common, period.

Joshua Levy
--------                Quote: "This is your brain.  
Addresses:                      This is your brain on APL.
joshua@atherton.com             Think about it."
{decwrl|sun|pyramid}!athertn!joshua   work:(408)734-9822   home:(415)968-3718