[net.cse] various recently-discussed topics

rcj@burl.UUCP (Curtis Jackson) (03/05/86)

a) 4.0 GPAs -- I essentially agree with the contention that a 4.0 doesn't
   necessarily qualify someone to do a good job in the real world.  It can
   often mean someone who is too focused, too tunnel-vision about require-
   ments, and downright unimaginative.  However, I must also admit that we
   'stole' one of my best friends from AT&T in Denver to work on this project,
   and he (with his 4.0 BSCS and 3.9? MSCS) has been a boon to us -- besides,
   he's a great drinking buddy!  He is none of the things mentioned above.

b) BA vs. BS -- At the University of MS, a BACS was simply a BSCS that required
   less math and only 30 hours of CS courses instead of the 42 required for
   a BSCS.  The rest of the extra hours were largely electives.  Anyone who
   wants to try to tell me that a BACS *from Ole Miss* better prepared anyone
   for anything is welcome to try -- translation:  remember not to make
   sweeping generalizations about degree programs.

c) A lot of universities used to teach FORTRAN as their introductory course.
   Now, they usually teach PASCAL or some other structured language.  Progress,
   right?  Well, not necessarily.  Seems that, as the baby boomers left
   college, new sources of enrollment were needed.  The next preying ground
   of college recruiters?  Junior colleges.  And all these junior college
   students would be real bored having to take FORTRAN that they had already
   had in junior college -- and the courses at a lot of colleges are scheduled
   so that low demand courses are spaced to correspond with high-volume
   semesters.  That meant that if the junior college students came in and
   started in on PASCAL they would be one semester ahead of, and out of sync
   with, the bulk of the other CS students.  This was the lecture I received
   from my department head when asked why FORTRAN was suddenly no longer
   required.

d) I started with FORTRAN my first semester.  Then came summer, and a co-op
   job where I learned HPL, HP-Basic, and Tektronix Basic.  Then PASCAL,
   COBOL, and MACRO-11, among others.  I was ready for anything.  Then
   came my intro to C -- our Minicomputers I prof told us to write a simple
   sleep queue scheduler/manager in C, compile it into Unix assembler on
   our PDP-11/34, run it through an ed script he would supply to translate
   it into MACRO-11, download this to the PDP-11/03 running RSX-11, and have
   it run without any editing of anything after the original C program.
   Finally, someone got up enough guts to raise their hand and tell him that
   none of us knew C (it wasn't taught at the university).  He said, "Oh, yes,
   get this book [holding up a copy of K&R] from the bookstore, $12.  You
   have 2 weeks."  Now THAT is the way to teach a computer language!
   In case anyone is interested, the real trick was to initialize an array
   of ints with octal PDP-11/03 hardcode for an interrupt and trap handler
   and, after setting up your sleep queue, to 'goto' the name of the array
   from inside your idle loop.

e) On hackers vs. non-hackers -- I don't want any hackers working for/with
   me -- not true hackers.  I don't want the person who spent his/her time
   in school finding out how everything in the world works, I want the kind
   of person who was relatively in the mainstream but who strived (and
   hopefully succeeded) to keep two or three steps ahead of it.  The kind
   of person who, when the AI prof suggested that we now try to apply a
   heuristic to our bi-directional search, had already done so two weeks ago
   and was now three chapters ahead in the book working on some other aspect.
   The kind of person who said, "I don't like this parser generator we have
   to use for our compiler course; I'll write my own and see if I can get
   future classes to use it instead."  I realize that this last example in
   particular impinges on the realm of the hacker, but I want people around
   whose primary motivation is to improve the working environment; not to
   satisfy their own curiosity.

'Nuf said,
-- 

The MAD Programmer -- 919-228-3313 (Cornet 291)
alias: Curtis Jackson	...![ ihnp4 ulysses cbosgd mgnetp ]!burl!rcj
			...![ ihnp4 cbosgd akgua masscomp ]!clyde!rcj

marco@andromeda.UUCP (the wharf rat) (03/07/86)

