🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.lang.pascal
Article #258

Re: pascal ass intro. language

#258
From: Arthur M. Keller
Date: Thu, 27 Feb 1986 08:39
72 lines
4597 bytes
In article <557@hoptoad.uucp> laura@hoptoad.UUCP (Laura Creighton) writes:
>In article <4253@ut-sally.UUCP> ark@sally.UUCP (Arthur M. Keller) writes:
>>(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).
>
>I am not sure that this is the actual goal of introductory programming courses.
>I know introductory courses which teach ``what is a function'' and
>``what is a loop'' and ``what is an if-then-else'' and ``what is
>a linked list''.  For a great many people, especially those who have
>only a passing interest in computer science but think that having ``a few
>computer courses'' will help them be better economists (or whatever it
>is that they *are* interested in) this is about all that they can handle.
>
>I don't consider this ``problem solving'' -- just like learning how to
>recognise and use a saw and hammer doesn't make you a carpenter.  I
>also think that it is far more important to teach your course in a
>language for which there is an excellent text book than to teach your
>course in a ``better'' language.  
>-- 
>Laura Creighton		
>ihnp4!hoptoad!laura  utzoo!hoptoad!laura  sun!hoptoad!laura
>laura@lll-crg.arpa

I did not mean to imply that every intro computing/programming course
teaches problem solving using a computer.  However, when I teach intro
CS, that is what I teach.  There are several parts to problem solving:
(1) analysis of the problem, (2) having sufficient knowledge of useful
and relevant tools, (3) choosing the relevant tools for the problem,
and (4) applying the relevant tools to solve the problem at hand.
Number (2) can be further divided into three parts: (2a) having a list of
tools, (2b) knowing what each tool does, (2c) and knowing how to use it.

Teaching "what a loop is" is essentially teaching (2b).  But you don't
really understand it unless you also know (2c).  The only wait to
learn (2c) is to practice doing (4).  I claim that this paradigm is
useful outside of computer science, but is well illustrated in CS; you
need to master it to master a CS course involving significant
programming.  Learning more about steps (1), (3), and (4) are very
useful to anyone, even if you never interact in any way with a
computer again.  Steps (2) are necessary to apply the other steps to
the discipline of computer science, and they are the ones that depend
significantly on the programming environment (not just the language)
that the students use.

Learning how to recognize and use a hammer and saw does not make you
any more a carpenter than taking an intro CS course involving
programming makes you a programmer.  But not any less either.
Learning how to use a hammer involves banging nails into things.  To
motivate it, maybe you build a doghouse or something.  How is that
different from writing toy programs to solve toy problems?  When I
teach intro CS, I tell my students that this one course will not make
them "programmers".  (On the other hand, how many people build things
at home on weekends just from the knowledge gained in one semester
shop class in high school?)

I agree with the importance of a good book.  (After all, I think I
wrote one.)  But don't underestimate the importance of a good
environment: programming language, debugging tools, operating system
environment, etc.  I believe that there will be a choice of Modula2
intro programming books wwithin a few years.

"When the only tool you have is a hammer, it is tempting to think of
everything else as a nail."

Arthur

-- 
------------------------------------------------------------------------------
Arpanet: ARK@SALLY.UTEXAS.EDU
UUCP:    {gatech,harvard,ihnp4,pyramid,siesmo}!ut-sally!ark
Technical Details
Message-ID: <4306@ut-sally.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!decwrl!amdcad!lll-crg!seismo!ut-sally!ark
References: <192@bu-cs.UUCP> <4253@ut-sally.UUCP> <557@hoptoad.uucp>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!decwrl!amdcad!lll-crg!seismo!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: <4306@ut-sally.UUCP>
Date: Thu, 27-Feb-86 03:39:32 EST
Article-I.D.: ut-sally.4306
Posted: Thu Feb 27 03:39:32 1986
Date-Received: Sat, 1-Mar-86 01:39:36 EST
References: <192@bu-cs.UUCP> <4253@ut-sally.UUCP> <557@hoptoad.uucp>
Reply-To: ark@sally.UUCP (Arthur M. Keller)
Organization: U. Texas CS Dept., Austin, Texas
Lines: 72