Computing education has been an important and sometimes contentious issue ever since the advent of modern computing. Debates about computing education have closely followed job markets, technological development, academic interests, societal concerns, and changes in the perception of computing. The themes in computing education debates can be characterized by emergence and formation, standardization and organization, accommodation to change, and divergence. The focus of computing education has expanded outward from the computer to programming, algorithms, and information, as well as to the organizational, social, and cultural environment of computer systems. This survey gives computing education researchers an overview of some of the central issues and disputes in computing education over the brief history of modern computing. The survey highlights the emergence of educational initiatives, concepts, joint efforts, and institutions of computing education, and outlines the relatively short history of computing education research. The survey is structured around four overlapping themes: computing education as technological training, as training for software development, as a central element for the field’s academic recognition, and as training for computational problem-solving in any domain of knowledge. Each theme has played a role throughout the history of modern computing, but their relative emphases have changed over the years.