🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: net.lang.pascal
4 messages
4 total messages Started by bzs Sun, 23 Feb 1986 23:19
Re: pascal ass intro. language
#251
Author: bzs
Date: Sun, 23 Feb 1986 23:19
66 lines
4074 bytes
From: manis@ubc-cs.UUCP (Vince Manis)
>The average introductory student has no longterm commitment to computer
>science, so one ought to teach him/her a directly usable skill; that means
>teaching a language s/he has heard of.

This is the attitude I object to that leaves us nowhere in Computer Science
Education. I believe one has to abandon the job training mentality and just
teach their subject on the sole assumption that everyone in the room is there
to build a foundation for computer science. If that necessitates opening
a different course for 'programming', so be it.

It has been an unfortunate fallacy that has been pushed on Computer Science
Departments that one can simultaneously teach an introductory CS course and
a terminal, one-shot programming course and do both well. The result, as
can be predicted, is to end up with a bunch of bored to death non-CS people
and a bunch of CS students who end up believing that CS is a process of
getting the syntax errors out (shuffling the semi-colons as I like to call it.)

I am sympathetic, here at BU there is constant discussion between CS and
Engineering (the former is in the College of Liberal Arts, the latter is
a school unto itself) as to whether or not the intro CS courses' curriculum
is properly fulfilling general engineering requirements. Needless to say
it causes strange things to happen in the curriculum for CS and, I believe,
ultimate dissatisfaction for both parties.

It is my firm belief that:

	a) College is not job-training in such a direct manner
	as emphasizing programming right from the start implies.

	b) Computer Science is not programming, nor is it not not
	programming (double negative intentional.) Programming is
	simply a critical lab skill that may take more than one
	intro course to develop properly and should be nurtured
	within the context of the big picture, not as an end unto
	itself.

My opinions, I believe, make more sense when compared to other sciences.
One does not teach an intro course in glassware and centrifuging in a
chemistry department nor expect people after a year of intro chem to
be able to get a job at General Foods or the Public Health service doing
product testing. Intro physics is not confused with engineering, intro
Math with accounting or actuarial skills.

As absurd as these comparisons appear I am certain that these same
attitudes are held in regards to computer science, that we teach
programming because it is a fast road to a good job.

Unfortunately that is not true, even if a year of programming were
emphasized I believe a rational survey of the jobs it opens up would
reveal that although the starting salaries and job openings may seem
high, the advancement etc is comparable with that of many white collar
jobs which do not require any specific college skills, unless the
individual is unusually talented in which case all bets are off in
either case. A $25K job to start may seem like heaven to a new
graduate, but at 30 years old and having moved all the way to $35K
they will start to realize that the success was short-lived and
illusory, that they should have nurtured something in college beyond
such a specific talent as programming (again, I am talking averages
here which is much more likely to be a Cobol programmer in a big IBM
shop than a Steve Wozniak or Bill Joy that every kid who learns a
little programming thinks is their fate, it just aint so, and without
a broad education in the issues it is much harder to advance.)

	-Barry Shein, Boston University
Re: pascal ass intro. language
#247
Author: eliot lear
Date: Mon, 24 Feb 1986 08:00
69 lines
4281 bytes
Barry Shein @ Boston University writes:
> I agree, an intro course should be a survey course. It should be shallow
> and a good intro into 'the great ideas' of the field just like any intro
> course in the sciences (bio, phys, chem etc). Some programming should be
> taught as in any good intro lab course (laboratory practices and methods,
> remember intro chem, bio...)

At Rutgers, our intro class IS an Introduction to Computer Science.  We
do some minor programming in PASCAL but the emphasis is not placed on
programming at all.  If your intro course is a survey course for languages,
you waste too much time teaching the languages instead of giving the students
a good taste of Computer Science.  In fact, since I've been at Rutgers, the
intro course has always used a computer with software that would make it
easiest to program in.  For example, when I got here the course was on
Teraks using the Cornell PL/CS Synthesizer, which uses templates.  In 1984,
the CS111 and CS112 moved to Mac Pascal.  The idea was that the student
should NOT play 'Shuffle the semi-colon' yet get the strong type checking
needed for beginning programmers.


> Personally, I hate Pascal and consider it the scourge of computer science,
> if I had to choose one language I would go with either C or Lisp.....
> ..... I would go for LISP because it's easy to get into, a reasonable
> interpreter works well with an editor, debugger and tracer.

The problem I have with LISP is that it involves recursion, a subject that
most of the people here were not very comfortable with until after their
intro course.  C, however, would not be a bad idea - especially if you do
not want to waste time in the future explaining the quirks of that language.
It is a lower level language in many ways but it still supports the higher
level operations.  However, you lose with weak type checking.

> I have decided to step into the fray here.

ARK @ SALLY.UTEXAS.EDU adds:
> (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 glad you did.   This is exactly my point.

At Rutgers we have two survey courses involving languages - one for non-majors
that teaches BASIC, a text formatter, and a spread sheet; and the other is
a 300 level course that discusses in depth the structure/uses/limitations
of various languages.  The idea behind the first is to give the person who
doesn't use a computer a chance to discover its usefulness.  The reason the
second course is 300 level is that by this point, the student is expected
to be able to grasp languages faster.  In the past, this course has covered
SNOBOL, LISP, SETL, and PROLOG in depth while glancing over other languages.

	My point is that the introductory course should NOT be a language
survey course and it should use a language that has a strong enough back-
bone that it will catch silly mistakes and leave student to worry about the
logical errors.  Later on (s)he can pick up as many languages as (s)he wants.
That knocks C out of the water and since I don't consider recursion an
introductory idea, that knocks out lisp too.

	As far as assembly language is concerned,  I have a feeling I would
have become a better programmer if I got an intense shot of assembly first
but I doubt I would have gotten an introduction to the analysis of algorythms
in the process.  Also, one of the most important topics in our intro classes
is that of data structures.

					eliot lear

[lear@topaz.rutgers.edu]
[{allegra,seismo}!topaz!lear]
Re: pascal ass intro. language [long]
#250
Author: Dave Hsu
Date: Mon, 24 Feb 1986 14:00
105 lines
6166 bytes
***WARNING: the following article is heavily opinionated, and does
not necessarily reflect the views of the University of Maryland***

In article <204@bu-cs.UUCP> bzs@bu-cs.UUCP writes:
>
>From: manis@ubc-cs.UUCP (Vince Manis)
>>The average introductory student has no longterm commitment to computer
>>science, so one ought to teach him/her a directly usable skill; that means
>>teaching a language s/he has heard of.
>
>This is the attitude I object to that leaves us nowhere in Computer Science
>Education. I believe one has to abandon the job training mentality and just
>teach their subject on the sole assumption that everyone in the room is there
>to build a foundation for computer science. If that necessitates opening
>a different course for 'programming', so be it.
>...
>
>It is my firm belief that:
>
>	a) College is not job-training in such a direct manner
>	as emphasizing programming right from the start implies.
>
>	b) Computer Science is not programming, nor is it not not
>	programming (double negative intentional.) Programming is
>	simply a critical lab skill that may take more than one
>	intro course to develop properly and should be nurtured
>	within the context of the big picture, not as an end unto
>	itself.
>
>My opinions, I believe, make more sense when compared to other sciences.
>One does not teach an intro course in glassware and centrifuging in a
>chemistry department nor expect people after a year of intro chem to
>be able to get a job at General Foods or the Public Health service doing
>product testing. Intro physics is not confused with engineering, intro
>Math with accounting or actuarial skills.
>
>As absurd as these comparisons appear I am certain that these same
>attitudes are held in regards to computer science, that we teach
>programming because it is a fast road to a good job.
>
>	-Barry Shein, Boston University

First, let me say that my views are obviously based on my observations
as a student here at UMaryland.

Secondly, I'd like to point out that Barry's observations are neither
absurd, nor universal.  Certainly, you don't teach every detailed
facet of centrifuge operation in an Intro to Chem course, but the
good job attitude is NOT universally held among CS lecturers.  And if it
is, some of them are doing a remarkable job of hiding it.

