[net.lang] Professionalizing Programmers, Going Off-line

kurt@fluke.UUCP (Kurt Guntheroth) (06/04/84)

.
I have always harbored the secret feeling that learning computing in an
online environment is dangerous.  I cite the following 'evidence'.

1.  If you have to prepare your program off-line (worse yet on punch cards),
    you tend to think out the whole program in advance, because going back
    and forth from the punch (or whatever input device) to the computer is
    tedious, input devices are typically scarce, the wait for output is also
    tedious.

    By contrast, an on-line environment encourages incremental development
    a.k.a. programming at the keyboard.  This is obviously more comfortable
    and friendly, but leads to laziness.  You let the computer find all your
    bugs by compiling/running the program a large number of tines.  Not only
    does this waste machine cycles (too bad) but it leads to reliance on
    debugging to verify the correct operation of the program.  This is quite
    dangerous.  It would be better to rely on designing correctness in.

2.  The hassle of punching programs off-line causes you to look carefully at
    your program after each run, to correct all possible bugs.  This kind of
    introspection also improves the quality of code and reduces the number
    of runs.

3.  You need to know a lot less of the operating system in systems that make
    you program off-line.  Typically a few fixed lines of JCL will get you
    through your whole learning experience.  You concentrate on programming,
    not on learning stupid details of the OS.

I learned to program using punched cards.  By the time I was a teaching
assistant, we had on-line systems.  Now I am in industry and of course we
are on line.  I would never trade my nice VT100 and unix for an 029 and
NOS/BE, but I am not a bit sorry I learned on an off-line system.  I hope
educators will consider off-line systems for teaching.
-- 
Kurt Guntheroth
John Fluke Mfg. Co., Inc.
{uw-beaver,decvax!microsof,ucbvax!lbl-csam,allegra,ssc-vax}!fluke!kurt

nessus@mit-eddie.UUCP (Doug Alan) (06/06/84)

>	From: kurt@fluke.UUCP

>	1.  If you have to prepare your program off-line (worse yet on
>	punch cards), you tend to think out the whole program in
>	advance, because going back and forth from the punch (or
>	whatever input device) to the computer is tedious, input devices
>	are typically scarce, the wait for output is also tedious.

That's right!  And to make sure the students really get it right the
first time, we should make them toggle it in in binary on the front
console, and if they get it wrong the first time, they fail not only
that course, but all their courses.  If they get it wrong the second
time, then they get a 30 million volt shock that makes sure they will
never have the ability to deface a computer's memory so again.

No thanks!  I was able to learn how to think about my whole program in
advance without cruel and unusual punishment and having my time wasted.
The trick is to give problems difficult enough so that the students
won't be able to succeed without thinking in advance how to structure
their programs.
-- 
				-Doug Alan
				 mit-eddie!nessus
				 Nessus@MIT-MC

				"What does 'I' mean"?

 

steffen@ihu1h.UUCP (Joe Steffen) (06/06/84)

If you are homesick for the bad old days, why stop with keypunching?  Why
not go back to entering programs via front panel switches?

This "Lets make it real hard to program so we do it right the first time."
attitude really irritates me.  I get a mental image of programmers sitting
at terminals in a Roman galley with slavedrivers whipping those programmers
that make a mistake, ala the movie Ben Hur.

Where does this mistaken idea come from?  I have programmed via switches,
plug board, keypunch, paper terminal, screen terminal, and bit-mapped
terminal.  My programs have been of the same quality regardless of input
device, but the time it takes to write and debug a program is much smaller
with the advanced input devices.
-- 


	Joe Steffen, AT&T Bell Labs, Naperville, IL, (312) 979-5381

ken@ihuxq.UUCP (ken perlow) (06/08/84)

--
My first data structures course combined the worst of both
worlds--the U of Wisconsin had 5 Terak micros running UCSD
system for 40 of us + about 60 intro to programming students.
You got to play around on-line, but you had to reserve 2 hr
slots, often at 3 AM, always several days in advance.  So
we came in there with a LOT of code written out, with
debugging hypotheses completely detailed, as there was no
time to stop and think--and who could think straight at 3 AM
anyway? (Remember, this was an intro course, long before any
of us got used to hackers' hours.)  So we could experiment
on-line, but prepared for same off-line.

Well, 7 non-trivial assignments in a 7-week summer session
was a hell of a load.  We were often working on two assignments
at the same time, finishing up the one--invariably late (and
late points were, of course, assessed) while starting the next.
But it broke me of most of my worst habits--poor modularity, too
few comments, variables called "x",  a good night's sleep.
Thanks, Bill Cox, wherever you are, I needed that.
-- 
                    *** ***
JE MAINTIENDRAI   ***** *****
                 ****** ******    08 Jun 84 [20 Prairial An CXCII]
ken perlow       *****   *****
(312)979-7261     ** ** ** **
..ihnp4!ihuxq!ken   *** ***