Back to my years at Leningrad State University. In my last post related to this part of our family history, I described how most of the subjects were taught except for programming.
For a start, programming did exist in 1980, even in the Soviet Union, and I was very interested in it. Since I was enrolled into a specialized high school for mathematics and physics, we even had a computer!
I believe this school computer was one of the “native” ones developed in the country, not copied from the Western prototypes (my former classmates may remember better). Since it was just one computer for a whole school, and not a super-powerful one, we did most of our programming on paper and didn’t debug our programs. We were only allowed “to touch the keys” a couple of times during a semester.
However, at the University, we had actual programming, and we were supposed to debug our programs and to show some results.
The programming language we learned was ALGOL-60, and later ALGOL-68. Also, during our 2nd and 3rd year at the University, we learned machine codes (IBM commands) and had to do some programming using it.
We used punch cards. The process would be as follows. You would write the code on the “checkered” paper, one symbol per square, including the JCL cards (raise your hands those who remember what JCL is). Then you attach a form with your name and group number and leave it in the incoming bin at the Computer Center. Next day you will find the punch cards with your code in the outgoing bin with the attached listing of the first attempt to run your code. You would read this listing and try to understand what the errors meant. Then you find the punch cards with errors, attach the form with corrections, put it into the incoming bin, and wait for the next morning. For the younger readers: there were eighty positions on each punch card, so the line size of eighty characters corresponds to one punch card:). A punch card looked like this, and each column coded one symbol, punch meaning ‘1’ and no punch meaning ‘0’. Some advanced students had magic code readers. They were special punch cards that you could put over another card and decode symbol by symbol what exactly was punched.
Having that we were novices in programming this way of debugging was not super-efficient. It would take a semester to debug your program, which was expected :). We didn’t even think about the code quality; neither we knew that such a thing exists.
By the end of the second year, some of us had “computer access,” either by means of befriending the computer center staff or by receiving this privilege from their advisors. I did not belong to the circle of chosen and was incredibly jealous. Especially when I heard them mentioning matter-of-factly: yea, I just stopped at the Computer Center this morning to chat with D.
The computers where IBM mainframes 360/370. If you are wondering how could we possibly have IBM computers at the time of the Jackson/Vanik amendment – they were named differently :). These computers were products of industrial espionage. They were called ЕС- Единая Система (Unified System), and their numbers somehow corresponded to the IBM models. During my time at the University, the machines which were used to run student jobs were EC-1033, later replaced by EC-1040 and EC-1045. Their names were Alpha, Beta, and Gamma, and they were more often not working than working. Apparently, industrial espionage is less effective than 3-D printing!
There were also a couple of other mainframe computers, located in the basement of the Computer Center. They were EC-1030 or similar. They were smaller and didn’t run the student’s jobs, and also had a designated operator who treated them well. When I was allowed to work on those computers, I learned to use my first interactive program. The text on displays was green:). I can’t find the right picture – the modern emulators look much better than our old green screens. But who cares! It was incredibly cool to type things on the keyboard, to see the symbols on the screen, and not to have to wait for the next day to receive your compilation errors. I thought I was extremely productive when I could run my program for twelve times in a row and debug it in one session!
Until the second semester of our third year at the University, we did not have any lectures in Computer Science and didn’t have electives. This all started after we’ve chosen our majors, and thus will be a subject of future posts. But can you imagine going for five semesters without any computer class at all, even though you have “Applied Math” listed as your “broad major?”
Count your blessings :).
My historical posts are being published in random order. Please refer to the page Hettie’s timeline to find where exactly each post belongs, and what was before and after.