Keywords

1 Introduction

This paper introduced the symposium: “From Curriculum Visions To Computer Science And Computational Thinking In The Curriculum In Practice” [1] at the World Conference on Computers in Education. The paper is based on an analysis and discussion of the rationale, issues and challenges for Computer Science in the school curriculum (K-12) that was initiated by the Curriculum Task Force of the International Federation of Information ProcessingFootnote 1 (IFIP) and continued at EDUsummIT 2015Footnote 2 as well as by IFIP meetings and conferences. We summarise and focus specifically on challenges for the computer science education community in communicating, clarifying needs and promoting curriculum change in order to encourage the realisation of the roles of Computer Science in the curriculum both theoretically and practically. The discussions have involved experts from many different countries and the analysis has focused in particular on a comparison across seven countries: Australia, Cyprus, Israel, New Zealand, Poland, UK and USA. The situation of the curriculum for Computer Science varies between these countries. In some, e.g. Cyprus, Poland and Israel, Computer Science has existed as a curriculum subject for many years. For others the curriculum for Computer Science has recently been substantially revised after a period of neglect followed by calls for reform [2,3,4]. Even in those countries where Computer Science in the curriculum has a long history, there are differences in approach and in the importance of various factors that affect curriculum design and implementation. Thus our discussion, based on this range of experiences led to a rich range of issues and considerations and a set of questions, some of which we were able to address and others remain as challenges.

