A PERSONAL HISTORY OF COMPUTER SCIENCE AT LONGWOOD By Dr. Robert P. Webber I came to Longwood as an Assistant Professor of Mathematics in fall 1972. No computer science was being taught at Longwood when I arrived. Here are my personal recollections of how the program began and grew during my 43 years of teaching at Longwood. Unfortunately, my records were destroyed in the fire of 2001, so much of the information depends on my possibly faulty memory. My arachnoid background I had almost no formal training in computer science when I came to Longwood. I did my undergraduate degree in mathematics at the University of Richmond, which got its first on-campus computer in my senior year. I took a 1 credit hour course in Fortran in the spring 1966 semester. The computer was an IBM 1620. It had no tape or disk drive. The compiler was on punch cards. To run a program, you had to load the compiler deck, followed by the cards containing your program, into the hopper. There was an operator’s console, but program output went to a printer. The quick brown fox jumped over the lazy dog. Following graduation in 1966, I got a summer job at the Naval Weapons Lab (now the Naval Surface Warfare Center) in Dahlgren, Virginia. My one hour programming course made me one of the most highly computer trained new employees, and I was assigned to the group working on the fire control program for the Polaris missiles carried aboard submarines. The fire control program was written for a proprietary computer entirely in assembler. I spent eight hours a day for the first week learning the assembler, and then they turned me loose on the real program. I wound up making improvements to the floating point arithmetic package. Working at Dahlgren was a great experience. Programming in assembler forced me learn exactly how the computer worked, since there were no high level instructions to help. I enjoyed the work immensely, and I thought about staying there permanently. I had already been accepted to graduate school for the fall, however, and I figured that I should go ahead to grad school or I’d probably never go. So I went to graduate school in pure mathematics and didn’t do anything with computers for the next six years. This is a dummy paragraph that you should completely eliminate. It is not very interesting, but I wanted to be sure that it spanned several lines so that a single dd command wouldn't get it all easily. Instead, you should use the dap (delete all paragraph) command to kill it. The early years at Longwood When I started teaching at Longwood, I thought it would be fun and interesting to get back into computers. Longwood had nothing to offer, but fortunately Hampden Sydney College did. Ray Gaskins, a professor in the Mathematics Department there, taught several computer science courses using an IBM 1130 computer. He was kind enough to let me sit in on his introductory and advanced Fortran courses and on his assembler course. Longwood at this time had its first on-campus computer, an IBM System 3. It was used only for administrative computing, primarily to do required State reports. It was located in the basement of South Ruffner. The entire IT department consisted of four people: Jerry Hill, the director; Becky Dunken, programmer; and Jane Loverde and Florence Southall, data entry clerks. Programs and data could be entered from card decks or from magnetic or paper tape. The computer featured a couple of removable disk pack drives. The disk packs were big circular things, about 18 inches or so in diameter. To run a program, you would first place the disk pack with the compiler in the drive and then use the card reader to enter your program. Output was to the system printer. Jerry Hill was quite a character. He had a big beard and long hair, neither of which did he cut, groom, or wash regularly. His personal hygiene was pretty bad. Bluntly, he stank. Nobody could stand to be near him because of his body odor. His background was fuzzy, but he knew his way around computers. He left Longwood several years later, and I don’t know what became of him. After a couple of semesters of sitting in on Ray Gaskins’ courses at Hampden Sydney, I thought I was ready to offer an introductory programming course at Longwood. Jerry Hill was not very sympathetic to academic computing, but after some negotiation he agreed to let us use the System 3, provided we did so at night and on the weekends, when his people weren’t working. He placed a couple of card punch machines in a room that was accessible to students at any time. That worked well, although occasionally the student machines would disappear for days at a time when they were needed by Jerry’s folks. A Fortran IV compiler was available for the System 3, and we were ready to go. I offered the first programming course at Longwood around 1974. You can find the exact year in old college catalogs. I had no problem getting students. They knew that lots of jobs were available in computing. I ran the course in Fortran on the System 3. This was before anybody worried much about security. My students were able to go directly into the computer center at night and on the weekends and use the administrative computing system on a hands-on basis. Longwood employed a student worker to open and close the center and to be there while students were using it, but otherwise things were pretty much wide open. At this same time, Ray took a sabbatical from Hampden Sydney, and his replacement decided to take other employment about a week before classes started. I was the only person around who knew enough to teach his advanced Fortran course, and so Hampden Sydney hired me to do it on an adjunct basis. (This was the start of my part time Hampden Sydney teaching. I taught one course a semester there for the next forty years, including a variety of computer science and math courses.) My Longwood students got wind of this, and they asked me why we couldn’t have such a course at Longwood. I agreed, and offered it at Longwood the next semester. These courses contained what has become the traditional CS1 and CS2 material. The biggest handicap was that we had to use Fortran IV, so recursion was not available. Otherwise, CS1 was a standard introduction to imperative programming, and CS2 was a baby data structures course. Around this time we started incorporating BASIC in the general education math course. Longwood contracted with the University of Virginia for dial up telephone access to a UVA computer to run BASIC. We put a bunch of slow acoustic modems in a room on the first floor of South Ruffner, and that’s how we ran BASIC for a couple of years. Students wanted more computer science courses. Drawing on my Dalgren background, I decided the next course should be an assembler and architecture course. I couldn’t find any information on the System 3 assembler, and I was reluctant to propose offering such a course on an administrative computer. Assembler, by its very nature, allows access at machine level to the computer, and there was too much chance of students inadvertently writing code that might cripple the college system. Fortunately, the first personal microcomputers were appearing on the market at this time. I convinced Longwood to buy two Radio Shack TRS-80 Model I PCs for the computer science program. They didn’t have hard drives and were not networked, but they did have 5.25” floppy disk drives and could be hooked up to a printer. The TRS-80 had a Z80 chip, which provided a very nice accumulator-based assembler. The biggest problem was that the disk drives were not reliable. Files on the floppies often became corrupted. Backups were essential. I kept a magnetic cleaner in my desk. Students would bring me corrupted disks, and I would run the magnet over them and delete all the files. The students could then reformat and continue to use the disks. The Trash-80s, as they quickly became known, were housed in a small office in the Mathematics and Computer Science Department, which was on the top floor of Grainger – an unairconditioned brick building. It was unbearably hot in warm weather. Many times I had to dismiss classes early because of the heat. The college administration had no plans to air condition the building or to provide window units for classrooms or offices. I told Dr. Merry Lewis Allen, my department chair, that the electronic computers required a climate controlled atmosphere to work. She relayed my request to the authorities, and shortly a window unit showed up in the office housing the computers. I thought it very ironic that the administration was willing to buy an air conditioner for machines, but not for humans! In the early 1980s Longwood replaced its System 3 with a Hewlett-Packard minicomputer. The HP3000 used a time sharing operating system, which allowed us to put in a lab of remote terminals for student use. This ended hands-on access to the computer, but it provided much better security and convenience. It also ended the use of card decks. Students entered and ran programs electronically, using a text editor on the terminals. Output was to the screen or to a dedicated lab printer. We taught everything except assembler on the HP. Student demand for computer science was increasing, and it was clear that we needed more faculty. In the early 1980s we hired Bill Hightower as Longwood’s first full time computer science teacher. (I was teaching half computer science and half mathematics, and I wanted to continue that.) Bill had a Ph.D. in math, but like me, he had a strong interest in computer science. He instituted several new courses, including data structures and programming languages. After a couple of years at Longwood, Bill decided he wanted more formal training in computer science, so he took a leave of absence to get a M.S. in computer science at Michigan. During Bill’s leave, I was the only computer science person at Longwood again. We tried to fill in with some part time faculty. Lief Aaggard, the director of the Sweet Briar College computer center, taught the programming languages course for us. We recruited a person (whose name I cannot remember) to teach COBOL by placing a classified advertisement in the Richmond newspaper. That was a frustrating time for me, because I didn’t have the knowledge I needed to teach some of the courses that Bill had put in place. I remember trying to teach the data structures course. I could master the material on my own, but I realized I didn’t know which data structures were most important. What should be emphasized in the course, and what could be skipped? In the mid 1980s, computer science education across the country was at a crisis point. The discipline was new, and few schools offered graduate degrees in the subject. Research institutions and industry snapped up the graduates of such programs. It was almost impossible for undergraduate colleges and universities to hire faculty with doctorates, or even masters, in computer science. To solve the problem temporarily, the Mathematical Association of America (MAA) and the Association of Computing Machinery (ACM) announced a joint program to retrain faculty holding the Ph.D. in mathematics to teach computer science. The program would be held at Clarkson University in Potsdam, New York, in the summers, and would be the equivalent of a Masters degree in computer science. I was fortunate enough to be selected for the first cohort of this program, and I spent the summers of 1983 and 1984 at Clarkson. After that, I was ready to teach practically anything in the standard computer science curriculum. Meanwhile, Bill Hightower had returned to Longwood, but he only stayed one year before being hired away by Elon College in North Carolina. To ease the load, John Arehart transferred into the Mathematics and Computer Science Department from the Longwood Education Department. John was in mathematics education, but he was interested in computer science, and he began to work part time on a Master’s in computer science at Virginia Commonwealth University while teaching full time at Longwood. Later, we were extremely lucky to hire Stan McCaslin to teach for us when his wife took a position in the Longwood library. Stan’s degree was in physics, but he knew a lot about computers, particularly about hardware. The main academic languages at this time were BASIC, Fortran, and COBOL. We used Fortran IV as the primary programming language. When I returned from the Clarkson program, I wanted to upgrade to Fortran 77. The administration did not want to spend the money to get the compiler. I remember getting into a shouting match in the hall outside my office with Wayne McWee, who was working in the Vice President for Academic Affairs Office, about the issue. The administration would not yield. “Fine,” I said. “I’ll switch the courses to Pascal.” The Clarkson program used Pascal, and it was the up and coming academic language at the time. Best of all, the compilers were free. We used Pascal as our primary programming language starting the next fall. In spring 1991, Dr. Allen and I received a summons from Dean Frieda McCombs. Frieda said the college wanted to begin a computer science major. What would it take to do that? I replied that we had the facilities and courses in place for the nucleus of a major. We would need to hire at least one more faculty member, preferably somebody with a doctorate in computer science. Frieda gave the go ahead. We immediately began to advertise. Jeffery Peden, a doctorate candidate at the University of Virginia, saw our ad and applied. He wanted to go to a small college and was intrigued by the idea of starting a new major. We offered him the job and he accepted. Jeffery was a interesting person. He was partially crippled and usually walked with a cane or occasionally crutches. He was in constant pain and took a lot of painkilling drugs. He said he had a metal plate in his head as the result of a serious accident, and that the plate had to be charged up occasionally with a special machine, or he might become unstable. Depending on when you talked to him, he claimed to have toured as a rock musician, flown helicopters for the Air Force, been an Army Ranger, and to have seen combat in Viet Nam. Although the details of his personal life were murky, he knew a lot of computer science. He served Longwood well until his problems overwhelmed him and he was forced to retire in mid-fall semester of 2011. As soon as we hired Jeffery, I got busy writing the proposal for the new program to be filed with the State Council for Higher Education in Virginia (SCHEV), which had to approve all new majors. In 1992, SCHEV approved our program, and we accepted our first majors. Our first computer science graduate was Michael Crowley, a local student who had taken courses for several years, in 1995. We had a relaxed decision making process. Things like the choice of programming language were done by consensus and very informally. John, Jeffery, and I were having lunch one day in the Tea Room when Jeffery said, “What will it take to change our introductory language from Pascal to C++?” We discussed it over sandwiches and decided to make the change at the start of the next semester. We stuck with C++ for several years, eventually switching briefly to Java and then back to C++. Here’s the chronology of languages used in the introductory programming courses. 1974 – 1985: Fortran IV 1985 – 1994: Pascal 1994 – 2004: C++ 2004 – 2006: Java 2006 – present: C++ In 1998 all Longwood students were required to have personal computers. Our majors used their own machines in most of the upper level courses, but we still taught the introductory courses in a closed lab setting using terminals connected to a central computer in the university computer center. That began to change when John Graham came to teach for us in the mid-2000s. (I’m not sure of the exact year.) As part of the recruitment package to get John to come, we cobbled together a lab with a bunch of networked PCs strictly for academic use. Upper level students were given 24/7 access to the lab, and any student could ask for an account and log into the lab remotely. Faculty began to migrate all their courses to the lab. I was the last person to run a course on the machinery in the central university computing center, in the fall of 2014. People would talk occasionally about computer science splitting off from math to become a stand alone department. I resisted such movements, partly because I loved both disciplines and would not want to have to choose between them, and partly because I believed that the interplay and close connections between the two faculties strengthened both disciplines. Also, from time to time we would hear rumors about computer science merging with the information systems program in the Business School. None of us wanted to be in Business, so those rumors went nowhere. When I retired after the spring 2015 semester, the computer science program was an established, thriving major with three and a half faculty (Robert Marmorstein, Don Blaheta, and Scott McElfresh, full time; and me teaching half math and have computer science courses) and a growing number of majors. Enrollment in computer science was so strong that the decision was made to replace me with a full time computer scientist. I look forward to hearing of the program’s continued success.