Computer Science Education: Perspectives on Teaching and Learning in School
reviewed by David Weintrop — January 11, 2019
Title: Computer Science Education: Perspectives on Teaching and Learning in School
Author(s): Sue Sentence, Erik Barendsen & Carsten Schulte (Eds.)
Publisher: Bloomsbury Academic, London
ISBN: 135005710X, Pages: 264, Year: 2018
Search for book at Amazon.com
To borrow a phrase from Grover and Peas chapter on computational thinking, this is a book whose time has come (p. 19). Computer Science Education: Perspectives on Teaching and Learning, edited by Sue Sentence, Erik Barendsen, and Carsten Schulte, is a comprehensive, practical, and, most notably, timely volume covering the big ideas and open questions facing those charged with bringing computer science into schools around the world. The book brings together leading researchers and educators in the field of K-12 computer science education to map out the current landscape in a way that is accessible to practitioners while also being thought-provoking to researchers who already have a deep knowledge of the field.
The book is organized into three sections, each serving a complementary role. The first section, titled Why Teach Computer Science in Schools, serves to motivate the reader and frame the sections that follow. It begins with an initial chapter on computer science as a discipline, outlining competing views of what computer science is (or could be) and the implications for classroom education. Given the rapidly changing nature of computing and what it means to teach computer science, conceptualizing computer science as a scientific endeavor, a design and engineering practice, or a theoretical and mathematical discipline serves as a productive backdrop for critically evaluating what we prioritize as we shape computer science education in schools. The remainder of the opening section presents discussions on current attitudes towards learning computer science, arguments for why computer science should be taught in schools, a chapter on the growing role of computer science in society, and finally, a much-needed chapter on the thorny topic of computational thinking, a term as ubiquitous as it is ambiguously defined. In building this initial structure for the book, the editors and authors equip the reader to make a compelling case for computer science in K-12 education and for why it is important for all students to learn computer science, not just those who may have a future as programmers.
The second section of the book moves to more practical matters related to computer science education in schools, specifically issues related to teaching and learning in the classroom. This includes chapters that will be useful for educators regardless of curriculum, grade, or content specifics, such as chapters on curriculum design and assessment. There are also chapters that focus on specific slices of the computer science education space, including computer science concepts, the goals of teaching programming, and a particularly enjoyable chapter exploring ways to teach computer science in primary schools. This final chapter on computer science in primary classrooms is especially timely as there is a growing push to move computer science instruction into earlier grades, an idea that had very little widespread support until recently.
With chapters focused on different dimensions of classroom practice, the book will have a home on the bookshelves of any K-12 computer science teacher. At the same time, the topics covered and the theoretical and empirical bases that stem from the academic leanings of the authors will extend the shelf life of the book beyond the current wave of programming languages and technologies. A good example of this can be seen in Michael Caspersens excellent chapter on teaching programming, where topics covered include conceptual progressions, the role of examples, strategies for teaching abstractions and patterns, and process as an essential aspect of learning to program. All of these topics are firmly grounded in the literature, but none are tightly coupled to any specific programming language, learning context, or grade-level. In doing so, Caspersen ensures the ideas and pedagogical strategies presented will be of use to the reader regardless of his or her specific teaching situation.
The final section of the book goes deeper into the research on teaching computer science in K-12 settings. Despite an explicit focus on research, the chapters remain accessible to practitioners not accustomed to reading dense academic texts. Two stand-out entries from this final section are Juha Sorvas chapter on programming misconceptions and Jill Denner and Shannon Campes contribution on equity and inclusion in computer science education. Sorvas chapter serves as an accessible and well-organized introduction to the growing literature on what we know about conceptual challenges novices face when first learning to program. The chapter concludes with an extended discussion of the pedagogical implications of this research with respect to pedagogy. In doing so, Sorva, in a single chapter, nicely captures the spirit of the entire volume by linking the current state of the research with todays classrooms.
Denner and Campes excellent chapter on equity and inclusion in computer science education takes a similar approach, beginning with a status report on the state of the field with respect to diversity and situating it within a historical context. From there, the chapter is structured around a set of five specific strategies that can be used by educators to address the individual, relational, and institutional factors that perpetuate the lack of diversity in computer science education: remediation, revision, refocusing, recognition, and resistance. My only critique of this chapter is that I wish it had come sooner in the book to further stress the need to directly confront issues of diversity and access and the critical role that individual teachers play in making progress toward a more equitable field.
This is an exciting time for the field of computer science education. Around the world, attention, effort, and resources are being directed at the goal of integrating the foundational ideas of computer science into every student's educational experience. With Computer Science Education: Perspective on Teaching and Learning in School, Sentence, Barendsen, and Schulte provide an essential text bridging the state of the field with the needs of the teachers. In doing so, they set up educators for success in the short term while also laying a foundation for the computer science educators of the future.