When discussing the curriculum for Computer Science, the need to identify an acceptable working definition for Computer Science as a curriculum subject was a key consideration. Some popular definitions [5] are:

  1. 1.

    It seeks to answer the following questions: What is information? What is computation? How does computation expand what we know? How does computation limit what we can know? [6].

  2. 2.

    The study of computers and algorithmic processes, including their principles, their hardware and software designs, their implementation, and their impact on society [7].

  3. 3.

    The scientific and practical approach to computation and its applications and the systematic study of the feasibility, structure, expression, and mechanization of the methodical procedures (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information (Wikipedia 2017).

In addition, definitions based on areas of knowledge can be found through widely adopted curricula, such as the ACM/IEEE Computer Science curriculum for undergraduates [8].

We favoured the Wikipedia definition as reflecting more recent consensus and current practice, so we will use that definition throughout this paper. The Wikipedia definition captures the key idea that the function of any physical computing device can be abstracted to applying algorithms to data, and hence this definition captures the key elements of the technical side of computing.

In our exploration of the definition of Computer Science as a curriculum subject we also recognised that the name given for the curriculum subject varies across different countries. For example, Informatics, as a curriculum subject, is slightly broader than Computer Science, but is the term used widely across Europe to refer to this discipline. The Joint Informatics Europe & ACM Europe Working Group on Informatics Education use the term Informatics to “cover the entire set of scientific concepts that make information technology possible” [2, p. 9]. We also recognise the importance of other aspects of computing and computer use such as digital literacy, which may be linked into a curriculum grounded in the academic discipline of Computer Science. In this paper we have focused only on the underlying scientific discipline in order to examine its importance and we have used the term Computer Science in order to restrict the definition.

In this paper we first summarise the challenges and solutions identified at EDUsummIT 2015. Then we explain: the rationales for incorporating Computer Science in the curriculum; arguments regarding the position of Computer Science in the curriculum; the nature of curriculum design and the specific major challenges for designing and implementing a Computer Science curriculum.

2 Key Challenges and Issues

Table 1 summarises the issues and solutions identified at EDUsummIT 2015 for advancing understanding of the roles of Computer Science in the curriculum. While the order of challenges shown in Table 1 represents a logical progression for considering curriculum rationale and design, the order of priority and difficulty will vary across contexts. Furthermore there are interrelationships between the issues identified in Table 1 as discussed in subsequent sections.

Table 1. Challenges and solutions for advancing understanding of the roles of computer science in the curriculum [adopted from 9, p. 64]

3 Rationales for Computer Science in the Curriculum

Arguments for the inclusion of Computer Science in the curriculum are compelling, as evidenced by many countries adopting it as a mandatory part of their curriculum. The reasons were summarised at EDUSummIT 2015 as economic, social and cultural [5, 9]. The economic rationale rests not only on the need for a country to produce computer scientists to sustain a competitive edge in a world driven by technology but also on the need for Computer Science-enabled professionals in all industries to support innovation and development. The social rationale emphasises the value in society of a diverse range of active creators and producers rather than just passive consumers of technology. Such capability provides people with power to lead, create and innovate within society. The cultural rationale rests on enabling people to be drivers of cultural change rather than having change imposed by technological developments. Alongside these three rationales, we frame the inclusion of Computer Science in school curricula with respect to two further dimensions for evaluating its contribution [5]:

  1. 1.

    the beneficial context: the individual learner; society; humanity and the ecology upon which we all depend; and the wider universe.

  2. 2.

    the timescale for the benefits of the learning to be experienced: immediately; the lifetime of the individual learner; years within transformation of a social system; the expected duration of humanity or the lifetime of the universe.

Furthermore we claim that Computer Science is necessary for education because of its increasing importance for knowledge generation in a range of important areas of human endeavour. Computer Science is heralding new developments in many areas of science and technology and data science in particular, which links machine learning with programming skills. Moreover it is providing new methods for knowledge discovery [see for example 10].

Immediate broad educational benefits for students in learning Computer Science include potential benefits for thinking and problem solving. There is a long history of research into the benefits of learning programming for developing general thinking and problem solving skills [see for example 11]. The issue remains controversial and the debate has been enlivened recently by the revised focus on computational thinking [12, 13] which we argued is best developed through Computer Science including programming since (1) programming makes an excellent vehicle for students to explore the concepts in a concrete way and (2) implementing the concepts in a program provides a means for students to check their thinking. As their expertise in computational thinking develops, students would be expected to use their skills and build their understanding of applications of computational thinking via a range of examples across different subjects.

In summary the arguments outlined here present a strong case for the importance of Computer Science in the curriculum for 21st-century learning. Its importance for individual learners, in particular, leads to our recommendation that learning Computer Science is an entitlement for all school students and recent curriculum development takes this approach [14].

4 The Position of Computer Science in the Curriculum

Following on from the clarification above of Computer Science as an academic discipline and therefore the basis for a curriculum subject for schools, is the debate about how the curriculum should be organised. In most countries, at least at secondary level, the curriculum is subject-based. The major arguments for positioning Computer Science as a distinct subject in the K-12 curriculum were articulated at EDUSummIT 2015 as: (1) its importance as a disciplinary area as explained above; (2) the evidence that integrated approaches to curriculum delivery have failed to prepare students for higher education and (3) the importance of computational thinking, which we argued is best developed through Computer Science, including programming, and then built upon in other curriculum areas. Computational thinking involves developing ways of analysing and solving problems, designing systems and understanding human behaviour that draws upon concepts fundamental to Computer Science. Furthermore, while computational thinking is beneficial in many curriculum areas, and doesn’t require programming at all, representing a solution to a problem as a program provides a way of evaluating the solution thus providing students with feedback and ways to proceed. Therefore we argued that computational thinking should be implemented through Computer Science learning including programming.

The challenges created by the limited empirical evidence for development of understanding and skills in Computer Science relate to the structure and organisation of the curriculum together with pedagogical considerations. Curricula design may be guided by epistemological considerations and other constraints [15, 16] and later informed by empirical evidence. Therefore, in spite of the limited empirical evidence on which to base curricular design, many Computer Science curricula exist and many countries have recently re-designed Computer Science curricula. An analysis of developments in five countries as well as a review and content analysis of curriculum reports [14] suggested key issues to consider when designing Computer Science curricula. First there is a consensus across various curriculum reports [2, 3, 17] about the key concepts and techniques of the discipline. However there is as yet no consensus about the importance of more general intellectual practices such as persistence in working through problems and tolerance for ambiguity as well as the importance of collaborative learning and social competence developed through group work. Furthermore an emerging consensus regarding the best starting age for Computer Science being young, about five to seven years old, came from a comparison of curriculum development in three out of the five countries examined: Poland, UK, Australia. The importance of a young age for starting to learn Computer Science was also an outcome from the panel discussion at IFIP TC3 Conference in Vilnius, 2015 [14]. The availability of programming environments and other software designed to support younger learners in learning programming was identified as one of the key factors that have supported this early development of Computer Science learning [18]. Arguments for starting Computer Science at an early age include: (1) learning programming is difficult but a consensus is emerging that learning some of the techniques, approaches and thinking involved in programming at a younger age enables more students to become successful in programming and (2) developing student self-efficacy in programming and Computer Science at an earlier age may reduce the gender gap [14, 18].

There are arguments that Computer Science might be taught from pre-school age but there is also a need for caution and further research into pedagogical issues [19]. While it is possible for pre-schoolers to engage with pre-programming systems and concepts from Computer Science, the real foundational material that is needed in Computer Science in early years are already typical of curricula. Examples include basic numeracy and literacy skills, learning to classify and sort objects, understanding sequences of events, working with patterns in numbers and other symbols, becoming familiar with physical directions such as forward/left/right, and social competency to be able to follow and give instructions or identify the needs of another user.

5 Structuring the Curriculum

One of the constraints for curriculum design identified by Winch [15] is the need to introduce, early in the curriculum, all three major types of knowledge: concepts, propositions and know-how because these knowledge types are dependent on each other. One promising approach to addressing this constraint is a spiral curriculum, such as that developed in Poland [20] where at each level unified aims are addressed (see Table 2) but pedagogically the approach varies across three elements such that the first element is more important at lower levels and 2 and 3 become more important during progression:

Table 2. Unified aims across all levels in computing curriculum in Poland [20]
  1. 1.

    problem situations, cooperative games, and puzzles that use concrete meaningful objects – discovering concepts

  2. 2.

    computational thinking about the objects and concepts – algorithms, solutions

  3. 3.

    programming

The concept of a spiral curriculum was put forward originally by Bruner [21] based on his cognitive theory in which in earlier stages of cognitive development manipulating real objects is important and later these may become more abstract representations. As the curriculum spirals upwards more complex concepts and approaches can be introduced. In line with Bruner’s [21] proposals, benefits of such a spiral curriculum include: (1) reinforcement of key concepts and techniques each time the subject matter is revisited; (2) progression from simple concepts to more complex ones; (3) students can be encouraged to recap their previous knowledge and apply their knowledge to new problems and situation. This changing emphasis in a spiral curriculum can allow for a range of aspects of progression that are critical for Computer Science including: increasing difficulty of problems; enabling students to tackle more of the problem-solving process as they progress; consideration of the move from pictorial/block-based programming environments to text-based.

6 Pedagogical and Assessment Challenges

While our discussion was focused on curriculum issues and it is beyond the scope of this paper to consider pedagogical and assessment challenges in depth, it is important that curriculum challenges are seen in the broader context of education. Specifically the curriculum is frequently depicted as in a triangular push-pull relationship with pedagogy and assessment in that both of these act as forces constraining or promoting curriculum change. Assessment was mentioned by many participants in the discussions as a constraint, particularly for more creative aspects of Computer Science that are typically harder to assess by traditional methods.

Implementing a curriculum focused on Computer Science was agreed to be particularly challenging in countries where the subject is being reintroduced and where there are not enough specialist-trained and experienced teachers and hence there is a lack of pedagogical expertise and a major professional development challenge. It is beyond the scope of this paper to discuss in depth the professional development needed to tackle these pedagogical challenges. Furthermore we acknowledge that factors leading to effective teacher professional development are difficult to identify and define and professional development is largely context dependent [see 22 for a review]. But in summary, our recommendations were to focus on teachers developing pedagogical content knowledge [23] which is much less well understood for Computer Science compared with other subject areas. Furthermore, we agreed on the importance of using technology resources to enhance or transform learning where appropriate and the importance of understanding the relationship between knowledge of technology use and pedagogical content knowledge [24]. An ongoing debate around the curriculum for Computer Science is the extent to which this curriculum must encompass enabling students to make good use of technologies. Learning Computer Science is not dependent on using the latest technologies and indeed the value of “unplugged activities” [25] for learning various difficult concepts in Computer Science is well recognised. Nevertheless good use of new technologies can transform learning and we believe that pedagogy for Computer Science should reflect appropriate use of technologies for achieving this transformation [24] and thus set an example for other curriculum areas.

The nature of Computer Science as both scientific and practical presents significant challenges for its implementation. The curriculum in Poland, for example, emphasises the importance of problem solving at all levels. In our discussions we achieved a consensus regarding the value of engaging students in tackling real-world problems in order to stimulate their intellectual curiosity and motivation [24]. However, we should not underestimate the challenges of implementing a curriculum that incorporates problem solving and computational thinking as key practical elements of Computer Science. Understanding of the importance of problem solving in the curriculum has had a long and difficult history [see for example Schoenfeld’s reflections over many years 26]. Schoenfeld’s work encompassed theory and practice of problem-solving generally but focused specifically on its implementation in Mathematics education, where problem-solving is recognised by many to be crucial. In spite of a strong focus on the importance of problem-solving, implementation in Mathematics curricula has been limited (ibid.) owing to: pedagogical challenges in teaching and managing open-ended problem-solving; difficulties assessing problem-solving skills especially in authentic contexts and identifying suitable problems for students to tackle.

7 Discussion and Conclusions

Key questions that emerged during our debate [4, 5] were:

  1. 1.

    What is the range of skills and understanding that should be developed in Computer Science?

  2. 2.

    Are such skills and understanding necessary for everyone? Should it be and remain compulsory?

  3. 3.

    At what age should Computer Science education commence?

  4. 4.

    How many computing languages or frameworks should a student be exposed to in the span of schooling from K-12?

  5. 5.

    How varied should these languages be? Should a variety of paradigms be explored?

  6. 6.

    How closely should the curriculum match computers available to schools and students?

  7. 7.

    What consideration in curriculum design should be given to emerging technologies such as quantum networks and optical computing?

  8. 8.

    What pedagogical approaches are likely to be appropriate, and how do they vary with age and other factors?

We have made some progress in answering Questions 1, 2, 3 and 8 but others remain to be examined. One of the strengths of the discussions that we have had to date are that they were not restricted to those engaged in Computer Science education but involved others who are committed to understanding the importance of digital technologies for learning but are more focused on digital literacy and the use of technologies for learning in other subjects. This has enabled us to gain greater insight into how Computer Science as a subject may be perceived and how we need to continue to make the case for Computer Science and consider its relationship to the rest of the curriculum. There remain, for example, many who regard Computer Science as a specialist subject that is accessible only to older or more capable students. Currently the curriculum in Israel exemplifies this approach. Furthermore, in the broader education community, the driver/mechanic analogy, a long-standing argument against Computer Science as a curriculum subject for all, is still often used. This argument suggests that cars are analogous to computers and that the majority of pupils need only to be able to use them rather than understand their working. In order to counter such arguments, we need to be aware of the rationales for Computer Science, as outlined in this paper, and to continue to research and develop pedagogical approaches and professional development that enables the promise of Computer Science as a curriculum subject to be realised.