A Computer Geek: University

I studied at the University of New Brunswick. I have to be honest and say that I never really considered any other university. The “other” university in Fredericton was/is St. Thomas University (STU) and they didn’t offer computer science degrees. I didn’t want to live away from home – too expensive and too scary – so I applied to UNB and was accepted. At the time they didn’t have a Faculty of Computer Science, so my degree is a Bachelor of Science in Computer Science or BSc(CS)). My diploma shows it as rebus computandis which definitely was used back in Roman times.

Diploma for the University of New Brunswick, written in Latin

I shared the four UNB student union cards that I still have; I don’t know what happened to the last one. It’s hard to believe that they used to have your Social Insurance Number (SIN) printed right on the student card! Privacy laws are a little better now.

The holes punched in the cards indicated that I voted in a student union election. It was a good way of ensuring people didn’t vote twice.

The Computers

When I started in the fall of 1984, the only computer we freshmen could use was the mainframe. It was an IBM 3081, and they switched to an IBM 3090 in 1986. The CS department was very proud of their vector-processing super computer. If you know anything about mainframes, you know that it’s a central computer that you communicate with using punch cards, paper tape, or a dumb terminal. I was fortunate that I missed punch cards at UNB by one year, so I never had to use them except during the course registration process.

The engineering building was the Sir Edmund Head Hall, commonly called Head Hall, and the vast majority of the terminals were in that building. Most of the terminals were monochrome (green, if I remember correctly) but there were a few colour terminals that freshmen generally didn’t get to use. The terminals were grouped in several computer rooms, so you would go to a room and try to find an open terminal. If they were all busy, try another room.

Once you found an open terminal, you would sign in with your user ID and password. My user ID was 9090920, very easy to remember after all these years.

Me and my grandparents at my graduation

I confess that I don’t remember how we used the mainframe beyond that. They used a language called JCL (Job Control Language) to tell the mainframe what you wanted it to do – like invoke the FORTRAN compiler or run a program you compiled. At first it was all magic incantations to me, but I eventually learned enough JCL to be able to teach others – something I remember doing at the end of most of Dr. Cooper’s JCL classes when my friends would ask me what the heck Cooper just “taught”. I think there was an “interactive” front end called VSPC but I could be wrong about that.

Printing off the mainframe was interesting. Since the mainframe was in its own room, tended by white-coated acolytes, we had no access to its printer(s). UNB used the Mercurion Page Printer, capable of printing 60 pages per minute. We would tell the mainframe to print something, and then one of the mainframe’s servants would pick the printed materials up and stick them in a pigeonhole “bin”, much like a mailbox. The last two digits of your user ID was your bin number. You had to be careful not to take someone else’s print job that happened to land in “your” bin.

Each student was issued a certain number of compute credits and everything you did on the mainframe debited that. Normally that wasn’t an issue but in one course we were doing image recognition and that consumed a lot of processing time. We were writing programs that were given a grid of pixels and they had to identify what number was present in the grid. I remember having to ask the professor for more compute credits several times during that course.

Mom and I. I imagine Dad was taking the picture.

I used the mainframe extensively for the first couple of years. In 1988 the university obtained another system. It was MUSIC to my ears – Multi-User System for Interactive Computing. It ran on an IBM 9370 and was much more user-friendly than the VSPC interface of the mainframe. To me, the big advantage of the MUSIC system was that you could dial into it from home!

UNB had another computing environment while I was there – JANET – a University of Waterloo-developed system of networked IBM PCs. There was a central PC networked to a cluster of diskless IBM PCs (or Macs, although UNB was an IBM shop). I remember that they were monochrome amber-screened computers, and they were slow, but they were actual PCs and not a terminal. We did a lot of work on those after my first year.

Programming Languages

The first programming language that we were taught was FORTRAN, using the WATFIV compiler on the mainframe. Later it was Modula-2 and then Java; I don’t know what they start with now.

After FORTRAN, I learned COBOL. Computer nerds will shake their heads at that. Imagine writing an equation like this:

ADD A TO B GIVING C

Fortunately you could write this instead:

COMPUTE C = A + B

One language we learned on the JANET cluster was APL, one of the dumbest languages around. All of the operators were Greek letters, and naturally we would say, “it’s all Greek to me” all the time when programming it. It was literally correct syntax to type:

ρ ρ ρ YOUR_BOAT

(ρ is the Greek letter “rho”)

My favourite language was C. Professor John Dedourek taught the C class and I thoroughly enjoyed the class, and the programming language. I wrote a lot of code in C in my early career.

Other languages that I learned during this time included Pascal (hello Borland Turbo Pascal), PL/I, Ada, and assembly language (IBM, Motorola 68000, 6502). I don’t include BASIC here because I learned that before university on the Color Computer and C-64.