In article <1093@burl.UUCP>, rcj@burl.UUCP (Curtis Jackson) writes:
> 
> d) I started with FORTRAN my first semester.  Then came summer, and a co-op
>    job where I learned HPL, HP-Basic, and Tektronix Basic.  Then PASCAL,
>    COBOL, and MACRO-11, among others.  I was ready for anything.  Then
>    came my intro to C -- our Minicomputers I prof told us to write a simple
>    sleep queue scheduler/manager in C, compile it into Unix assembler on
>    Finally, someone got up enough guts to raise their hand and tell him that
>........
>    none of us knew C (it wasn't taught at the university).  He said, "Oh, yes,
>    get this book [holding up a copy of K&R] from the bookstore, $12.  You
>    have 2 weeks."  Now THAT is the way to teach a computer language!

     Why is that the way to learn a language ?  Admittedly, you can
pick up a new language in a few weeks, but to learn a new language
*and* complete tricky projects at the same time seems a bit much.
Also, I find that learning a language that way leaves a lot of
gaps-I learned macro-32 that way, and anyone who's seen my postings
to net.decus will know how many gaps I have in my knowledge of the subject.
(System service ?? Duh, what's a system service?? (-:)
To me,the only way to learn a language well is to write lots and lots
of stuff in it, not just figure out how to do one thing. 
(No criticism of your apparently excellent CS education intended, Curtis.)

                                                    Lou Marco
                                                    CCIS,Rutgers,Newark
#include<disclaimers>

rcj@burl.UUCP (Curtis Jackson) (03/09/86)

In article <117@andromeda.UUCP> marco@andromeda.UUCP (the wharf rat) writes:
>In article <1093@burl.UUCP>, rcj@burl.UUCP (Curtis Jackson) writes:
>> 
>> d) I started with FORTRAN my first semester.  Then came summer, and a co-op
>>    job where I learned HPL, HP-Basic, and Tektronix Basic.  Then PASCAL,
>>    COBOL, and MACRO-11, among others.  I was ready for anything.  Then
>>    came my intro to C -- our Minicomputers I prof told us to write a simple
>>    sleep queue scheduler/manager in C, compile it into Unix assembler on
>>    Finally, someone got up enough guts to raise their hand and tell him that
>>........
>>    none of us knew C (it wasn't taught at the university).  He said, "Oh, yes,
>>    get this book [holding up a copy of K&R] from the bookstore, $12.  You
>>    have 2 weeks."  Now THAT is the way to teach a computer language!
>
>     Why is that the way to learn a language ?  Admittedly, you can
>pick up a new language in a few weeks, but to learn a new language
>*and* complete tricky projects at the same time seems a bit much.

*sigh*, I keep forgetting this is the USENET, and you can't see the twinkle
in my eye or hear the lilt of my voice.  Let me restate the above more
appropriately:

;-)   Now THAT is the way to teach a computer language!   ;-)

<In case you missed it, please note the winking smiley faces above>
-- 

The MAD Programmer -- 919-228-3313 (Cornet 291)
alias: Curtis Jackson	...![ ihnp4 ulysses cbosgd mgnetp ]!burl!rcj
			...![ ihnp4 cbosgd akgua masscomp ]!clyde!rcj

chen@gitpyr.UUCP (03/15/86)

In article <117@andromeda.UUCP>, marco@andromeda.UUCP (the wharf rat) writes:
>In article <1093@burl.UUCP>, rcj@burl.UUCP (Curtis Jackson) writes:
>>   ... He said, "Oh, yes,
>>   get this book [holding up a copy of K&R] from the bookstore, $12.  You
>>   have 2 weeks."  Now THAT is the way to teach a computer language!
> 
>      Why is that the way to learn a language ?  Admittedly, you can
> pick up a new language in a few weeks, but to learn a new language
> *and* complete tricky projects at the same time seems a bit much.
> Also, I find that learning a language that way leaves a lot of
> gaps-I learned macro-32 that way, and anyone who's seen my postings
> to net.decus will know how many gaps I have in my knowledge of the subject.
> To me,the only way to learn a language well is to write lots and lots
> of stuff in it, not just figure out how to do one thing. 

By the second year, a CS major had better realize that there's more to
CS than just "learning languages".  I agree with Curtis.  CS people
should be able to learn languages on their own.  This is because
languages allow programmers to express abstract concepts in a concrete
way.  Languages differ in the concepts they allow for (semantics) and
the exact mechanics of expressing them (syntax).  Learning a language
is a matter of figuring out what concepts the language is built around
and then figuring out the nitty-gritty syntax.  So, if the languages
are similar enough (and most procedural languages are) one non-trivial
programming assignment should be enough to get people acquainted with
what the language can do.

Unfortunately, it's hard to "teach" people this.  You can lecture them
all you want on similar concepts/constructs in langauges, but in order
for it to catch on, the students not only have to learn the facts about
languages, they also have to learn a new way of looking at languages
and *that* is impossible to guarantee.  You can't push people down
that road, the best you can do is show them the way and hope they
follow.

