(This post was authored by Dr. Bill Eberle)
So where do I go from here? Different people are telling me different things – you should do this, you should do that – but none of it felt like what I really wanted to do. I wasn’t even sure what school I wanted to attend. (Starting to sound like one of those teenage angst movies from the ’80s and ’90s, or maybe a bit like “The Graduate”, without Mrs. Robinson). When I was a junior and senior in high school, I toyed with a few different majors. Architecture. Journalism. (I thought I wanted to be a sportswriter). I didn’t even decide on what school I was going to (SMU? UH? UT?) until the end of my senior year when I picked the University of Texas (without even a college visit). Now, what was I going to major in? Since I wasn’t sure exactly what I wanted to do, I decided to apply and was accepted into the Honors program – basically an “undecided” major for students who had aspirations of going on to medical or law school (still not sure what I was thinking).
In the second semester of my freshman year, I decided to take an elective: Intro to Programming. I had played with Basic before, but other than the manual that came with Basic (there was no internet back then), it was all “self-taught” – and if I could look back on the code I wrote back then (primarily games), I am sure I would be embarrassed. But even then, I knew I didn’t really know how to program – or even the basics of computer science – so I was kind of excited to see what a programming class would look like.
Back then, the Intro to Programming and the Data Structures and Algorithms – the first two courses in the computer science curriculum – were taught in Pascal. When I look back on Pascal, I realize what a wonderful first programming language! Not one that would ever be used in the real world, but a great way to be introduced to variables, loops, conditional statements, strict type-checking, etc. I remember watching the instructor (there were about 100 of us in the class), writing on those clear plastic sheets that sat on a box containing a bright light that projected the image on the screen, showing us how concepts could be implemented in Pascal. I was ready to start hacking out my first working program – and fortunately, I didn’t have long to wait! Little did I know that it was not as straightforward as simply typing at a keyboard…
So, the way programming worked in the early ’80s (at least for the first year of computer science majors at the University of Texas) was that you wrote your program (i.e., lines of code) on a piece of paper. Then once you felt like you had the correct sequence of code, you went down to the University Bookstore and purchased a stack of punch cards. Don’t know what that is? Think of a paper airline ticket. Wait, don’t know what is either? Think of a time clock at the factory… Oh, never mind. It is a card about the size of a pocket protect… stencil… oh never mind – a long piece of stiff paper. Then you would put each card into what looks like a type-writer. (I am done making analogies). Then, as you typed on the keyboard, the line of code would be punched on the card along with holes that correspond to that line of code. Finally, once all lines of code have put onto separate punch cards, you were ready to get the program compiled and run. Unless you dropped all your cards while walking them to the computer operator… Remember: order of code (or in this case cards) matter.
Fortunately, someone had told me a trick one time to (a) put a rubber band around your cards, and (b) put them in a box. I still remember standing in line at the computer center (after having typed/punched my first program) and handing my stack of cards – rubber-band and all – to the operator. (Who was usually another student at the university). Now, today, we type the compile command with the name of the file (or files) to compile (or use a form of a Makefile) and then run the code getting an answer almost immediately. (In later classes I would learn about linkers and loaders – other topics long since forgotten in computer science education). In those days, you left your “baby” in the hand of someone else. And if you were lucky, you would come back in a few hours to see what happened.
So, now it is after dinner. I return to find on a table to the side a green and white striped stack of paper, with holes along both sides, about the size of a welcome mat (okay, I still had one more analogy), with my name and ID number of the top page. (Which helped when finding which was mine among all of the other freshmen who were working late that day). I pick up my first “job” and proceeded to find an open table where I could review my program and what it produced for results. The first few pages were my lines of code replicated in the order of their cards. Looking good! Then, I would get to the last page. Wait? Where is my output? What is this?
unknown variable – the variable x is not declared
Okay… How late is the computer lab open?
Net Time: Building Flight Simulators