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