Our Computer Science department has tried in recent years to move away
from the traditional `teach-them-how-to-plug-and chug' introductory
courses by using Pascal not as an end to itself, but as a practical
vehicle to demonstrate the concepts being taught.  This doesn't stop 
at the "show them recursion and move on" level; our CS majors are fed
program proofs almost from day one.  There are no pretensions of CMSC
112 and 113 being practical programming courses, you're limited to a
tiny subset of Pascal for most of the first semester.  Assembly language
is usually taken in the second year and despite some people's belief
that it's more of an assembler course than a course in assembly, I for
one still believe that it's a valid and useful course.  Just because
some of us could program assembly before we got to college doesn't mean
that we can do without such a course; intro CS majors aren't required
to have anything except a desire to learn, remember?

Unfortunately, HOW the course is taught makes an incredible difference
in how much is learned, no matter what the text.  I've had lecturers 
from both ends of the spectrum, from those who spend the first month
telling you about the operating system and its editors, to those who
issue projects once every blue moon.  The ability to write programs 
that take advantage of some intrinsically valuable feature unique to
the IBM CMS system is completely worthless in the long run, but on the
other hand, beginners learn best (although not necessarily fastest) 
from hands-on experience.

I guess it's time for a short story.  We have a `company' here in the
US, which probably has to deal with the most beginners of any company
in the known universe.  We call it `DOD'.  And for several years now,
the DOD has offered a lucrative contract to teach software quality
assurance to its own personnel (DARPA contract monitors take note!)
Unlike any other contract that I've heard of, this one has been bounced
around a large number of contractors, and NOT ONE has proposed a single
minute of hands-on experience for any trainee.  And, not surprisingly,
every single contractor has defaulted.  Last I looked (about a year ago)
the count was around five.  Draw your own conclusions.

If I sound like I'm writing a plug, maybe it's because I am.  Last fall,
one of the post-grads here, the illustrious Stanley Dunn, began teaching
the Intro to Computer Science course.  And unlike his predecessors, he
seems to have found the ideal balance between practice and theory.  Yes,
it means discarding some of the traditional programming exercises (to
paraphrase, "Who the hell wants to write another NIM program?"), and yes,
it's largely a matter of choosing the right questions to make people think.
At any rate, Stan is writing the instructors' text for this course; we'll
get a better idea of how transportable his teaching style is in a year or so.

-dave
-- 
David Hsu	Communication & Signal Processing Lab, EE Department
<disclaimer>	University of Maryland,  College Park, MD 20742
hsu@eneevax.umd.edu  {seismo,allegra}!umcp-cs!eneevax!hsu

"Godzilla has been spotted in Sector 5!"
Re: PASCAL The one and only....
#256
Author: Ken Latham
Date: Wed, 26 Feb 1986 07:13
112 lines
4753 bytes
> 
> From: manis@ubc-cs.UUCP (Vince Manis)
> >The average introductory student has no longterm commitment to computer
> >science, so one ought to teach him/her a directly usable skill; that means
> >teaching a language s/he has heard of.
> 
> from:	-Barry Shein, Boston University
> This is the attitude I object to that leaves us nowhere in Computer Science
> Education. I believe one has to abandon the job training mentality and just
> teach their subject on the sole assumption that everyone in the room is there
> to build a foundation for computer science. If that necessitates opening
> a different course for 'programming', so be it.

APPLAUSE!!!
	I have to agree with this as a crucial point in this discussion!

	If you are teaching PROGRAMMING:
		use COBOL or FORTRAN they are still in use and are
		a direct benifit to anyone who wants to get into the
		job market FAST! teach C, ADA, or some other widespread
		or "up-and-coming" language as well, later.

	If you are teaching Computer Science :
		by all means use PASCAL!  (my reasons later)

> ... a bunch of CS students who end up believing that CS is a process of
> getting the syntax errors out (shuffling the semi-colons, I like to call it.)

( I used to call it "shuffling the cards" :-) )
( anyone out there remember paper tape! )

> It is my firm belief that:
> 
> 	a) College is not job-training ....
> 
> 	b) Computer Science is not programming, nor is it not not
> 	programming.  Programming is simply a critical lab skill
>       that may take more than one intro course to develop properly ...

( Doning Flame-Retardant Suit )

It is my ernest opinion that Computer "Science" is still an ART yearning
to be a fulfledged science.  The reason I say this is that algorithms
are not much use (flame sheild up) unless they can be programmed into
a Computer (aaaaa... duhhhhh).  Seriously.... the "science of logical
problem solving" and the "art of programming" are two inseparable parts of
Computer Science. ( or should those be reversed :-) )

(sheild down ... suit off )

My apologies to you Barry for cutting out so much of the good stuff!

Ah yes.... PASCAL....

Why PASCAL ....?

	Strong type checking

	    I have had three separate chances at being a beginning
	    student in Programming101 et. al.

	    Once with Basic ... lots of fun, easy to learn
		but NO FORM and poor type checking (poor types really)!

	    Once with PL/I .... pretty good ... a little too much
		provided for you ( what the hell does he mean by that!).
		It had too many builtin niceties for I/O ... so many
		of the good complexity level examples are little I/O
		programs with string processing.  Type checking OK.
		( Not a BAD choice just not very widespread )

	    Lastly with .. you guessed it ... PASCAL!

	The error mesaages were clear and concise (most of the time)
	as is required by the standard, if I remember correctly.

	Strong Type checking ... How many times must I say this!
		My lord, what relief it is to have the compiler
		tell you exactly what you CAN'T do.

	I think this is the real point ... The compiler has to be
	so strict as to not let the student get too inventive ...
	like C ...  The objective is to learn Algoritmic Representation
	not the language.

	Even though the language keeps a tight reigh it also has a
	sufficient array of types ( structures, pointers, sets, etc.)
	and an expressive enough syntax and semantics to do just about
	anything.

	AND don't forget to give them some other language assigments as
	well ( I suggest LISP or even C ). Small assignments but meaningful,
	something to let them know ( or let them know they didn't know :-> )
	what they were actually taking the course for.


		There I admit I am a C programmer (and Computer Scientist)
		that actually LIKES PASCAL!!!


	Is that my carrer's end looming on the horizon, oh my god, what
	 have I just said, I take it back, I didn't mean it ..... noooooo!

		O     \ 
		  ---  >
		O     /



			Ken Latham, AT&T-IS (via AGS Inc.), Orlando , FL

			uucp: ihnp4!bsdpkh!latham
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads