This week we continue my nostalgic look back at my college days specifically my second semester at IUPUI and my first-ever programming class.
Links of Interest
- IUPUI website: https://www.iupui.edu/
- Demonstration of a 2-5 Chinese Abacus: https://youtu.be/PbGft644WUE?si=HIjzXcdWnPPW1rRS
- More about types of abacus than you ever wanted to know: https://youtu.be/DSrAvn_znlc?si=-Ksn82F_orOGcpVW
- Bowmar Brain Calculator: https://en.wikipedia.org/wiki/Calculator#Development_of_electronic_calculators:~:text=901B%20(popularly%20termed-,The%20Bowmar%20Brain,-)%2C%20measuring%205.2%20by
- Slide rules on Wikipedia: https://en.wikipedia.org/wiki/Slide_rule
- Addiator Mechanical calculator: https://youtu.be/ryST18JJ7VU?si=kSUE-Y4oTgHg3kUV
- Another Addiator video: https://youtu.be/cT8fSGHHiAs?si=aBR7YCFamWqs6ImD
- DigiComp demonstration: https://youtu.be/chrURgrkd44?si=U28LSayBdXEqFlEF
- IBM System/360 Model 44: https://en.wikipedia.org/wiki/IBM_System/360_Model_44
- IBM punch cards: https://en.wikipedia.org/wiki/Punched_card
- Herman Hollerith: https://en.wikipedia.org/wiki/Herman_Hollerith
- Keypunch machines: https://en.wikipedia.org/wiki/Keypunch
- FORTRAN programming language: https://en.wikipedia.org/wiki/Fortran
- Karnaugh map: https://en.wikipedia.org/wiki/Karnaugh_map
- IBM 1620: https://t-lcarchive.org/ibm-1620/
- Binary Coded Decimal: https://en.wikipedia.org/wiki/Binary-coded_decimal
- Line Printer art Mona Lisa: https://www.gloveboxoptions.com/shopping/impact-printer-products-ascii-art#ascii-art-product-AART112
- ASCII art: https://en.wikipedia.org/wiki/ASCII_art
Where to listen to this podcast: https://podcasters.spotify.com/pod/show/contemplatinglife
YouTube playlist of this and all other episodes: https://youtube.com/playlist?list=PLFFRYfZfNjHL8bFCmGDOBvEiRbzUiiHpq
YouTube Version
Shooting Script
Hi, this is Chris Young. Welcome to episode 46 of Contemplating Life.
This week we continue my nostalgic look back at my college days specifically my second semester at IUPUI and my first-ever programming class. We’ll also recount the history of the first computers I ever used.
As reported in previous episodes, I can handle logic problems, story problems, geometry, trigonometry, and algebra with little difficulty. But if you give me a column of numbers, I can add it up three times and get three different answers. I attribute this problem to my beloved third-grade teacher Miss Holmes. She determined I was a gifted student and didn’t want to burden me with so-called “busywork” like mindless repetitive math and spelling drills. As a result, I’m terrible at basic arithmetic and I can’t spell the save my soul.
Given these academic shortcomings, getting into computers was natural for me because it required my logical thinking and I let the computer do the grunt work of arithmetic and years later things like spellchecking.
I thought I would trace my early history with computers from the beginning. Somewhere along the way I’m guessing about age 6 or 7, I was given a toy abacus. I believe it had about six or seven columns of beads. The lower portion had 5 beads in each column and above that were 2 beads. The lower beads were worth 1 each and the upper ones worth 5 each. When the lower section filled up to 5 then you would throw one of the upper beads. When both upper beads were thrown you would push them back and carry the one.
It didn’t take me very long to realize you really only needed 4 beads on the bottom and 1 bead at the top. Moving that fifth bead up and then only to immediately clearing it and pushing the 5-level bead was a wasted motion. Similarly having both 5 valued beads thrown only to reset them immediately and carry the one was a waste. I later learned that some abacuses are indeed built with only one upper bead and 4 lower beads.
I linked a couple of YouTube videos about abacus use. In one of them, a Chinese gentleman demonstrates a 2-5 Chinese abacus but you will notice he is only using four of the lower beads in one of the upper beads. I learned that the 1-4 style is Japanese and is called a soroban. I never knew what they were called I just played with it as a toy.
In high school, I took a bookkeeping class and we were allowed to use an adding machine but I didn’t have the physical strength to operate one. Of course, there were no pocket calculators in the early 1970s. I think the original pocket calculator the Bowmar Brain came out in my senior year of high school. It was a simple four-function calculator with a red LED display. It retailed for $240. One of my classmates in high school physics had one and we were all jealous.
In my high school senior physics class, I learned how to use a slide rule. That ability alone was enough to brand you as the ultimate nerd. All I would have needed was a pocket protector and a piece of tape holding together broken glasses to complete the picture. Fortunately, I didn’t have either of them.
My mom had a device that was a mechanical pocket-sized calculator called an Addiator. I have linked YouTube videos demonstrating one of these. The one I had was a little taller and narrower than the one in the video but it worked exactly the same. It was made out of metal perhaps aluminum or tin. It had several sliding pieces that you would slide up and down with a metal stylus. You would put the stylus in a notch corresponding to your number. If that notch was shiny silver you would drag it down. If it was tinted red, you would drag it up and over a hook to carry the one. There was a sliding lever at the top that you could pull out to reset all of the slides to zero. I barely had sufficient strength to operate it and if you didn’t get the stylus in the right hole and slide it as far as it was supposed to go, you wouldn’t get the right answer. If the stylus slipped out of the hole, you would get totally lost and have to start over. It didn’t help my bookkeeping grades very much because it was too hard to use.
The first digital computer I owned was a toy called DigiComp. It was mostly plastic with a few metal pieces. There were some springs that would wear out and I replaced them with rubber bands. I still have the device stashed away in a box in my room but I would have to do some restoration on it to get it working so I didn’t bother getting it out for this video. Fortunately, I found a YouTube video demonstrating it. As always, the link is in the description.
Essentially it was a programmable three-bit machine. It would teach you binary logic functions such as AND, OR, NOT, and XOR. You would program it by placing short half-inch or 1-inch lengths of plastic drinking straws onto little plastic pegs. There was a plastic tab hanging out the right side of the device and you would cycle it by pushing it in and out. It was labeled “the clock” and it stimulated one clock cycle of a CPU.
You could program it to do binary arithmetic but the most interesting thing it would do is it would count from zero through seven in binary and then recycle to zero. There were little 0/1 stickers placed on it that would appear in a little window as various pieces slid back and forth. The sliding pieces were appropriately called “flip-flops” because they flipped and flopped back and forth on each cycle of the clock. What I did not know until years later was that these were emulating an electronic circuit which is also called a flip-flop and is an essential component of computer electronics.
I already described my first encounter with a real computer when my friend Dennis carried the teletype machine downstairs at Northwest High School for me to log in to a Honeywell timesharing computer located in the Indianapolis Public Schools administration headquarters.
In recent episodes, we talked about tinkering around with the University’s DEC-System-10 computer via teletypes. However, my first programming class did not use that system. There were two other computers in the 38th St. computer center in the A-Building. The machine I used in my first programming class was an IBM System/360 Model 44. It was sold from 1965 through 1973. It was a specialized version of the IBM System/360 architecture especially designed for scientific computing, real-time computing, process control, and numerical control. I wasn’t aware it was such a strange variant. I just remember the model number and only learned of its specialized capabilities when researching this episode. I doubt that we ever used any of the advanced features.
We did not have direct access to the 360. You would type your programs on punch cards and put them in a deck. There were specialized cards already punched for you called JCL cards. That stood for “Job Control Language”. You would put a few JCL cards on the top of your deck, then the cards from your program that you had written, and then add a specialized card at the end to tell that you are done and what to do with it. You would wrap it in a rubber band and hand it to the computer operator through a window. I think you got some sort of a receipt with the job number on it so you could claim your output later. They would give you an estimate of how long you had to wait to get your output depending on how many jobs were in the queue ahead of you. You would come back in perhaps 30 minutes and they would hand you your output in the form of a double-wide green bar printout. They must’ve given you some sort of job number or something so you could claim your output but I don’t recall that exact mechanism.
You would unfold several pages of fan-folded computer printout only to find out that you made some small typographical error. You would have to re-punch that particular card and repeat the entire process.
Many of my listeners may have no idea what I mean by an IBM punch card. Let me tell you the history as I learned it with a little help from Wikipedia. It may not be 100% accurate.
1880 US Census took eight years to compile the data. Estimates were that would take as long as 12 years to compile the 1890 census at which point they would be two years behind at the time of the 1900 census. An inventor named Herman Hollerith who worked for the Census office came up with a system of recording data by punching holes in card stock. It was originally inspired by punchcards used in the Jacquard loom system for making fancy patterns in woven cloth.
Hollerith developed automatic machines that would count or sort cards depending on whether or not a whole was punched in a particular location. The census data was encoded in this manner. The original cards were the size of a dollar bill at the time because there was existing machinery available for handling paper that size. The 1890 census, although much larger than the previous, took only six years to tabulate using his machines.
He eventually formed a company called The Tabulating Machine Company. That company later merged with three other companies to form the Computing-Tabulating-Recording Company. In 1927 it was renamed International Business Machines or IBM.
The famous IBM cards used in early computers were first introduced in 1928 and quickly became the standard for all punchcard data processing. They used a smooth lightweight card stock 0.007 inches thick. They measured 7-3/8 inches by 3-1/4 inches. Vertically oriented rectangular holes could be punished in any of 12 rows by 80 columns. When we would type a computer program, each line of the program would be punished onto one card.
There were 2 types of keypunch machines the 026 and the newer 029 machines. I don’t recall the technical differences between the two. We had two or three of each of them and either one would serve our purposes. After looking at photos of the machines I found online, I remembered that I preferred 026 because its keyboard was on a short cable and you could move it around a bit. The 029 keyboard was not as flexible and harder for me to reach
The rows of holes were numbered with 12 at the top sometimes called the X row followed by 11 sometimes called the Y row followed by rows 0-9 with 9 at the bottom edge of the card. When you would load your deck of cards into a computer as we did with the IBM 1620, the rule was you put your deck face down, nine edge first. That phrase was drilled into our heads repeatedly.
I remember we had a humorous poem about a programmer who had to pull an all-night shift desperately trying to get the software to run before the deadline. All I remember of the poem was the final 2 lines…
He died of the console of hunger and thirst.
Was buried the next day, facedown, nine edge first.
I took three classes in my second semester. We already discussed my second-semester French class a couple of episodes ago. I also took ”Integral Calculus and Analytical Geometry MATH163”. It was my first calculus class I was awarded a “B”. I don’t remember much about it except that I never really understood calculus until I had to put it to use in physics class.
The programming class I took my second semester was called “Introduction to Algorithmic Proc” CSCI 220 and was taught by Dr. Larry Hunter. We learned fundamental programming techniques using the computer language FORTRAN IV which was very popular for science and engineering programming. We would write our programs in that language, punch them on cards, and run them on the 360.
I think Dr. Hunter had secret unfulfilled aspirations to be a standup comedian. He was a tall thin man whose mannerisms mirrored that of Johnny Carson during a Tonight Show monologue. He held his posture very straight with his shoulders back in one hand in his pocket. He would gesture with his right hand while lecturing. When he would turn to write on the blackboard it looked exactly like Carson turning to say something to Ed McMahon. There were plenty of jokes scattered throughout his lessons.
In addition to learning FORTRAN programming, part of the lesson was about how the hardware of a computer works. We studied the details of Boolean logic and how it was emulated using circuits in the computer. Complex layers of multiple Boolean operations are illustrated in something called a Karnaugh map. We learned how to create and read such maps.
He talked about how computer architecture was laid out. You can’t interconnect every piece of the computer to every other piece of the computer because it would be too complicated. Instead, computers used a system of parallel lines for transmitting data called a data bus. Each component would connect to the bus and communicate through it. He explained that the introduction of integrated circuits made this a necessity.
Knowing what a sense of humor he had, after class one day I told him I had come up with a pair of jokes based on his topics and told him he would be free to use them in future lectures.
I noted that some of having a data bus was necessary once computers were made out of integrated circuits instead of individual transistors. Could this be referred to as “busing to achieve integration?”
Okay for those of you too young to know, in the 1970s, district courts had ordered that children had to be bussed from predominantly white schools into predominantly black schools and vice versa to achieve racial diversity. That was busing to achieve integration
For my second joke, I wondered if Karnaugh maps would be on the final exam. If so, he was going to test our Karnaugh knowledge. If you don’t get that joke, I can’t help you.
He really liked both jokes. He said that we were getting away from using Karnaugh maps and he was considering dropping that section from the curriculum. But now that he had a good joke to go with it, he would have to keep it around a little longer.
He told both jokes in class a day or two later and gave me credit for writing them.
Can’t say that I learned a lot in that class that I couldn’t have taught myself from reading a book on FORTRAN. But that concept would be exploited in a later semester where the teacher would hand us the book and say, “Go teach yourself this course.” Much more on that situation in later episodes.
There was another computer in the A-Building that I did not use for press. It was an ancient IBM 1620. This machine was first introduced in 1959 and was popular throughout the early 60s. It was discontinued in 1970. You’ve probably seen one in old sci-fi movies. When they became obsolete, many were sold to Hollywood as props. They have a large array of blinking lights on the front console and lots of switches. It established in the 1960s media what a computer looked like to the common man. I’ve provided some photos in the YouTube version of this episode and articles linked in the description.
It was not a very powerful computer. The Fortran compiler on it was only for Fortran II and my class was using Fortran IV. We did spend some time learning the differences between the two versions of Fortran but we were never assigned any programs written in Fortran II.
The hardware used a strange format called Binary Coded Decimal. In computers today, a string of zeros and ones 32, 64, or more bits long using base two arithmetic. So for example a 32-bit memory location can store a number from 0-65535 or from -32757 to +32767. Floating-point numbers are stored in a binary format in scientific notation with the significant digits and the exponents stored separately.
The IBM 1620 used decimal arithmetic. It would use 4 bits of data to encode the numbers 0-9. Other combinations of bits were used as data separators or record separators. So in traditional computers, a 32-bit integer is limited to a maximum of 65535 but in BCD you can have a string of decimal digits as long as the entire computer memory. The length of a number was delimited by a data separator value. In theory, you could take two numbers each of which was a string of digits slightly less than half of the entire computer memory. Leave room for one instruction to add them together and it would do so.
Strangely, the computer could not do arithmetic. It would add digits by looking up the answer in a table. It also stored a multiplication table and would look up answers in that table rather than do the actual mathematics.
Because it was outdated and most people were using either the IBM 360 or the remotely located DEC-10. The machine didn’t get much use. Mostly we played around with it.
There was a program you could run on that machine that would put it into a tight loop of a particular duration. If you set an AM radio on the console and tuned it to a particular frequency, you would hear a buzzing noise. Someone had written a program to vary the frequency of that buzz and you could play music. They had several songs already programmed. There was no documentation available but I easily reverse-engineered the system they had for encoding the notes and I encoded a different song. I don’t recall what it was I think it might’ve been a Christmas Carol but I’m not sure.
Attached to the machine was a line printer that would print out your program for you or any other output. We had collections of decks that would print so-called ASCII art. That’s where you use different characters to vary the darkness of a particular square on the page. In some forms, you can overprint large characters to make them darker such as printing an “M” on top of an “X” or a “W” to make dark areas and use periods or commas to make light areas. We had all of the traditional computer images of the time including a Mona Lisa and a naked woman. See the links in the description for examples of ASCII art.
The only students who used this old 1620 for actual classwork were freshman engineering students taking “Engineering 109.” It was a course in FORTRAN II taught by an engineering professor who apparently didn’t know crap about how to teach programming. The computer science students like myself would get inundated with questions from the engineering students.
After living through this for several semesters, I developed a plan. At the start of a new semester, when one of these engineering students asked me a question, I told him, “Come back tomorrow at 2 PM and bring one or two of your classmates. I’m going to teach you computer programming. At the appointed time we found a corner of the computer center and in about 90 minutes I taught them the basics of FORTRAN programming. The universal reaction was, “Why the hell didn’t the professor just explain it that way?”
I told them they had to pay it forward. From now on they had to help other students in the class and leave the rest of us alone.
It worked beautifully. I did that for two or three of my last semesters.
Fast forward nearly 50 years later I met a young lady named Jenica who has the same disability as I have – Spinal Muscular Atrophy. I met her and her mother in a Facebook group on assistive technology. She taking electrical engineering classes at a Purdue extension campus in southern Indiana. They were teaching her C++ programming on Arduino microcontrollers the kind of which I use for developing assistive technology. She was struggling with the class. For me was déjà vu all over again. Here was an engineering student learning programming from an engineering professor who didn’t know how to teach the subject.
I spent perhaps three or four sessions with her via video chat on Facebook Messenger doing for her what I had done for those Engineering E109 students nearly 50 years ago. At one point, everything fell into place and she got it. Although I checked in with her several times, she insisted she now understood what she was doing and similarly, she was paying it forward by teaching the other students in the class.
Although it’s a bit off-topic, I have to tell you that Jenica is my hero because of a story she told me. In high school, she took an electronics course where she was the only girl among about 30 boys. When it came time to learn soldering, the teacher was concerned and asked her if she could handle a soldering iron. She said, “I got this” and had no difficulty. Meanwhile, there were boys in the class who were a bit squeamish about wielding a device that heats up to 400°. Her teacher pointed out that Jenica was having no difficulty with the device. They were embarrassed not only that they were being shown up by a girl but moreover a girl in a wheelchair. They had to grow a pair really quickly. I laughed so hard I cried and told her what is amazing person she is.
Back to my story… the next course in the curriculum was CSCI 300 Assembly Language Programming. The problem was, it is only offered in the spring semester I couldn’t take it in the fall during my third semester. That’s how they screwed me up by not allowing me to take CSCI 220 my first semester. It got me out of sync with the way the classes are offered.
I decided to primarily spend my time at the downtown campus picking up several liberal arts classes to fulfill those requirements. Next week we will talk about my third semester and the adventures I had at the downtown campus.
If you find this podcast educational, entertaining, enlightening, or even inspiring, consider sponsoring me on Patreon for just $5 per month. You will get early access to the podcast and other exclusive content. Although I have some financial struggles, I’m not really in this for money. Still, every little bit helps.
Many thanks to my financial supporters. Your support pays for the writing seminar I attend and other things. But most of all it shows how much you care and appreciate what I’m doing. Your support means more to me than words can express.
Even if you cannot provide financial support. Please, please, please post the links and share this podcast on social media so that I can grow my audience. I just want more people to be able to hear my stories.
All of my back episodes are available and I encourage you to check them out if you’re new to this podcast. If you have any comments, questions, or other feedback please feel free to comment on any of the platforms where you find this podcast.
I will see you next week as we continue contemplating life. Until then, fly safe.