41.Elizabeth Petrick, “Imagining the personal computer: conceptualizations of the Homebrew Computer Club 1975–1977,” IEEE Annals of the History of Computing 39, no. 4 (2017): 27–39, here at 31.
42.I thank Lee Felsenstein for his detailed description of the decentralized bull horn system, which he explained via email correspondence in June 2019. Felsenstein also granted me permission to reproduce the image in Figure 2.8.
43.“Total learning expands when the range of spontaneous learning widens along with access to an increasing number of taught skills and both liberty and discipline flower.” Ivan Illich, Tools for Conviviality (New York: Perennial Library, Harper & Row, 1973), 59.
44.Unpublished Felsenstein memoir, quoted in Isaacson, The Innovators, 299–300.
45.Levy, Hackers, 2015.
46.Lee Felsenstein, “The Tom Swift Terminal, or, A Convivial Cybernetic Device.” http://www.leefelsenstein.com/. Accessed August 19, 2019.
47.On this point, see Joy Lisi Rankin, A People’s History of Computing in the United States (Cambridge, MA: Harvard University Press, 2018), 27. I introduce BASIC programming concepts in Chapters 4 and 5.
48.Lee Felsenstein, “Tom Swift Lives,” printed by People’s Computer Company, Menlo Park, California. http://www.leefelsenstein.com/ Accessed August 20, 2019.
49.Steve Wozniak, “System Description: The Apple-II,” Byte 2, no. 5 (May 1977), 34–43; here at 34.
50.For more on the origins of the first IBM PC, see James W. Cortado, IBM: The Rise and Fall and Reinvention of a Global Icon (Cambridge, MA: The MIT Press, 2019), 379–418. I provide a more detailed analysis of this platform and its early software in Chapters 5, 6, and 9.
51.Campbell-Kelly, From Airline Reservations to Sonic the Hedgehog, 210.
3FORTRAN, Logo, and the Tower of Babel
“The emergence of motion pictures as a new art form went hand in hand with the emergence of a new subculture… people whose skills, sensitivities, and philosophies of life were unlike anything that had existed before… Similarly, a new world of personal computing is about to come into being, and its history will be inseparable from the story of the people who will make it.”
Papert, Seymour Seymour Papert, Mindstorms: Children, Computers, and Powerful Ideas (1980)
With the rapid introduction of Personal computers (PCs) personal computers (PCs) in the 1980s, computer programming grew from a relatively narrow technical and professional activity to a topic of fascination for a broad swath of the American public. Scientists, business people, educators, entrepreneurs, hobbyists, artists, and students—all were drawn by the pull of computing.
As MIT professor Seymour Papert argued in his popular book Mindstorms, PCs helped to create a new world filled with people who were being transformed by their technical experiences. Among the most positive interactions were the acquisition of new cognitive capacities, benefits that would come especially to those who learned to write their own programs. Papert claimed that the requisite stages of the programming process (problem solving, designing, coding, and debugging) all influenced the developing mind and a person’s underlying cognitive abilities. This was especially true for the young, who with proper guidance could use programming computers as a way of jump-starting mental development, such as nurturing spatial and logical reasoning skills.
Formula translation (FORTRAN)Papert was in a good place to develop his ideas and spread their influence; he joined MIT in 1963 during an intensive period of government-sponsored computer research that produced breakthroughs in time-sharing systems, operating systems, programming languages, artificial intelligence, and cognitive psychology. He later co-founded MIT’s artificial intelligence lab with Minsky, Marvin Marvin Minsky and cultivated a network of colleagues around the globe that spread his educational initiatives.
This chapter examines the origins of the Learn-to-program movement learn-to-program movement in the U.S., an educational agenda that sought to introduce computational thinking to all people and gradually expand access to computers and programming-related skills. It explores the creation of the first programming languages, and early attempts to teach Assembly language assembly language, FORTRAN, COBOL COBOL, and BASIC. I’ll introduce the educational reforms proposed by Seymour Papert, Cynthia Solomon, and Feurzeig, Wally Wally Feurzeig at MIT, and the experience of elementary and middle school students who learned Logo under their influence. I will also highlight some of the author-programmers who devised the first Programming primers programming primers, including Maurice Wilkes, Grace Mitchell, Donald Knuth, Daniel McCracken, and Daniel Watt.
The mythical “PC Revolution” put millions of computers in the hands of Americans. But for several years there was little in the way of commercial software for the new machines. In a very real sense, the early adopters of PCs needed to learn to program because they had little choice if they wanted to use their computers. But which programming language should they choose? Which PC platform should they create applications for? What steps should they follow to learn programming fundamentals, and how long might it take for a novice to become reasonably proficient as a software developer?
By the 1970s, many universities were offering Computer Science degrees that included programming instruction as part of the curriculum. But should American K-12 schools also introduce software development concepts? Would an aptitude for programming enhance core instruction in reading, writing, and mathematics? Or would programming simply overcrowd the curriculum, taking away valuable resources from spoken languages, art, science, music, and physical education? Finally, would learning to program really help most people later in life? Or were programming careers just rewards for a narrow slice of the population? In social and economic terms, could one prove that computational thinking was valuable to study?
The learn-to-program movement posed all of these questions, bringing forth a torrent of ideas, proposals, challenges, and products. Although the movement did succeed in introducing a generation to programming fundamentals, it also led to a splintering of educational resources and growing factionalism about which computer languages and platforms were the best. The educational movement’s gradual decline in the mid-1980s had real consequences. It contributed to a decade or more of ambivalence about Computer literacy computer literacy, which devalued America’s technical infrastructure and narrowed the understanding of who should consider computer-related occupations. As the movement continued, it traveled more corporate and commercial paths, becoming a manifestation of the nation’s largest software companies. Today, pundits in the software industry still cannot agree on the best vocational path for creating new programmers, a problem that has vexed organizations like the Association for Computing Machinery (ACM) Association for Computing Machinery (ACM.Association for Computing Machinery (ACM)ACM) since the 1960s.
We shouldn’t be surprised with these mixed outcomes. The learn-to-program movement fits the pattern of many social and educational movements in American history, especially those that advocate for collective action and deep social change. The learn-to-program movement was inspired by charismatic leaders and economic necessity, and it gained momentum due to social, cultural, and economic factors. The movement benefited from waves of enthusiasm connected to the distribution of new PCs, and it also captivated talented writers and entrepreneurs who sought to teach programming fundamentals to average Americans. For a time, the movement seemed to unify the aspirations of many who sought to saturate the nation with computers, creating a shared reading of mythologies about computing and a vision to realize them. And then, in the mid-1980s, the educational underpinnings of the movement began