Sur la suggestion d'un programmeur dont il apprécie le travail, Ken Whitesell commence une rétrospective de carrière couvrant de janvier à juin 1978, son premier véritable semestre de programmation au lycée. Après avoir déménagé de Baltimore à Ann Arbor, dans le Michigan, entre sa première et sa terminale, il a suivi un cours de programmation en BASIC dans un lycée disposant d'un minordinateur accessible à tout le district scolaire. Il avait déjà expérimenté une calculatrice programmable TI SR-52, l'ordinateur mécanique-jouet Digi-Comp I et plusieurs kits électroniques Radio Shack, mais ce fut sa première introduction formelle à la programmation.

La machine était un HP-2000F exécutant du BASIC en temps partagé. Les élèves y accédaient principalement via des télétypes Bell ASR 33 équipés d'un perforateur et d'un lecteur de ruban papier. Les télétypes fonctionnaient à 110 bauds, soit environ dix caractères par seconde, et étaient assez bruyants pour rendre la conversation impossible lorsque plusieurs étaient en service. Le laboratoire, d'environ 3,5 mètres sur 7, contenait une huitaine de télétypes et quelques terminaux vidéo. Aucun débogueur interactif n'existait. Déboguer signifiait lancer le programme jusqu'à ce qu'il s'arrête ou plante, puis parcourir le code ligne par ligne avec papier et calculatrice, en biffant l'ancienne valeur de chaque variable et en écrivant la nouvelle. Les modifications étaient préparées sur papier, puis retapées.

La réutilisation du code était malcommode. Une sous-routine ne pouvait être transférée dans un autre programme que par perforation sur ruban papier et relecture, ou en copiant le programme original, en supprimant le reste, en renumérotant les lignes dans une plage supérieure et en les ajoutant au programme cible, à condition que les numéros ajoutés dépassent le plus haut numéro existant.

Le BASIC du HP-2000F imposait des contraintes sévères. Par défaut, tout apparaissait en majuscules. Les noms de variables ne pouvaient être qu'une lettre seule ou une lettre suivie d'un chiffre, et tous étaient globaux. Les fonctions définissables par l'utilisateur étaient limitées à FNA à FNZ, prenant un seul paramètre, évaluant une seule expression et renvoyant une seule valeur. Les sous-routines n'acceptaient pas de paramètres : l'appelant devait copier les valeurs dans des variables globales réservées, appeler GOSUB, puis copier les résultats en retour. Les matrices étaient à deux dimensions et partageaient la mémoire globale ; bien que la limite théorique soit d'environ 5000 éléments, un programme conséquent ne pouvait souvent en utiliser qu'environ 2000.

L'accès à la machine était rare : une demi-heure avant les cours et une heure après. Il rédigeait son code sur papier le soir et attendait le matin devant la porte du lycée. Le soir, il utilisait un laboratoire du community college local, équipé d'une dizaine de terminaux DECwriter LA-30 connectés par ligne commutée à 300 bauds. Ils étaient plus silencieux, offraient 132 colonnes et imprimaient plus de trois fois plus vite que les télétypes, ce qui rendait les listings pratiques. Le laboratoire disposait aussi de terminaux vidéo, qu'il préférait pour la modification du code. Bien que le laboratoire fût destiné aux étudiants du collège, il estimait qu'au moins la moitié des utilisateurs du soir étaient des lycéens.

Une fois l'année scolaire terminée, il a pris un emploi d'été, loué un terminal vidéo et fait installer une deuxième ligne téléphonique chez lui pour continuer à programmer. Faute de perforateur de ruban, aucune copie lisible par machine n'a survécu ; il n'a conservé que des listings imprimés.