[comp.lang.pascal] CS-1

thssccb@iitmax.IIT.EDU (catherine c bareiss) (04/19/89)

I am designing a beginning programming course.

The structure is to be as follows:
       One day a week, a lecture on a topic (using psuedo code).
	    One this day, all students would attend.
       The second day of the week, the class would be broken into different
	    languages where syntax would be taught.
       The third day would be a lab day where they would learn on the 
	    computer.

I am looking for a list of topics to cover in the first day.
I am also looking for text books if any have been developed for this.
Any recommendations would be very helpful.


By the way, this is my first posting to the net, so I hope everything
is right.

Thanks in advance

Cathy Bareiss

ciriello@lafcol.UUCP (Patrick Ciriello II) (04/27/89)

Was the text book I used as a freshman at Drew University.  It is very
well organized, and has very good examples.  I believe that it is
currently in it's second edition.

For more info, contact BBURD@DRUNIVAC over BITNET.  He will know more of
the particulars (where to get it, etc).

The course that used this book was in intro course designed for those
who were going to be CS majors.  If your course is for non-majors, this
may be a little more than you need.

Pat Ciriello II
Supervisor of Networking and Tech. Services
Lafayette College

weyrich@csun1.UUCP (Orville Weyrich) (05/01/89)

From article <2130@iitmax.IIT.EDU>, by thssccb@iitmax.IIT.EDU (catherine c bareiss):
> I am designing a beginning programming course.
> The structure is to be as follows:
>        One day a week, a lecture on a topic (using psuedo code).
> 	    One this day, all students would attend.
>        The second day of the week, the class would be broken into different
> 	    languages where syntax would be taught.

I would suggest that
you look into the book
"Programming Principles: An Introduction"
by John Motil,
which was originally published by 
Allyn and Bacon
but which I think is now being published by
William C. Brown.

This text separates the theoretical discusion
from the syntax discussion very nicely, and
I like the content.

There is probably also a Modula-2 version of the
book out now, but I am not sure that the
separation of the theory and of the syntax
is as pronounced.

-- 
Orville R. Weyrich, Jr.          | UUCP    : ...gatech!csun1!weyrich
Department of Computer Science   | INTERNET: weyrich@csun1.cs.uga.edu
University of Georgia            |
Athens, GA 30602 USA             | MA BELL : (404) 542-1082

nick@cs.hw.ac.uk (Nick Taylor) (05/03/89)

In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
>I am designing a beginning programming course.
>
>The structure is to be as follows:
>       One day a week, a lecture on a topic (using psuedo code).
                                              ^^^^^^^^^^^^^^^^^

Is this a good idea? I know it is becoming more and more common to do this
but I harbour deep suspicions that it might actually make the learning task
more confusing. I would be interested in people's comments on the use of
pseudo-code as an aid to programming language teaching - especially for
teaching a first language.

