A Personal Computing History

I have always had an interest in mathematics and in things numerical and abstract. My youth was largely devoid of computing machines; the electronic calculator arrived in my middle to early high school days. My first calculator was a TI-SR50. This was our liberator from the tyranny of trig tables and log tables. It obsolesced such painful topics as logarithmic solution of triangles and interpolation to sharpen the accuracy of trigonometric and logarithmic calculations.

TI SR 50 Calculator picture

Later I had an RPN calculator, an HP 33C.

HP 33C Calculator picture

Mostly though, I liked the analytical side of mathematics. My next encounter with computing was at Indiana University as a sophomore, when I took a class in FORTRAN. We used IBM punch cards that looked like this.

Picture of an IBM punch card

Each punch card held one line of code. How did you punch the punchcards? You used a machine that looked like this.

Picture of a punch card machine

Today you take the convenience of a text editor for granted. Edit, compile, .... and BOOM! Instant feedback.

In these primitive times, entering a program was a horrible chore. You had to punch your cards on a keypunch machine. One mistake -- oops, toss card and retype. You had to number your cards with a marker, lest they get out of order.

Today you type a simple command or push F5 to compile. It was not so easy back then. You took your cards to a Computer Priest. He ran them through a card reader, which blew air into your deck of cards and read them at high speed. They made a noise like "THAPPA! THAPPA!..... THAPPA!" as they got read. The punch holes were used to represent characters punched on the card.

An hour or two later you got your output. Syntax error? Fix the offending card or cards. Now return to the previous step. An edit compile cycle could take an hour or more. Heaven forfend if you dropped your deck. People used big rubbers band to prevent this lamentable event from occurring. Often they would number the cards in case this disaster occurred.

This is what the computer looked like. It was less powerful than your lappy.

Picture of mainframe computer, 1970s vintage

This made me decide: No human being in his right mind would want to do this for a living. After that ordeal was over, I did not touch another computer until 1984. Then came this.

Picture of 1984 Mac

My Ph. D. adviser at The University of Texas, Gary Wise said, "There is a new computer called a Macintosh. It can help us to prepare our conference papers." I learned how to use a Mac. At first, you kept your OS on a 3.5 inch floppy. All of your files and apps resided on it too. Early macs could only run one application at a time.

Macs steadily improved while I was finishing my Ph. D. I wrote one of the early Ph. D. dissertations on a Mac using a word processing program. It was a technological feat.

I then became an assistant professor of Mathematical Sciences at the University of Delaware. There, I decided I needed to learn how to use TeX. One of my friendly colleagues helped me to get a terminal to connect to the VAX. This was a small mainframe that looked like this.

Picture of VAX mainframe

UD was wired so you could connect to the VAX from the math building. I had an HP-2621A terminal that looked like this. Its odd appearance and "neck" reminded me of the old TV show, Lost in Space.

Picture of an HP 2621A terminal

This terminal could not display any graphics; it only showed characters in green and in a monospace font. The VAX ran System V AT&T UNIX. I used an early version of vi to edit files, which is similar to the dreaded vi tiny installed by default on Ubuntu. I built TeX files at the UNIX command line. This sounds clunky, and it was. But it was a quantum improvement from computer priests and those damnable punch cards.

This also marked my emergence onto the internet (1987). My first email address was morrison@copland.udel.edu. Back then there was no Google and everything was character-based. The internet was traversed on character display terminals. You could search using a "gopher;" these derived their name because the idea was developed at the University of Minnesota. You could not view images, just text. It was possible to transfer files via ftp.

Later, I got a fancier terminal, a Northwest Digital gp29. It could actually display TeX output. The HP could not do that. The graphics rendered slowly.

Sun stations became popular in the UD math department. The unit housing the CPU and the hard drive looked like a pizza box. Hence the term "pizza box" used in my Python textbook.

Picture of an Sun Sparc 1

You attached a monitor, keyboard, and three button mouse to this machine and it offered a large graphical display on a heavy CRT.

During my tenure at UD, the VAX got the axe. It cost less than one year's maintenance fee for the VAX to replace it with four Sun stations. These were much faster than the VAX and they have names like brahms and copland, and were referred to as "the composers." Sun stations became increasingly popular, and the fancy gp29 sadly obsolesced.

After UD, I worked for a proprietary trading firm in Philly. I did a lot with C-Shell Scripting and S+ statistical programming. The S language has evolved into the R-project and is widely used by data scientists and statisticians today. Most of this was done on Sun Sparcs.

Then, in August of 1993, I arrived at the Bergen Academies. We went into a computer lab and saw...... The World Wide Web. I thought, "This thing is going to change the world in huge ways." We used Netscape to browse the web. Search engines such as Yahoo! and Alta Vista appeared to help you search for things on the Internet.

I had a Next Station and IBM PCs running Windoze 3.1 in the math area. The NeXT looked like this

Picture of an NeXT Station

The company that created this computer was run by Steve Jobs. It's very smart, modern UNIX-based OS was the predecessor of modern MacOSX. Printing and the display were both driven by PostScript.

The Academy's lab was outfitted with lots of Windoze 3.1 machines. One reason I was hired was to introduce the C++ programming language to the Academy. My students compiled in Borland C++. I compiled on the NexT stations with the BSD UNIX C++ compiler, as well as in Borland. I started the AP Calculus and AP Computer Science programs at the Bergen Academies and was there until June of 2000.

I joined the Mathematics faculty of the North Carolina School of Science and Mathematics in August of 2000. This was a heavily windoze-centric environment. I used Windoze XP on a desktop machine and had a Mac at home. I have long been a TeX user; I had to use the godawful Microsoft Word Equation Editor, which was slow as molasses. It took endless pointing and clicking to typeset a simple equation. Then came the endless version "won't open" problems. I started to teach computer science within the math department. There was a single course, which used Karel the Robot and C++.

During this time, Richard Alston recognized the value of laptop computers. I was the pioneer and was the first faculty member to base operations off of a laptop. This rapidly gained popularity, and the entire campus became laptop-based, and a wireless network was built. Projectors were installed in classrooms that could be driven by faculty laptops.

In 2005, I became the founder of a free-standing program in computer science at NCSSM. About that time, I discovered Ubuntu Linux. I soon defenestrated and adopted it as my principal OS.

Not long before this happened, in 2004, I moved the APCS program to Java when it became the lingua franca of AP, and began teaching a preliminary unit on Python programming. We went to Python3 several years ago when it was clear that 3 was here to stay and that it is the future of Python.

Today, we use JavaScript/ECMA6 as our first language, and we run an intermediate programming course in Python. We teach the contents of the AP CS curriculum (and much more) in Java13 and JavaFX in their open source versions (openjdk/openjfx) with a strong emphasis on event-driven programming and object-oriented data structures. More advanced courses are taught in Java, Python or C. Today, I use a Mac as if it were a UNIX box and maintain my OSS libraries using MacPorts.