Figure 1.2Programmingmiddle school student learns computational thinkingA middle school student learns computational thinking in a programming camp sponsored by the Tacoma/South Puget Sound MESA organization. (Photo: Joshua Wiersma/Pacific Lutheran University)
To get a sense for the magnitude of the sea change that took place, consider some basic demographics. In 1957, there were approximately 15,000 computer programmers employed in the U.S., a figure that accounts for approximately 80% of the world’s programmers active that year. The work of the first computing pioneers involved building and maintaining military systems, designing Algorithms algorithms for scientific research, tracking census data, and implementing data-processing schemes for government bureaus and corporations.
In 2000, there were approximately 9 million professional programmers worldwide, with millions more who had been exposed to coding concepts as part of their school curriculum or other experiences.8 In addition to steady growth in military and scientific computing, the expanding digital economy has brought new opportunities for computer programmers in the fields of consumer software, video game programming, artificial intelligence, information publishing, digital communications, education, art, music, entertainment, medicine, and other areas that benefit from the use of computers.
Figure 1.3Three men and two women gather for a meeting near an IBM 370 Model 138 Computer System in Berkeley, California. IBM’s 1976 publicity photo emphasizes the value of teamwork and the extensive documentation that was prepared for programmers and administrators. (Courtesy of the Computer History Museum)
The rising tide of opportunity for Softwaredevelopers software developers has continued up to the present. In 2014, there were approximately 18.5 million software developers in the world, of which 11 million can be considered professional programmers and 7.5 million can be considered as hobbyists.9 Many programmers create or maintain software as part of their regular employment, while others write code for non-profit organizations that they support, and still others program at school, for recreation, or as an aspect of their personal or professional development.
1.4Programmingequity and accessEquity and accessEquity and Access
Despite the bright economic outlook for software developers, there are still numerous challenges in bringing programming proficiencies to the general population. In reality, only a small subset of the people who use computers actually go on to learn something about computational thinking or software development. Our modern economy requires many important job skills and personal investments. Considering the costs and the effort required, does it really matter who learns to program and who does not?
In the book Stuck in the Shallow End: Education, Race, and Computing, Jane Margolis et al. argue the “who” that learns to use technology matters a great deal, and that America has suffered throughout its history from inequities in access to computing.10 Their research indicates that African-American and Latino children are much less likely to receive technology training in American schools than white or Asian children. When scholars analyze gender disparities and later professional outcomes, they find that only two out of ten Information technology information technology (IT) IT.Internal Translator (IT) professionals are women in the current U.S. workforce.
Margolis and her contributors offer convincing evidence that the characteristics of programming culture matter tremendously to those who enter the subculture and to those who thrive in it (or recede from view). Understanding the long history of the Learn-to-program movement learn-to-program movement and its cultural commitments and values reveals much about how people have interacted with computers in the past, and how we might expand computing opportunities in the future. Yasmin Kafai and Quinn Burke describe the challenge before us as working to better support Computational participation “computational participation” in our schools and professional environments. In their important book, Connected Code, they recommend that thought leaders shape technology-centered cultures carefully, ensuring that all participants feel welcomed and included.11 (See Figure 1.4.)
Figure 1.4ACM member Professor Renzhi Cao teaches computer science to local middle school students in Tacoma, WA. Early engagement and outreach related to computational thinking has become a standard practice in many high-tech communities. (Photo: John Froschauer / Pacific Lutheran University)
One important outgrowth of this research has been the rise of Not-for-profit organizations not-for-profit organizations that teach young people how to program, including Code.org Code.org, Black Girls Code Black Girls Code, Girls Who Code Girls Who Code, Native Girls Code Native Girls Code, and The Hidden Genius Project, The Hidden Genius Project. At the high school level, many organizations focus on introducing programming concepts and preparing students to take the College Board’s AP Computer Science Principles examination. I evaluate the work of Code.org and the Hour of Code movement in the Afterword for this book. As a preview, I note here that Code.org has completed over 720 million introductory programming sessions since the organization began in 2013, with 46% female and 48% underrepresented minorities currently using the group’s courseware.12 These figures are clearly impressive, and they show one way that creative thinking and industry partnerships can support an education system that is struggling to find resources and leadership. However, the new initiatives were not created from whole cloth, but are simply the latest manifestations of a long programming literacy movement that has a fascinating history and is now being scaled to meet global needs. Just as in the past, there is an ongoing debate about the efficacy of wide-ranging computer literacy programs and the best way to deliver them.13
Importantly, this conversation about equity and access is connected to ethical considerations, and it will only move forward with input from many academic and industry partners. Our world is increasingly dependent on computers and technology, and it is imperative that we work together to understand the characteristics of technical communities and how they shape our hearts and minds. Computational thinking courses are among the most interesting places to attempt this work.
1.5Programmingpersonal connectionsPersonal connectionsPersonal Connections
I have wanted to write this book for a long time because I am fascinated with software development. PCs were an important starting place for me during my teenage years, and I first learned to write computer code on early microcomputers and PCs. Like many people of my age and social context, my first experiments with home electronics took place in the family rec room during the late 1970s. My extended family bought a Tandy TRS-80 microcomputer Tandy TRS-80 and an Atari video computer system Atari video computer system, and the young people in our circles used them to play video games like Pong and Missile Command Pong and Missile Command. A bit later, I experimented with an early IBM Personal Computer when it was released in August 1981, just weeks before I entered college at Pacific Lutheran University (PLU) PLU.Pacific