home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.misc      General topics about computers not cover      21,759 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 21,529 of 21,759   
   Peter Moylan to Mike Spencer   
   =?UTF-8?B?UmU6IElzIOKAnFBlcmZvcm1hbnTigJ   
   13 Nov 25 22:36:28   
   
   From: peter@pmoylan.org   
      
   On 13/11/25 18:11, Mike Spencer wrote:   
   > kludge@panix.com (Scott Dorsey) writes:   
   >   
   >> Lawrence =?iso-8859-13?q?D=FFOliveiro?=   wrote:   
   >>   
   >>> Funny how, in the early days (e.g. 1940s/50s/60s), many Comp Sci   
   >>> disciplines started within electrical/electronic engineering   
   >>> departments.   
   >>   
   >> In the seventies and eighties there were two kinds of CS programs,   
   >> the ones that came out of EE departments and the ones that came out   
   >> of math departments.  They were often dramatically different in   
   >> their approach and it wasn't until the ACM curriculum of the   
   >> mid-1980s that this really changed and some degree of uniformity   
   >> appeared.   
   >   
   > 1964, UMass, a course called "computer programming" was offered.   
   > The instructor was seconded from industry, not regular faculty.  He   
   > proposed to teach a math course in "numerical methods".  Most of the   
   > class announced that they'd drop the course if he didn't teach how   
   > to actually program a computer rather than a math subject.  His   
   > protests that you couldn't write a useful program if you didn't   
   > understand numerical methods were to no avail.   
   >   
   > So he bit the bullet and taught us (some version of?) Fortran which   
   > we happily tried out with punch cards on the school's IBM 1620.   
   >   
   > I had no further encounters with computers until I got a chance to   
   > dick around with BASIC on a friend's Apple ][ many years later.   
      
   My introduction to Fortran came at the end of 1967, which was at the end   
   of my third year of university. I got a vacation job at a research   
   organisation, and my project there (a problem in heat transfer) required   
   a lot of numerical calculation. My boss just said "Look in the library,   
   there should be a book on computer programming there." In his view (and   
   mine too) learning Fortran was just a matter of looking up the manual.   
   We didn't have punched cards; I had to use punched paper tape. That made   
   editing harder.   
      
   At the beginning of 1968, before university resumed, I was supposed to   
   do a 3-week Fortran intensive course. I asked for an exemption on the   
   grounds that I was already experienced in Fortran. The person who   
   assessed my program listings nearly refused the exemption, on the   
   grounds that I was using an inefficient way of computing Bessel   
   functions. (Not surprising. Before that vacation job I had never heard   
   of Bessel functions, and I couldnt't  just google it.) In the end he did   
   concede that I knew how to use Fortran.   
      
   In the middle of 1968, one of our programming assignments was to work   
   out what value of a capacitance was needed to give a certain filter   
   circuit a specified bandwidth. An elegant solution to the problem was to   
   use a successive approximation method of solving an equation of the form   
   f(x)=0. That would have been easy, except that it turned out that   
   computing f(x) required solving another equation g(y)=0. That would have   
   been straightforward in a modern programming language, but Fortran IV   
   did not permit recursive subroutine calls. My contribution to elegance   
   was to figure out a way to emulate recursion. I don't know what the   
   person grading the assignments thought of that, but I did get the right   
   answer.   
      
   By the way, the way we submitted work was to put our card deck into a   
   box, where it was transported to the computer centre. The next day our   
   deck would come back, accompanied by a printout that was the result of   
   running our program. From that we had to figure out what we had done   
   wrong, and update the card deck. (That was a stock-standard approach   
   back when everything had to be done, one job at a time, by the computer   
   operator.) After a while I became aware that somebody else was copying   
   my card deck. So I completed my assignment solution -- a different   
   assignment from the one above -- and then saved that card deck. Then I   
   introduced some errors into my program, and continued to submit the   
   faulty program. The day before the result was due, too late for the   
   cheater to recover, I restored the correct solution.   
      
   Ah, memory. That same year I had to write up a minor thesis on the Fast   
   Fourier Transform. Today everyone knows what an FFT is, but back then it   
   was new research. I could meet the requirements by writing up the   
   history of the development of the FFT, and its major variants, but for a   
   good thesis I felt I should implement all those variants, and do things   
   like timing tests. But to implement the algorithms I needed a couple of   
   small functions coded in assembly language [1]. That was a radical idea   
   back when assembly language was felt to be the property of the high   
   priests. I had to have an interview with the head of the CS department,   
   where I had to explain what those functions were, why I needed them, and   
   how I proposed to implement them. I think he was upset that a mere   
   electrical engineering student would presume to do advanced programming,   
   but in the end he have me permission to use assembly language on his   
   sacred machine.   
      
   [1] That was then, this is now. Now I know how to do the job without   
   assembly language. (And without Fortran.) But I was a mere beginner in   
   those days.   
      
   History repeats itself. Just a few years ago, after my retirement from   
   the university, I was given the job of designing a smart high-voltage   
   protection relay. (The application was in coal mining, where the   
   electrical noise is at a level you wouldn't believe.) To extract the   
   higher-frequency components of the noise, I needed an FFT with an   
   execution time in the millisecond range. In the end I designed an FFT   
   implementation so efficient that I can't read my own code[2]. But it   
   worked, and the relay got an award.   
      
   [2] Method:   
   (a) Do an FFT implementation in a high-level language (I used Modula-2).   
   (b) Do some code optimisations, like unwrapping the outermost loop.   
   (c) Continue doing testing and tweaks to improve the code.   
   (d) Translate the result into C, which is what the customer wants.   
   The result is not very readable, but it runs like the clappers.   
      
   --   
   Peter Moylan       peter@pmoylan.org    http://www.pmoylan.org   
   Newcastle, NSW   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca