At the suggestion of a programmer whose work he respects, Ken Whitesell begins a career retrospective covering January through June 1978, his first real semester of high-school programming. After moving from Baltimore to Ann Arbor, Michigan, between his junior and senior years, he enrolled in a Programming in BASIC class at a school with district-wide access to a minicomputer. He had already experimented with a TI SR-52 programmable calculator, the Digi-Comp I mechanical computer toy, and several Radio Shack electronics kits, but this was his first formal introduction to programming.

The machine was an HP-2000F running time-shared BASIC. Students interacted with it primarily through Bell ASR 33 Teletypes equipped with paper tape punch/reader units. The teletypes ran at 110 baud, roughly ten characters per second, and were loud enough to make normal conversation impossible when several were in use. The lab, about 12 by 24 feet, held roughly eight teletypes plus a few video terminals. No interactive debugger existed. Debugging meant running until the program stopped or errored, then walking through the code line by line with paper and calculator, tracking each variable by crossing out old values and writing new ones. Changes were drafted on paper and then retyped.

Code reuse was awkward. A subroutine could be moved to another program only by punching it to paper tape and rereading it, or by copying the original program, deleting everything else, renumbering to a higher line range, and appending to the target program, which required appended line numbers to exceed the existing top number.

HP BASIC had tight constraints. Output defaulted to uppercase. Valid variable names were a single letter or a letter followed by one digit, all globally scoped. User-defined functions were limited to FNA through FNZ, each taking one parameter, evaluating one expression, and returning one value. Subroutines took no parameters; callers copied values to reserved global variables before GOSUB and copied results back afterward. Matrices were two-dimensional and shared global memory, so even though the limit was around 5000 elements, a large program might only afford about 2000.

Access was scarce: about half an hour before school and an hour after. He wrote code on paper at home and waited at the school door in the morning. In the evenings he used a local community college lab with about a dozen DECwriter LA-30 terminals connected by dial-up at 300 baud. They were quieter, had 132-column output, and printed more than three times faster than the teletypes, making listings practical. The lab also had video terminals, which he preferred for editing. Although the lab was intended for college students, he noted that at least half of the evening users seemed to be high school students.

After the school year ended, he took a summer job, rented a video terminal, and installed a second phone line at home to continue coding. By then he no longer had a paper tape punch, so no machine-readable copies survived; he kept only printed listings.