Nick Taylor   "Life... Don't talk to me about life!" - Marvin BSP, PA, PD(LHS)
Department of Computer Science                JANET : NICK@UK.AC.HW.CS
Heriot-Watt University                      ARPANET : NICK@CS.HW.AC.UK
79 Grassmarket         /\    /  o    __   /_   UUCP : ...!UKC!CS.HW.AC.UK!NICK
Edinburgh EH1 2HJ     /  \  /  /   /     /__)   Tel : +44 31 225 6465 Ext. 532
United Kingdom       /    \/  (_  (___  /  \    Fax : +44 31 449 5153

brian@cat28.CS.WISC.EDU (Brian Miller) (05/05/89)

In article <2394@brahma.cs.hw.ac.uk> nick@cs.hw.ac.uk (Nick Taylor) writes:
>In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
>>I am designing a beginning programming course.
>>
>>The structure is to be as follows:
>>       One day a week, a lecture on a topic (using psuedo code).
>                                              ^^^^^^^^^^^^^^^^^
>
>Is this a good idea? I know it is becoming more and more common to do this
>but I harbour deep suspicions that it might actually make the learning task
>more confusing. I would be interested in people's comments on the use of
>pseudo-code as an aid to programming language teaching - especially for
>teaching a first language.

I agree.  Pseudo-code is a waste of time.  Teach the language and its
principles (sp?).  My assembly language teacher spent a week-and-a-half
outlining a hypothetical computer and no one in the class appreciated it.
Remember, pseudo-code in any form is itself a descriptive language.  This
means you have to spend time to familiarize your students with _it_, as
well as the real language.  If you think that it is important that the
students see that language X (the real language you may teach) is not
the _only_ way to talk to a computer or to outline an algorithm, then
introduce them to a second real language a well.  The more real world you
give your students, the less pissed-off the hard to please ones will be
and the more awakened the "slow" ones will be.

rang@cpsin3.cps.msu.edu (Anton Rang) (05/05/89)

In article <2680@puff.cs.wisc.edu> brian@cat28.CS.WISC.EDU (Brian Miller) writes:

   In article <2394@brahma.cs.hw.ac.uk> nick@cs.hw.ac.uk (Nick Taylor) writes:
   >In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
   >>I am designing a beginning programming course.
   >>
   >>The structure is to be as follows:
   >>       One day a week, a lecture on a topic (using psuedo code).
   >                                              ^^^^^^^^^^^^^^^^^
   >
   >Is this a good idea? I know it is becoming more and more common to do this

   I agree.  Pseudo-code is a waste of time.  Teach the language and its
   principles (sp?).

I disagree, at least in part; perhaps my understanding of pseudo-code is
different from yours.  Teaching a *flexible* method of pseudo-coding is
basically equivalent to teaching top-down design principles.
  Now, I've seen classes which put a particular style of pseudo-code on a
pedestal (the intro to BASIC course here, for one); that seems a little
ridiculous to me.  (Their idea of pseudo-code is making up new keywords for
BASIC statements...well, almost.)
  Pseudo-code should be a way to design algorithms and programs without having
to worry about the syntactic sugar or limitations of a particular language.
For instance, consider this pseudo-code for a merge sort:

	Merge sort routine (one parameter, some data to sort).
	  1. If there is only one item to sort, just return (already sorted).
	  2. Split the data into two sets.
	  3. Sort each set, using the merge sort routine recursively.
	  4. Join the two sets together.

  This is my conception of what pseudo-code *should* be like.  This can be
treated like an outline, with more detailed instructions added for each part
(i.e. 4a, 4b, etc. detailing the final join operation).  More and more detail
can be added, perhaps including information about the data structures chosen,
until it is detailed enough to easily turn into code:

	Merge sort routine (one parameter, a linked list).
	  1. If there is only one item to sort, just return (already sorted).
	    a. Check if the next-item pointer of the list's head is nil.
	    b. Just return if it is; if not, go on.
	  2. Split the data into two sets.
	    a. Set up two empty temporary lists.
	    b. Go through the input, one item at a time.
	      (i) Add it to either list (alternate between them).
	...

  Again, flexible pseudo-code is good--it prevents the student from having to
worry about details like "how do I test if there is only one item?" or "how to
I find a value in a record when I have a pointer to it?" until they actually
write the routine.  Now, what passes for pseudo-code in many textbooks is much
too strict for this; I think it constrains creativity (though no more than
forcing students to implement an algorithm directly in some language).
  Just my thoughts...

		Anton

+---------------------------+------------------------+-------------------+
| Anton Rang (grad student) | "VMS Forever!"         | VOTE on	         |
| Michigan State University | rang@cpswh.cps.msu.edu | rec.music.newage! |
+---------------------------+------------------------+-------------------+
| Send votes for/against rec.music.newage to "rang@cpswh.cps.msu.edu".   |
+---------------------------+------------------------+-------------------+

pilgrimk@lafcol.UUCP (Kenwyn A. Pilgrim) (05/05/89)

(Nick Taylor) writes:
# >       One day a week, a lecture on a topic (using psuedo code).
# 
# Is this a good idea? I know it is becoming more and more common to do this
# but I harbour deep suspicions that it might actually make the learning task
# more confusing. 

Here's my $0.17:

What should be emphasized is the technique used in producing the solution
(in psuedo code) and not the language specifics on how to implement
the solution. Esp. when dealing with the C language. 
Pascal usually closely resembles the psuedo code but there may be
times when psuedo code does a better job of clarifying things than Pascal
jargon. Never made my learning task any more confusing. Actually 
clarified it (esp. in case of recursive sol'ns!)

So what did I just say? I'm all for psuedo-code!

And thanks to ABHAY SAWANT (sp?) for posting that TSR.TPU. 
I'm looking forward to using it.

-Kenwyn

JZEM%MARIST.BITNET@cunyvm.cuny.edu (William J. Joel) (05/05/89)

Per the recent discussion on whether to use pseudo-code or not, I must
agree with it's use, as long as the instructor does not teach a fixed
syntax for it.  The purpose of PC is to give the student a sense of
structure without worrying about the syntax.  I have seen too many
texts, that could have been excellent, succomb to the heavy use of a
rigid pseudo-code.  When you get to the actual language you are using
to demonstrate impelmentations of the topics covered, then syntax
becomes important.  Note that I did not say you were teaching the
language.  In a CS-1 course, the topics are important.  The language is
also important is as much as it conveys the meaning of the topics.

stephen@ziebmef.uucp (Stephen M. Dunn) (05/05/89)

   We at McMaster University used Oh! Pascal, 2nd ed., for our second-
year course (a second course, the first being in FORTRAN).  I found the
book to be fairly useful, although it is aimed more at a first course,
which is what the original poster had in mind.

   In the introduction, Doug Cooper (co-author with Michael Clancy gives
two electronic addresses:  dbcooper@BERKELEY and ucbvax\!dbcooper.  Don't
ask me if either works.  He suggests that errors in the book or suggestions
be sent to him; he probably wouldn't mind an enquiry that may lead to 
higher sales, though.

Regards, Stephen

-- 
-------------------------------------------------------------------------------
! Stephen M. Dunn              stephen@ziebmef.UUCP ! DISCLAIMER:  Who'd ever !
! (I am currently pondering a witticism to go here) ! claim such dumb ideas?  !
-------------------------------------------------------------------------------

balcer@demon.siemens.com (Marc J Balcer) (05/05/89)

In article <2394@brahma.cs.hw.ac.uk> nick@cs.hw.ac.uk (Nick Taylor) writes:
>In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
>>       One day a week, a lecture on a topic (using psuedo code).
>
>Is this a good idea? ...
>but I harbour deep suspicions that it might actually make the learning task
>more confusing... 

After about 4-5 weeks in the introductory Pascal course,
I'll start using a pseudocode when explaining algorithms.
Example:

    set total to zero
    for every element in table do
	add its value to the total
	write the value
    end
    print the total

Invariably there will be the student(s) who have not yet
mastered even the most fundamental detail of Pascal syntax
and many others for whom the syntax is not "second nature."
Some will copy down the pseudocode word-for-word and then
type it in and try to run it.  (It happens)  

It's very difficult for students, when confronted with
several very similar notations, to keep straight "this is
design language," "this is Pascal," "this is Scheme."

Now in a Data Structures or Compiler Design class, there's
usually very little problem with using pseudocode.  It's a
convenient, informal shorthand.  These students have
mastered the syntax of their programming language.

>... an aid to programming language teaching - especially for
>teaching a first language.
>

Many of us who teach programming (er, I mean "introductory
computer science") courses have struggled with this.  It
would certainly be nice to have students who complete the
first year of CS able to:

    -	see a computer as more than just a "Pascal box"

    -   think about a problem at a more abstract level than the
	implementation language 

    -	see Computer Science as more than "just learning
	languages"

yet also able to plan and write clear, coherent programs.

One popular approach is to teach the course either
"language-free" or using several languages at once.  We
justify this by saying (and rightly so) that a computer
scientist must be capable of working with several different
notations.  BUT can we expect that every student will be
immediately capable of making these kinds of "context
switches?"  I'm not sure.

---------------------------------------------------------------------------
Marc J. Balcer
[balcer@demon.siemens.com]
Siemens Research Center, 755 College Road East, Princeton, NJ 08540

brian@cat50.CS.WISC.EDU (Brian Miller) (05/05/89)

In article <1035@lafcol.UUCP> pilgrimk@lafcol.UUCP (Kenwyn A. Pilgrim) writes:
>Here's my $0.17:
>Pascal usually closely resembles the psuedo code but there may be
>times when psuedo code does a better job of clarifying things than Pascal
>jargon.

I see your $.17 and raise you $.05:    :-)

If that really is the case (and I agree that it is), then
academic languages like pascal still have a ways to go
in my book.

ciriello@lafcol.UUCP (Patrick Ciriello II) (05/06/89)

In article <2394@brahma.cs.hw.ac.uk>, nick@cs.hw.ac.uk (Nick Taylor) writes:
> In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
> >I am designing a beginning programming course.
> >
> >The structure is to be as follows:
> >       One day a week, a lecture on a topic (using psuedo code).
>                                               ^^^^^^^^^^^^^^^^^
> 
> Is this a good idea? I know it is becoming more and more common to do this
> but I harbour deep suspicions that it might actually make the learning task
> more confusing. 

Well, if you write your pseude code so that it is OBVIOUSLY english (
i.e. using full sentences, etc) then I don't think the students would
become confused.  They are learning and idea without the mechanics.
On the other hand, you might want to incorporate the Reserved Words of
the language to be taught inside your 'english' ( which may have to be
fudged a little ) so that while they are learning the ideas on the
surface, they are also becoming familiar with the specific mechanics
associated with that particular language.

Pat (the Dragon that is WHITE)

Disclaimer: I have no idea what I am talking about .. press 'n' now ....

rg@psgdc (Dick Gill) (05/06/89)

In article <2394@brahma.cs.hw.ac.uk> nick@cs.hw.ac.uk (Nick Taylor) writes:
>In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
>>I am designing a beginning programming course.
>>
>>The structure is to be as follows:
>>       One day a week, a lecture on a topic (using psuedo code).
>                                              ^^^^^^^^^^^^^^^^^
>
>Is this a good idea? I know it is becoming more and more common to do this
>but I harbour deep suspicions that it might actually make the learning task
>more confusing....

I started programming in the 60's when it was a good deal more
*art* than *science* !:-) and have a couple of thoughts on
the topic.  

It is important that the begining programmer understand  that
the first step in writing software is to structure a clear and
logical solution to the problem begin solved.  This exercise
involve primarily logic and imagination, and is largely
independent of the language used to write the program.  A pseudo
code that stresses the logical steps being performed could be
very useful here, particularly if it keeps the students from
rushing to write *real* programs before they have figured out
how to solve the problem!

-- 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dick Gill     Professional Solutions Group   (703)761-1163   ..uunet!psgdc!rg
The quality of the circus here in Washington depends on the clowns you elect.

art@buengc.BU.EDU (A. R. Thompson) (05/07/89)

In article <206@psgdc> rg@psgdc.UUCP (Dick Gill) writes:
>[...]
>It is important that the begining programmer understand  that
>the first step in writing software is to structure a clear and
>logical solution to the problem begin solved.

It has been my experience that the biggest difficulty beginners have is
learning how to state the problem clearly and concisely.  I have found
that once students grasp the idea of clean problem statement that the
solutions come rather easily.

ciriello@lafcol.UUCP (Patrick Ciriello II) (05/08/89)

In article <206@psgdc>, rg@psgdc (Dick Gill) writes:
> In article <2394@brahma.cs.hw.ac.uk> nick@cs.hw.ac.uk (Nick Taylor) writes:
> >In article <2130@iitmax.IIT.EDU> thssccb@iitmax.IIT.EDU (catherine c bareiss) writes:
> >>I am designing a beginning programming course.
> >> [ stuff deleted ]
 
> I started programming in the 60's when it was a good deal more
> *art* than *science* !:-) and have a couple of thoughts on
> the topic.  

I consider programming more of an art than a science myself.
I compare writning a large system to the writing of a symphony.

> It is important that the begining programmer understand  that
> the first step in writing software is to structure a clear and
> logical solution to the problem begin solved.
>  [stuff deleted]

Absolutely.  Understanding the way to approach a problem and solve it is
much more important that learning the syntax of a particular language.

Perhaps that is where CSCI course need to be bolstered up.  More problem
solving and less 'programming'.

Of course, you need both, but I wonder where the emphasis should really
be?

Pat ( the DRAGON that is WHITE )

xpress@Portia.Stanford.EDU (Brad Hochberg) (05/09/89)

Some classes here at Stanford use Doug Cooper's Condensed Pascal.  It is a 
compressed and revised Oh! Pascal!.  Plus it includes the complete Standard
Pascal User Reference Manual.  It is generally aimed more to students who have
had a little prior programming experience whereas Oh! Pascal! is geared a
little more towards beginners.  They are both excellent.  Personally I prefer
Condensed Pascal.  Plus it is a great reference guide.

--Brad


-- 
Brad Hochberg              | "The only time I show any consistency these days
Stanford University        |  days is when I'm making a cup of tea."
xpress@portia.stanford.edu | --Mats Wilander, after getting bounced in the
                           |   in the first round of the WCT Finals in Dallas

duncan@dduck.ctt.bellcore.com (Scott Duncan) (05/09/89)

In article <1085@lafcol.UUCP> ciriello@lafcol.UUCP (Patrick Ciriello II) writes:
>
>I consider programming more of an art than a science myself.
>I compare writning a large system to the writing of a symphony.

Depending on how large you mean, I do not know that any symphony was ever
written by a team of people, but most large software systems are not the work
of a single individual -- though much of the vision might be, I agree.  The
problems in large system development are those brought about through the com-
munication needed between groups of people, assuming certain levels of compe-
tence or experience.  (The individual differences between programmers which
studies by Curtis, Sheppard, et al, have demonstrated also tend to wash out,
according to Belady and Lehman, the larger the project gets.)

>             Understanding the way to approach a problem and solve it is
>much more important that learning the syntax of a particular language.
>
>Perhaps that is where CSCI course need to be bolstered up.  More problem
>solving and less 'programming'.
>
>Of course, you need both, but I wonder where the emphasis should really be?

Clearly on the former.  I have taught students who were taking a second or
third language and who told me they "knew how to program" already.  They did
some of the more careless and sloppy work as well as having had some of the
least ingenious solutions.  They're goal was to "get done" with the course be-
cause they just "needed another language credit" to graduate.

Programming is the easy part.

Speaking only for myself, of course, I am...
Scott P. Duncan (duncan@ctt.bellcore.com OR ...!bellcore!ctt!duncan)
                (Bellcore, 444 Hoes Lane  RRC 1H-210, Piscataway, NJ  08854)
                (201-699-3910 (w)   201-463-3683 (h))

duncan@dduck.ctt.bellcore.com (Scott Duncan) (05/09/89)

In article <16007@bellcore.bellcore.com> I wrote:
>
>                            They're goal was to "get done" with the course be-
                             ^^^^^^^
>cause they just "needed another language credit" to graduate.

God help me for that one...well, it was early in the morning after working late
at night, etc., etc.  Sorry folks...

Speaking only against myself, of course, I am...
Scott P. Duncan (duncan@ctt.bellcore.com OR ...!bellcore!ctt!duncan)
                (Bellcore, 444 Hoes Lane  RRC 1H-210, Piscataway, NJ  08854)
                (201-699-3910 (w)   201-463-3683 (h))

reggie@dinsdale.nm.paradyne.com (George W. Leach) (05/09/89)

In article <1989May4.225626.657@ziebmef.uucp> stephen@ziebmef.UUCP (Stephen M. Dunn) writes:

>   We at McMaster University used Oh! Pascal, 2nd ed., for our second-
>year course (a second course, the first being in FORTRAN).  I found the
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
>book to be fairly useful, although it is aimed more at a first course,
>which is what the original poster had in mind.


     This is exactly the same sequence of courses that I took as an
undergrad back in the mid 70's.  Is this still the order in which
most CS programs teach introductory level programming?  I would have
thought by now that FORTRAN would not be the first language taught.
I attended an engineering school where everyone learned FORTRAN as
a first programming course.  Pascal was introduced in the Intro to
CS course.

George

George W. Leach					AT&T Paradyne 
.!uunet!pdn!reggie				Mail stop LG-129
reggie@pdn.paradyne.com				P.O. Box 2826
Phone: (813) 530-2376				Largo, FL  USA  34649-2826

880716a@aucs.UUCP (Dave Astels) (05/11/89)

In article <1085@lafcol.UUCP> ciriello@lafcol.UUCP (Patrick Ciriello II) writes:
>
>Absolutely.  Understanding the way to approach a problem and solve it is
>much more important that learning the syntax of a particular language.

This is fine for begining 'programmers' but they shouldn't be given the idea
that you can't start coding until you understand the problem and its solution.
If this was the case no research would ever get done.  In some fields (AI in
particular) the problem becomes understood better by trying to solve it.

Exploritory programming?  It definately has its place.  Of course only with a
good interactive environment (i.e. Smalltalk, Lisp...)

-Dave

Standard disclaimers about this being my own opinions...

kwan@maui.cs.ucla.edu (Edmund Kwan) (05/12/89)

In article <1866@aucs.UUCP> 880716a@aucs.UUCP (Dave Astels) writes:
>In article <1085@lafcol.UUCP> ciriello@lafcol.UUCP (Patrick Ciriello II) writes:
>>
>>Absolutely.  Understanding the way to approach a problem and solve it is
>>much more important that learning the syntax of a particular language.
>
>This is fine for begining 'programmers' but they shouldn't be given the idea
>that you can't start coding until you understand the problem and its solution.
		      ^^^^^^
>If this was the case no research would ever get done.  In some fields (AI in
>particular) the problem becomes understood better by trying to solve it.
								^^^^^

Coding without understanding the problem & its solution(s) (Code and Fix 
Approach) is a no-no according to my Software Engineering class.  We should
definitely not teach beginning programmers to hack out a program in Pascal
rather than to design a solution and then implement it in Pascal.

Perhaps you are talking about prototyping?

Seems to me that students don't ever need to develop prototypes in their
classes (or maybe all they do is develop prototypes).

gviernes@dca-pac.dca.mil (Glenn P. Viernes (BBNCC)) (05/12/89)

I'm a systems analyst and a former full-time college instructor (former because
it didn't pay well enough).  So I've worked on both sides of the Education-
to-Industry interface.  I saw many students who automatically threw code at the
symptoms of a problem, and unfortunately I continue to see computer scientists
who persist in the same 'freshman' practice.  It is these same 'professionals'
whose egos are threatened when asked to describe the problem in 25 words or
less.  Colleges are the best place to acquire new tools for solving problems,
however they are the worst place to get a solid foundation in problem analysis
and solution strategy.  I'm refering to all disciplines.  This is not an
acceptable situation. (I'm now getting off my soapbox.)

The most important lessons I learned in CS-1 are as follows:

Module 1:  How a Computer thinks and communicates.  Why?

Module 2:  The Types of Problems Computers can solve.

Module 3:  How to translate a 'human' problem into computer solvable problems.

Module 4:  A computer language is just a means of communicating with a
           computer.

If you have the freedom to effect a change, change in the direction of problem
analysis.


Glenn Viernes
NOC Analyst

Disclaimer:  I am not a spokesman for my employer...  They won't let me!

manis@faculty.cs.ubc.ca (Vincent Manis) (05/12/89)

In article <23855@shemp.CS.UCLA.EDU> kwan@cs.ucla.edu (Edmund Kwan) writes:
>Coding without understanding the problem & its solution(s) (Code and Fix 
>Approach) is a no-no according to my Software Engineering class.  We should
>definitely not teach beginning programmers to hack out a program in Pascal
>rather than to design a solution and then implement it in Pascal.

Having taught both, I'm not entirely sure that Software Engineering and
Computer Science are the same thing. In fact, I'm pretty sure that the
reverse is true.

Software engineering, like all forms of engineering, relies upon the
application of fairly well-understood principles to problems. The goal is to
produce something which works, with as little uncertainty as possible. 
Whether it's a bridge or a program, we want a reliable product, as close
to budget and deadline as possible. (Incidentally, it has always amazed me 
how people will hire `programmers' who know nothing about software design,
but would rather like to learn. I'd never hire an architect or a lawyer that
way...) 

Introductory computer science is much more of a laboratory science. Students
are supposed to learn concepts, primarily by experimentation. The goal is
not the program, but the increased understanding of the subject. Naturally,
students will be encouraged to program well; but, then, one of the reasons
I got out of chemistry was my tendency to break anything made out of glass.

There is no claim that `science' is better than `engineering' here. However,
I don't think it makes sense to teach engineering prior to teaching sound
science.

A propos this topic, if you haven't already done so, read the `ACM Task
Force on the Core of Computer Science' report in the January CACM. It will
change your paradigm of computer science completely. 
____________  Vincent Manis                    | manis@cs.ubc.ca
___ \  _____  The Invisible City of Kitezh     | manis@cs.ubc.cdn
____ \  ____  Department of Computer Science   | manis%cs.ubc@relay.cs.net
___  /\  ___  University of British Columbia   | uunet!ubc-cs!manis
__  /  \  __  Vancouver, BC, Canada V6T 1W5    | (604) 228-2394
_  / __ \  _ 
____________  "I'm not making this up, you know!" -- Anna Russell
             
              

880716a@aucs.UUCP (Dave Astels) (05/13/89)

In article <23855@shemp.CS.UCLA.EDU> kwan@cs.ucla.edu (Edmund Kwan) writes:
>
>Perhaps you are talking about prototyping?

I guess I am.  My area of interest (Natural Language) seems to be one of
"this sounds like it will work, let's try it!"

Also, I am a self-taught hacker.  As such I haven't much use for 'by the book'
software engineering.  If it feels right try it.  It's called creativity (as
opposed to rote design).  Although in a well defined domain like CS-1 level,
this approach isn't needed, and a good grounding on methodical problem
solving is required (at least for the first year CS students that I've seen).
But on the other hand, they shouldn't be limited in their problem solving
techniques.  Sometimes a shot in the dark pays off.