🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.lang.pascal
Article #246

Re: pascal ass intro. language

#246
From: Arthur M. Keller
Date: Sun, 23 Feb 1986 08:47
76 lines
4925 bytes
I have decided to step into the fray here.

(1) The object of an introductory course that includes programming is to
teach problem solving techniques using a computer.  Teaching a programming
language is a necessary vehicle for this (unless you wish only to use
canned programs, and even there you have some sort of language).

(2) There is the choice to teach only one programming language or to teach
multiple ones.  To me the major choices (of categories) are to teach a
primitive language (Fortran or Cobol), an Algol-based language (C, Pascal,
Modula-2, Ada), an interactive language (BASIC, APL), functional language
(LISP, Scheme), other (Smalltalk, Logo).  [Sorry if you don't like
my taxonomy.]  Traditionally, intro courses have switched from teaching
primitive languages to Algol-based languages, with an occasional intermediate
stage at PL/I (kind of Algol-like).  Recent experimentation has been done
in teaching Lisp or Lisp-dialects (Scheme).  Most of the Logo and Basic
teaching is done at earlier grade levels than college.  Other than the
college level, Pascal is mainly taught at the late High School level
(with part of the reason for its use being the AP exam in CS).

One argument is that teaching multiple language paradigms will give
students a better feeling for what Computer Science is all about.
A counterargument is that it may overwhelm the students, the students
may not yet be ready to make the distinctions necessary when several
languages are taught, and that little depth may be possible, especially
in a quarter course.

(3) Regardless of the choice of a single language or multiple
languages (preferably with different paradigms), one of them is likely
to be first.  Of all the Algol-based languages, Pascal is currently
the best introductory teaching language in my opinion.  C suffers from
lack of enforced discipline that is very useful for beginning
programmers.  Besides, C is advocated primarily by UNIX users, and the
error message "Segment fault, core dumped" is not my idea of a user
friendly error message that would help a novice programmer find the
error in the program.  I don't know anyone who seriously suggests
teaching Ada as a first language (they should be punished by having to
teach Ada to Cobol programmers).  Modula-2 is a good "contender for
the title" and may become the language of choice once (1) it is
standardized including support modules, (2) it is as widely available
as Pascal, and (3) there are enough Modula-2 based intro programming
textbooks so that you can choose one using a teaching approach you
agree with.  Also note that once you have learned Pascal, it is relatively
simple to learn another Algol-based language.

Many advocates of Lisp as a first language argue that it facilitates
teaching some more advanced topics, such as recursion, earlier than
Algol-based languages.  They also like the simplicity of the syntax
and that programs and data are uniform (built out of the same list
structures, if you will).  There are several popular varieties of Lisp,
somewhat mutually incompatible, and Lisp is not universally available,
and using Lisp requires use of an interactive system.  [While I believe
that every student learning intro CS should be given sufficient access
to an interactive computer system, the lack of available facilities at
some institutions preclude this.]  Perhaps Common Lisp will win out,
or maybe it will be just one more variant of Lisp.  There are also
fewer intro textbooks on Lisp than on Pascal, but that will make the
selection process that much easier (or perhaps that much more frustrating).

I think that the jury on Lisp vs. Algol-based language (really Pascal)
is still out.

(4) My opinions?  I'm glad you asked that question.  I believe in
teaching Pascal as a first programming language.  Other language
paradigms can be taught in a programming languages survey course.  Of
course, I have a vested interest; I am author of "A First Course in
Computer Programming Using Pascal" (McGraw-Hill, 1982; second edition
in progress).

Arthur

-- 
------------------------------------------------------------------------------
Arpanet: ARK@SALLY.UTEXAS.EDU
UUCP:    {gatech,harvard,ihnp4,pyramid,siesmo}!ut-sally!ark
Technical Details
Message-ID: <4253@ut-sally.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!linus!decvax!decwrl!pyramid!ut-sally!ark
References: <192@bu-cs.UUCP>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ut-sally.UUCP
Path: arc1-ca.pugleaf.net!utzoo!linus!decvax!decwrl!pyramid!ut-sally!ark
From: ark@ut-sally.UUCP (Arthur M. Keller)
Newsgroups: net.lang.pascal,net.college
Subject: Re: pascal ass intro. language
Message-ID: <4253@ut-sally.UUCP>
Date: Sun, 23-Feb-86 03:47:04 EST
Article-I.D.: ut-sally.4253
Posted: Sun Feb 23 03:47:04 1986
Date-Received: Wed, 26-Feb-86 04:08:16 EST
References: <192@bu-cs.UUCP>
Reply-To: ark@sally.UUCP (Arthur M. Keller)
Organization: U. Texas CS Dept., Austin, Texas
Lines: 76