Computer Science Education: Perspectives on Learning and Teaching at School is a new book edited by CERC member Sue Sentance, together with Carsten Schulte, University of Padeborn and Erk Barendsen, Radboud University, Nijmegen.
Bringing together international experts in the field of computer science education in school this book will be useful both for students studying to become computing teachers and those starting research careers in computer science education all over the world. Here we describe what the book has in store for the reader.
In the first part of the book, the first chapter by Matti Tedre considers what the subject of computer science really is, particularly so that we can focus on what it means to teach computing in school. Is computing is a mathematical subject, scientific subject or an engineering subject? In the second chapter Shuchi Grover and Roy Pea give a comprehensive account of what computational thinking is and how it can be seen as underpinning the teaching of computer science curriculum. Certainly, computational thinking has had a huge influence on recent developments but as it has become part of the curriculum, it may be that what is really meant by this term has been lost, and there has been both some over-promising and at the same time, narrowing, of the thinking that underlies work in computer science.
To continue the journey towards an understanding of what the subject computer science means and why it should be taught in schools we move on to a discussion about attitudes to computer science, in particular, mindset. Drawing on the influential work of Carol Dweck on the difference between a ‘fixed mindset’ and a ‘growth mindset’, Quintin Cutts and Peter Donaldson consider both students’ mindset and teachers’ mindset when it comes to the teaching and learning of computer science. Our attitudes can act as restrictors on what we can achieve in the classroom, and thus it is important to reflect at this level on how we perceive our own abilities as well as those of our students. Cutts and Donaldson present some useful examples and activities that enable the reader to do this. The final chapter in this section concerns interaction in terms of the way that humans, computers and society interact with technology, and the implications both for students and for the way we teach computer science. Computer science is not just computer programming, although it is an important toolkit we use to explore the principles. Computer science is broader and its applications have an impact on all aspects of our lives: with the increasing importance of HCI (human-computer interaction), machine learning and artificial intelligence, it is crucial that children understand the implications of a technology-driven society, in which they may play a role in informed decision making, whatever their chosen career. This chapter complements the other chapters and hopefully together the reader will find that they enable a consideration of what it means to teach computer science from a variety of perspectives.
In this part of the book we consider the teaching and learning of different aspects of computer science in the classroom, drawing on relevant research in the field. Chapter 7 considers how we design and implement curricula in computer science in school. This can be at a national level or at a very local level, in a particular school. The chapter draws on the distinction between the intended, implemented and attained curriculum and discusses the goals, content and skills identified in different curricular. Most importantly, we need to consider why we include particular content from computer science in our curriculum – this is informed by the context in which we teach and overall goals.
The next three chapters look at pedagogy. In an area of the school curriculum where we find that teachers are still adapting to the new subject, professional development initiatives have been largely focused on subject knowledge development, and particularly around programming. However, through experience and reflection, teachers develop what Shulman describes as pedagogical content knowledge (PCK) which describes the interaction between the core content knowledge in a subject and strategies that can be used to teach it. We look here at pedagogy as it relates to teaching Computing concepts, then programming and finally, consider primary education. The chapter by Curzon and colleagues introduces a wide variety of strategies for teaching Computing concepts which should give inspiration to many teachers. These strategies include computing unplugged, using art, games, dance and writing in the teaching of computing are informed by a constructivist view of learning and provide some inspirational ideas for teaching. Chapter 9 moves us on into programming. There is a long history in computing education research around the teaching of programming, from the 1970s or even earlier. Michael Caspersen demonstrates the depth of this research and how it can be structured: particularly in this chapter we learn about the value of worked examples and stepwise improvement as key strategies for developing a secure understanding of programming concepts and skills. Reflecting on programming at this level may give you some surprising insights into your understanding of programming. In chapter 10, Tim Bell and Caitlin Duncan consider some of the reasons for introducing computer science in primary schools and consider how computational thinking skills and areas of data representation can be introduced to younger children. Finally, this part concludes with a focus on assessment, often neglected in the discussion of computing education. Chapter 11 looks at research that has been carried out in this area in terms of different ways of assessing computing, including rubrics, multiple-choice questions, self and peer assessment, amongst other strategies. There is in addition an increasing focus on automated tools to aid the teacher in assessment but it needs to be remembered that formative assessment should help learners to understand their own learning, in such a way that they can make progress. Thus the focus in the chapter is primarily on assessment for learning.
In part 3, a few topics are covered in more depth. In Chapter 13, Juha Sorva gives an overview on typical misconceptions in the computing classroom, and gives some advice for misconception-sensitive teaching. Students do not enter the classroom as blank slates, ready to be filled with concepts from computer science – instead they are understanding the content based on their prior knowledge, interests and so on. Thus knowing misconceptions, and knowing how to uncover them are vital.
Chapter 14, by Jill Denner and Shannon Campe, addresses the problem of minorities and underrepresented groups in computer science classes, especially when students can choose whether to participate or not. Based on research in equity and inclusion some strategies for teaching computer science are suggested in order to broaden participation and engagement of a broader variety of CS students. In Chapter 15, Ira Diethelm and colleagues outline the difference of everyday and scientific language, and the need to reflect on the difference in meaning of computing terminology and everyday language, terms like code, memory, saving, etc. Last but not least the success of teaching needs to be measured. The choice of instruments and measurements depends on goals of teaching. These goals are in itself more and more research-led and summarized as taxonomies and competence models. In order to understand these, some background knowledge is needed, presented in chapter 16 by Peter Hubwieser and Sue Sentance. The chapter introduces approaches to ensure that evaluation indeed measures those aspects of learning that are intended to be measured.