The one time students might need help learning a language is when the
language embodies concepts the students haven't seen before.  Things
like fp, and prolog probably fall into this category.  Then the
students might need some help picking up the concepts (not the
language).  After all, in the case of prolog say, how many
undergraduates know what a backward-chaining, resolution theorem
prover is?

	Ray Chen
	gatech!chen

jon@cit-vax.Caltech.Edu (Jonathan P. Leech) (03/18/86)

Summary:
Expires:
Sender:
Followup-To:

Organization : California Institute of Technology
Keywords:

In article <1549@gitpyr.UUCP> chen@gitpyr.UUCP (Ray Chen) writes:
>
>By the second year, a CS major had better realize that there's more to
>CS than just "learning languages".  I agree with Curtis.  CS people
>should be able to learn languages on their own.  This is because
>   ...
>The one time students might need help learning a language is when the
>language embodies concepts the students haven't seen before.  Things
>like fp, and prolog probably fall into this category.	Then the
>students might need some help picking up the concepts (not the
>language).  After all, in the case of prolog say, how many
>undergraduates know what a backward-chaining, resolution theorem
>prover is?
>
>	Ray Chen
>	gatech!chen

    When I came to  Caltech,  the  only  language  I  knew  was  BASIC
(Dartmouth style). In a month I had K&R -  but	it  was  over  a  year
before I was truly comfortable with C.	Pointers?  Structures?	 These
were very difficult concepts to  struggle  through  on	my  own.   (It
didn't help that, while K&R  is  a  great  reference,  I  found  it  a
terrible tutorial).
    I have had similar problems with  smalltalk  and  prolog.  In  the
compiler class I took a few years back, first term we wrote  a	simple
FBAPP compiler in C or Mainsail (taking the entire  term  to  do  it).
Second term we spent 2 weeks on  prolog,  then	we  were  told	to  go
reimplement the compiler in prolog - in less than a  month.  That  was
NOT fun. Furthermore, I was struggling so much	with  the  details  of
getting the bloody compiler working that I missed out  on  fundamental
things about the language which would have been MUCH more valuable  to
know about initially.

    -- Jon Leech (jon@csvax.caltech.edu || ...seismo!cit-vax!jon)
    __@/

rcj@burl.UUCP (Curtis Jackson) (03/19/86)

In article <1549@gitpyr.UUCP> chen@gitpyr.UUCP writes:
>In article <117@andromeda.UUCP>, marco@andromeda.UUCP (the wharf rat) writes:
>>In article <1093@burl.UUCP>, rcj@burl.UUCP (me) writes:
>>>   ... He said, "Oh, yes,
>>>   get this book [holding up a copy of K&R] from the bookstore, $12.  You
>>>   have 2 weeks."  Now THAT is the way to teach a computer language!
>> 
>>      Why is that the way to learn a language ?  Admittedly, you can
>
>By the second year, a CS major had better realize that there's more to
>CS than just "learning languages".  I agree with Curtis.  CS people
>should be able to learn languages on their own.  This is because

Although my original statement above was mostly tongue-in-cheek, I do
agree with Ray.  When I went to work for the Naval Ocean R&D Activity
after only one semester of school and one on-punch-cards Fortran course
as my sum total computer experience, I found this out the hard way.
They sat me down in front of an HP 9825A Programmable Calculator and
handed me a foot-thick stack of manuals, saying, "Learn this thing's
language (HPL, a weird hybrid between assembler, BASIC, and Fortran),
and in two months we need a working documented data acquisition system
that will take in data from 1-4 temperature probes simultaneously,
each at exactly 20 samples per second, checking each point for validity,
putting the results onto both internal tape cartridge and this nine-track
unit simultaneously.  Oh, by the way, we need you to run this plotter
and plot up to four probes with offset so we can compare them, and we
also need a deviation-from-a-weighted-mean plotting program as well."

I look back at the code today and cringe because noone, not even 3 different
HP reps, could get the interrupts to work on the @$#%#@$$% thing, so it
has fun timing control statements in it like:

i = i + sqr(1)    /* increment i by the square root of 1 */

Other than that, though, it performed above and beyond their specs; I was
published at 17 years old as the co-author of an internal Teknote, but
MOST IMPORTANT OF ALL, the experience was incredible!!  When I went back
to school and took Pascal, it was a breeze!
-- 

The MAD Programmer -- 919-228-3313 (Cornet 291)
alias: Curtis Jackson	...![ ihnp4 ulysses cbosgd allegra ]!burl!rcj
			...![ ihnp4 cbosgd decvax watmath ]!clyde!rcj