A Pilot Study - ACM Digital Library

2 downloads 0 Views 696KB Size Report
Mar 8, 2017 - paper we describe the VCE Algorithmics curriculum and ex- plain how it .... to elicit an (almost) ex nihilo verbal description in natural language ...
Teaching Computer Science in the Victorian Certificate of Education: A Pilot Study Richard Cox

Steven Bird

Bernd Meyer

Faculty of Information Technology Monash University [email protected]

Department of Computing and Information Systems University of Melbourne [email protected]

Faculty of Information Technology Monash University [email protected]

ABSTRACT A new computer science curriculum has been developed for the Victorian Certificate of Education. It gives students direct entry into second year University computer science. The curriculum focuses on data structures and algorithms, with an emphasis on the graph abstract data type and graph algorithms. We taught a pilot course during 2014 involving students from seven schools, and administered an algorithmic thinking quiz on entry and exit, and also tested a first year university reference group. In this paper we present the curriculum and report on the evaluation. We discuss the effectiveness of our approach and make recommendations for improving future versions of the course. Pedagogical issues are discussed in relation to the cognitive education literature on the teaching of algorithmic thinking.

CCS Concepts •Social and professional topics → Computational thinking; Computer science education; K-12 education;

Keywords Computer science education; algorithmic thinking; computational thinking; high school education; Snap!; Edgy; graphs

1.

INTRODUCTION

The Victorian Certificate of Education (VCE) is the schoolleaving qualification obtained by the majority of secondary (high school) students in the Australian state of Victoria. The full VCE program typically involves the final two years of high school. Studies are typically organised into Units 1 and 2 (Year 11) and Units 3 and 4 (Year 12). The VCE includes the full range of sciences, social sciences and humanities offerings, including two IT sequences: IT Applications, and Software Development at Units 3 and 4. IT skills are also taught and applied across the curriculum in the compulsory years of schooling. IT Applications focuses on the creation and management of information to support Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

SIGCSE ’17, March 08 - 11, 2017, Seattle, WA, USA c 2017 Copyright held by the owner/author(s). Publication rights licensed to ACM.

ISBN 978-1-4503-4698-6/17/03. . . $15.00

the information needs of individuals, communities and organisations. Students use application (or productivity) software including web authoring, relational database management software and spreadsheets to generate solutions using a problem-solving methodology. The study also focuses on information management and its importance to organisations. IT Applications had a 2015 enrolment of 2,548 (from a cohort of approximately 50,000 students); a decline of approximately 28% since 2010. Female enrolments declined from 21% in 2010 to 15% in 2015. VCE Software Development focuses on programming as a strategy for solving problems for specific users in a networked environment. Students engage in a problem-solving methodology when creating solutions suitable for use with mobile devices. The study also addresses the networked environments within which these solutions will operate. Software Development had a 2015 enrolment of 1,385, an increase of approximately 10% since 2010. Female enrolments have declined from 8% in 2010 to 6% in 2015. For some years there has been an total disconnect between VCE IT studies and tertiary degrees in computer science. Over half of the students are not enrolled in a mathematics subject yet this is required for university studies in computer science. Less than 10% of students enrolled in university computer science have undertaken VCE IT. The Australian IT industry has many openings for computer science graduates. The problem with meeting the demand for graduates has been traced to a shortage of students who enrol in computer science degrees, and to a high dropout rate [6]. Six years ago, Google extended its Computer Science for High School (CS4HS) funding program to Australia in order to provide professional development to secondary IT teachers, in the hopes of encouraging more students – particularly students having a suitable background – into University computer science courses. Melbourne and Monash universities partnered in running CS4HS workshops over this period, with strong participation by secondary STEM teachers. This has led to a partnership between the two universities and the Victorian Curriculum and Assessment Authority (VCAA), and to the development of a new computer science curriculum for the VCE, called ‘Algorithmics’.1 In this paper we describe the VCE Algorithmics curriculum and explain how it complements the existing IT curriculum with a mathematically rigorous introduction to computer science, and opens the way to accelerated pathways into Universitylevel computer science majors. During the first semester of 2014, we delivered a pilot ver1

DOI: http://dx.doi.org/10.1145/3017680.3017735

135

see VCAA website – http://tinyurl.com/huxqsth

sion of some of the curriculum’s content to students from seven schools, and we report on this experience. The course focussed on the graph abstract data structure (ADT) and graph algorithms, using a new block-based programming environment. We conducted a small evaluation with these students and a reference group, to establish that students developed algorithmic thinking skills commensurate with those of first year computer science students.

1.1

VCE Algorithmics

This new curriculum investigates ‘algorithmics’, which we have promoted as a highly structured and theoretically wellfounded framework for solving authentic, practical problems with computational methods. It takes its name from the title of David Harel’s book [10]. Algorithms constitute the core of many degrees in computer science and software engineering. Units with diverse content ranging from databases to operating systems, software testing to artificial intelligence, typically involve a substantial body of material concerning algorithms. Algorithmic thinking is a major component of computational thinking [18] and is seen as being one of the most important computer science topics for developing critical thinking skills [14]. The skill of choosing a suitable algorithm design pattern (divide-and-conquer, dynamic programming, etc) and the knowledge of asymptotic complexity measures, is what sets the computer scientist apart from self-taught programmers. Accordingly, we have promoted the course with the slogan: ‘Think before you code!’ Algorithmics proceeds from an examination of data modelling in general to the graph ADT in particular. Real world problems in such areas as social networks, transportation, and the web are readily mapped to sets of nodes and edges. This high level of abstraction makes it possible to write down pseudocode for sophisticated algorithms, and to implement and test them in a high level language that supports the graph API, without getting bogged down in the syntax of traditional programming languages, an approach that has been successful in teaching logic [1, 16]. Algorithmics also covers deeper topics in computer science such as the possibility of artificial intelligence and prospects for new models of computation inspired by physical and biological systems. A hard requirement on the new curriculum was that it complement existing VCE IT studies. In particular, it was necessary to avoid the programming emphasis of VCE Software Development. This requirement played into our own agenda of implementing an algorithm-centric course with reduced emphasis on programming. The greater alignment with University-level studies has meant that some universities offer students who complete VCE Algorithmics direct entry to second year computer science studies. VCE Algorithmics is structured into two components. Algorithmic Problem Solving covers: data modelling with abstract data types (focussing on the graph ADT); algorithm design including basic program structure, recursion, bruteforce search, greedy methods, standard algorithms for graphs (Prim, Dijkstra, PageRank, etc); and approaches to empirical performance analysis and methodical testing. Principles of Algorithm Design covers: formal algorithm analysis, big-O notation and recurrence relations; advanced algorithm design including divide-and-conquer and dynamic programming; and the universality of computation and algorithms including the Church-Turing Thesis and Searle’s Chinese Room argument.

Figure 1: An Edgy implementation example: Dijkstra’s algorithm, ‘Muddy City’ problem (Bell, [2]).

During the first semester of 2014, two of the authors (SB & BM) delivered a pilot of the Algorithmics course. Our approach to pedagogy involved the following elements: (a) almost no lecture style delivery; instead we developed ideas in class discussions; (b) blended materials including videos, and heavy use of consolidation modules; (c) a focus on heterogeneous reasoning via Edgy (i.e. learning in both syntactic and graphical modes) [1, 16], and (d) stepping back from programming, through adoption of a blocks-based visual programming language as a well-defined level of pseudocode. The last of these involved a purpose-built interactive algorithm development environment (Edgy2 , an extension of Snap! [11], Fig. 1) that allows students to reason heterogeneously, i.e. to fully focus on high-level algorithmic aspects liberating them from having to handle low-level programming. For administrative reasons, the pilot study had to be run as part of a normal university extensions study program extending only over the course of a single semester. Piloting the entire contents of the Algorithmics course was thus not an option. We decided to evaluate a diagonal cross section of the whole content which combined about 70% of Unit 3 material with 30% of Unit 4 material. Sixteen students from a variety of schools and backgrounds attended the campus of Monash University for 12 weeks. Each week we offered a 2 hour core class (with mandatory attendance) and two 1 hour stretch classes (with optional attendance). Required learning outcomes were fully covered in the core classes, while stretch classes were used to work through additional examples, work through problems in more depth, and discuss additional interesting applications. For example, in the weeks dedicated to graph traversal we covered best-first search (BFS) and depth-first search (DFS) in the core classes. The stretch classes then extended this topic by analyzing why decision trees, especially game trees, are often too large to use these algorithms directly when searching for a solution and developed the idea of a search heuristics, BFS, and iterated DFS. The syllabus covered an introduction to problem modelling with graphs, general algorithm design paradigms, and a representative selection of important graph algorithms, and topics from theoretical computer science that relate to algorithmic complexity. Algorithm design paradigms ranged 2

136

www.snap-apps.org/edgy.html

from the most fundamental patterns to the sophisticated: greedy, transform and conquer, divide and conquer, and dynamic programming. Covering such advanced algorithm design concepts in the given amount of time was possible only because we stepped away from implementation details and worked on the level of pseudocode and blocks-based visual programming.

ministered to students in a comparison class consisting of 15 first-year students (predominantly BSc students) at the University of Melbourne. The comparison group students were studying some computer science topics as part of their first year curriculum. The pre-course evaluation sessions took place at the end of the first class of the semester and the follow-up (post test) took place in week 11 of the 12week semester. Three of the comparison group students did not show up for the post-test session so the final number of comparison group students providing complete data was twelve.

Table 1: Course structure W Syllabus topic 1 What is an algorithm and why should I care?

2

Modelling with Graphs

3

Search in graphs

4

Algorithm Design 1: Greedy

5

Algorithm Design 2: Recursion

6

Algorithm Design 3: Divide and Conquer Algorithm Design 4: Dynamic Programming Graphs as a tool for reasoning Artificial Intelligence: is it possible?

7

8 9

10 Some really hard problems and how to deal with them: intractability and its implications 11 Not everything is digital: alternative computation 12 Revision

Notes Introduces the concept of an algorithm and gives a brief introduction to a blocks-based language Graphs for modelling real networks (social, transport, communication,...), abstract relationships, & processes (state graphs), Graph ADT Traversal methods (iterative versions) How to specify algorithms, modular abstraction, Greedy methods for minimum spanning trees; Introduction to runtime complexity Introduction to recursion, recursive version of DFS, recursive structures (fractals) Tree search, fake-coin problem The Floyd-Warshall Algorithm, the change-making problem Modelling with decision trees; Minimax algorithm Computability and Decidability; Halting Problem; Philosophical implications of undecidability Runtime Analysis, Exponential runtime; heuristics for exponential problems (simulated annealing) Overview of non-digital computation methods, Biocomputing, specifically DNA

2.1

Algorithmic Thinking Quiz (ATQ)

The evaluation utilised an algorithmic thinking quiz (ATQ)3 consisting of four algorithmic thinking problems sourced from the literature on teaching algorithmic thinking and computational thinking. The quiz was administered at the beginning and end of the semester. The first ATQ question (‘stones’) describes a game in which stones of different colours must be moved between receptacles according to a set of conditional rules. Solutions are aided typically by the drawing of a directed graph or state transition representation. It was taken from a ‘test yourself’ questionnaire for computer science applicants developed by H.J. Ohlbach at LMU University, Munich. The MCQ response format was modified to allow straightforward scoring of students’ responses to the item’s 7 sub-questions. Question 2 (‘cardsort’) was designed to elicit an (almost) ex nihilo verbal description in natural language of an intuitively well-understood problem solving procedure (sorting cards of one suit). This card-sorting scenario was taken from [17]. Question 3 (‘chocolate’) posed a turn-taking problem from [4]. Two people take turns to eat squares of chocolate according to rules. One player must decide which square s/he must eat first to guarantee her opponent is left with the last square. This question taps the student’s ability to discern basic algorithmic actions and a loop or sequence of moves. Question 4 (‘detective’) assesses network graph comprehension via comparing and synthesising two isomorphic (but differently formatted) state-graph representations. This question was adapted from [13] and was designed to tap an important skill in the VCE algorithmics class (which focuses heavily on algorithmic operations on graph re-representations of problems).

2.2

ATQ scoring

The course was structured into 12 weeks (Table 1). The introduction of new algorithm design patterns always followed approximately the same format: Introduction of an interesting problem, developing the naive (and usually inefficient) version in class discussions, sometimes with ‘unplugged’ exercises (eg. [2]), analysing its shortcomings and inefficiencies; developing the improved algorithm in scaffolded class discussions, extracting the general design pattern. We often required – or at least encouraged – the students to consolidate this by implementing the algorithm in Edgy and generally provided video screencasts discussing such an implementation for revision a few weeks later.

Question 1 comprised seven multiple-choice sub questions (maximum score 7). Question 2 has a written response and was scored as follows – students’ responses were anonymised and photocopied. The copies were then shuffled. Each algorithm was marked by one of the authors according to 3 criteria: clarity, correctness and conciseness. Marks ranging from zero to five marks were awarded for each category making the maximum score possible equal to fifteen. Question 3 had single correct answer and and question 4 was scored according to how many of seven nodes were correctly mapped across the two (isomorphic) network graph diagrams. The score range of the complete ATQ test was 0-30 marks.

2.

3.

EVALUATION

A test of algorithmic thinking was administered to the fifteen year 12 students in the VCE Algorithmics pilot class. The pilot class students came from four Melbourne schools and had self-selected the subject. The test was also ad-

RESULTS

Figure 2 shows an interaction graph of ATQ median score changes for the 2 groups over the course of the semester. 3

137

The ATQ can be accessed at http://tinyurl.com/zxgwd3y

Table 2: Mean % correct (sd) for ATQ items at beginning/end semester (for ‘Chocolate’ % responding correctly shown. ATQ item, task

Stones-apply program constructs Card-describe algorithm Chocolateselect/apply algorithm Detectivesearch/compare networks

Alg. Grp End (n=15) 82.9(17.2)

Comp. Beg (n=12) 84.5(15.5)

Comp. End (n=12) 83.3(12.4)

26.2(19.4)

41.3(13.1)

43.3(23.0) 50.0(25.3)

33.3

80.0

33.3

41.9(42.7)

82.9(30.2)

66.7(43.6) 97.6(8.2)

58.3

semester on the external evaluation indicate that the course’s pedagogical focus and content were effective. Students on the course were shown to acquire algorithmic thinking skills equivalent to those of first year computer science university students. A number of factors were identified that enhanced the students’ motivation and supported learning. We also outlined issues that we feel need improvement. In this section we discuss these issues in relation to findings from the cognitive education literature on algorithmic and computational thinking. We reported that developing algorithms during in-class discussions works well and quickly leads to conceptual understanding of the algorithm design. However, it was found that subsequently it was not necessarily the case that students were able to write code for the algorithm. This observation is commensurate with recent research [12]. Khemlani et al. suggest that a prerequisite of algorithm formulation is ease of problem solution: “if individuals cannot solve...problems... they can hardly devise algorithms for their solution”(p.167–68). In [12], students developed algorithms using a simple finite state machine in the form of train carriage rearrangement problems – participants problemsolved using a computer-based simulation of carriages, train tracks and track sidings. Khemlani et al. suggest that the process of algorithm formulation requires abductive reasoning, i.e. the generation of a ‘story’ about the operations required in problem solving. Three steps are postulated to be involved – mental simulation of solutions to the problem, followed by ‘recovery’ of the loop of moves (and any moves that have to be performed before and after the loop), and thirdly the conversion of the “...structure of the solution, including the loop, into a verbal description. . . ” Mental processes involved in algorithm execution are often implicit – we can do more than we can tell. For example, Weigend [17] notes that students “... know for sure what to do but are not able to express this knowledge using the programming language”.4 We suggest that to help students make implicit knowledge explicit they should be encouraged to think aloud as they engage in algorithmic problem solving – to self-explain [5]. Weigend [17] recommends that students ‘deep track’ their

Figure 2: Mean ATQ scores for Algorithmics and Comparison groups at the start and end of the semester (90% confidence interval error bars).

Mann-Whitney statistical tests for independent measures showed that the two groups differed significantly from each other at the start of the semester (U=41, p < .02) but that there was no significant difference between the groups at the end of the semester. Within-group Wilcoxon tests for related measures showed that both groups showed significant improvement over the course of the semester (VCE algorithmics class, Z = -3.13, p < .005; comparison group, Z=-2.48, p < .02). In the VCE algorithmics class, all students except one showed a positive change in ATQ score from the beginning to the end of the semester. In the comparison group, all students except two showed a positive change. Table 2 shows the average percentage performance on each item of the ATQ for both groups at the beginning and the end of the semester. Both groups performed at near ceiling level on the ‘stones’ problem and showed little change over the semester. The Algorithm group showed particular improvement on three of the four ATQ items (bold values in table 2)). These were the ‘card’ item i.e. in ability to describe a playing card sorting algorithm in English, the ‘chocolate’ turn-taking algorithm problem (loop move sequence) and ‘detective’ the state graph comprehension problem.

Course assessments and ATQ For the 15 students on the VCE algorithmics course, correlation coefficients for performance on two in-course assessments and ATQ post-test scores were computed. Scores on the end-of-course exam correlated significantly and positively with end-of-semester scores on the ATQ (r=.61,p < .02). Students’ in-course project marks were not significantly correlated with ATQ scores.

4.

Alg. Grp Beg (n=15) 76.2(15.9)

4 The phenomenon of tacit knowledge has been examined in the expert systems area – knowledge elicitation from experts can be difficult since their (mental) knowledge representation has become implicit and therefore less amenable to verbal articulation [3].

DISCUSSION

Taken together, the VCE Algorithmic students’ performance on the course assessments (project, exam) and the positive change in their ATQ scores over the course of the

138

code (“explain your program!”) and reflect on their intuitive models. Teachers should also consider separating problem solving from algorithm development as much as possible. In the VCE Algorithmics class, we encouraged verbal articulation of implicit knowledge by means of peer-discussions and instructor-led class discussions. Students are then able to produce better descriptions of algorithms in both natural language and formal language (e.g. code). An implication of the cognitive education research on implicit knowledge is that approaches to teaching algorithmic thinking in which domain problem solving and algorithm creation are performed concurrently run the risk of overloading students. Findings also suggested that modelling algorithms via graph ADTs warrants more in-depth educational attention, particularly concerning teaching strategies for identifying and extracting salient aspects of real world problems. In relation to this point, [17] refers to the ‘splitting barrier’, the “gap between the intuition and the program code. . . (the) problem of breaking up the Gestalt of a holistic concept, the fixation on non-implementable intuitions...”(p.118). It is argued in [7] that a key skill is the ability to elucidate basic actions that ‘are adequate to the given problem’ and students need to think about special and extreme cases to which the algorithm might need to be applied. Futschek illustrates these processes with reference to path searching in mazes. Examples of basic actions in this domain are querying (is the goal reached?) and determining the number of corridors that leave the current node. Futschek [7] suggests that re-representation in more abstract form such as a directed graph is a useful way of elucidating maze junctions and corridors via nodes and edges (precisely the type of abstraction that Edgy supports). A third area of difficulty for students was that of recursion. One study [15] found that although many students develop a ‘correct copies’ mental model of recursion, many still develop iterative looping and other non-viable models. They introduced recursive algorithms earlier and focused on students’ understanding of both active and the passive flows of algorithm control. This was effective in increasing the acquisition of correct models. One approach to teaching recursion aligns well with the Edgy algorithm development environment, namely teaching using recursively generated geometric designs [8]. Such a visual approach has the advantage that results at each recursive step are naturally displayed and impressive graphic images are produced (e.g. fractals) that reinforce student learning. In [9] it is recommended that instructors pay special attention to students’ conceptions of base cases in recursive algorithms. Students need to learn that base cases “should be treated as the smallest instances of the problem’s legal input, and not merely as supporting stopping conditions” (p.88).

tant question that the pilot addressed: These materials, even though cognitively demanding, can be successfully taught at year 12 level. An important second question was whether students at this age would fully engage with such contents or instead be possibly disappointed about not learning enough practical programming. This concern turned out to be unfounded: students stayed engaged throughout the entire semester. Clear evidence for this was given by the voluntary attendance in the optional stretch classes, which stayed close to 100% to the end of the semester. As the students were fully informed about the fact that none of the materials discussed in the stretch classes was examinable, this clearly indicates an interest in the topics. From student feedback and in-class experience, we could determine further factors that enhanced the students’ motivation and supported learning: • ‘Unplugged’ exercises (e.g. [2]) and algorithm development engaged the whole class almost without fail. The social, fun and embodied nature of the activities made them powerful tools for learning. • Video resources, specifically screencasts that walk through an implementation, were widely used by the students and were generally regarded as very helpful. • Developing algorithms in class discussions on the whiteboard from examples worked well and quickly led to a conceptual understanding of the algorithm design. Discussion required students to verbalise and explain and therefore represent their knowledge explicitly rather than implicitly [5, 7, 17]. Caveat: one must not expect that students are automatically able to write pseudocode (or even proper code) for such an algorithm afterwards. • Using graph algorithms as the core of the course supported the interactive development because these can easily be visualized on the whiteboard or computer. • Stepping away from programming (and from languages with a steep learning curve) enabled students to focus on the algorithmic concepts. Even some students who had prior experience with introductory Python or other languages and used this in the beginning of the course switched over to Edgy once algorithms with more demanding design patterns had to be implemented. • Discussions of philosophical aspects (e.g. possibility of AI, status of computational knowledge) received positive feedback. Likewise, we learned about a number of factors that require further improvements: • The large variation in familiarity with programming (from no exposure at all to having developed reasonably complex applications) presented a significant challenge. Even though programming was not the subject matter, previous experience helped with understanding algorithmic topics and advantaged these students. Simply stepping away from coding and focusing on algorithmics did not address this sufficiently. Recommendation: A streamed model in which students with prior experience work through the basic version of an algorithm pattern more quickly and proceed to more advanced version may be a suitable approach. However, such an approach is resource intensive and probably only feasible if it relies on self-guided learning by the more advanced students. Another useful approach may be to let students with prior programming experience work as

Lessons learned Given the compressed schedule, and given that a strong focus was on the more advanced topics, it can be assumed the pilot was more demanding for the students than the actual course will be. Nevertheless, the results of the study were very encouraging: The unit was marked according to standard university first year standards. The pass rate was 94%, and the average overall mark was in the HD range. Results in the final (closed book) examination and for in-semester project assessment were strongly positively correlated. These outcomes give clear evidence for the most impor-

139

peer-tutors for those students who lacked this experience. In the pilot we have seen this work on various occasions, but have not endeavoured to establish this systematically. • Difficult topics: two topic areas stood out: recursion, and dynamic programming. Neither of these came as a surprise, since these are always difficult topics when encountered for the first time, even at university level and even for advanced students. Yet it is clear that no introduction to algorithmics can do without recursion. Recommendation: The introduction to recursion should be allocated more time and parts of the course that do not need to rely on recursion should not do so. • The difficulty with dynamic programming is not necessarily with understanding how it works for a given problem but with using it in a creative way (i.e. the transfer to new problems). Recommendation: Outcomes for dynamic programming in a beginners course should only be required as knowledge, not as transfer i.e. at the knowledge level rather than application level. • Modelling aspects deserve more in-depth treatment. The challenging aspects are not so much in how to use graphs for modelling or how to write a graph model formally, but more fundamentally in identifying and extracting salient aspects of a real world problem in general. Part of the challenge that modelling poses to students might be due to exercises confounding problem solving and modelling. Providing already-solved problem solutions for students to model might be useful at early stages of learning. Recommendation: more time should be allocated to modelling and ideally a significant number of worked examples should be explored and experienced.

[2] T. Bell, I. Witten, and M. Fellows. Computer Science Unplugged, Teachers Edition. csunplugged.org, 2010. [3] D. Berry. The problem of implicit knowledge. Expert Systems, 4(3):144–151, 1987. [4] B. Burton. Encouraging algorithmic thinking without a computer. Olympiads in Informatics, 4:3–14, 2010. [5] M. Chi, N. de Leeuw, M. Chiu, and C. LaVancher. Eliciting self-explanations improves understanding. Cognitive Science, 18:439–477, 1994. [6] S. Furber. Shut down or restart? The way forward for computing in UK schools. The Royal Society, London, 2012. [7] G. Futschek. Algorithmic thinking: The key for understanding computer science. In R. Mittermeir, editor, Proceedings of the ISSEP conference, LNCS 4226, pages 159–168. Springer, Berlin, 2006. [8] A. Gordon. Teaching recursion using recursively-generated geometric designs. Journal of Computing Sciences in Colleges, 22(1):124–130, 2006. [9] B. Haberman and H. Averbuch. The case of base cases: Why are they so difficult to recognize? Student difficulties with recursion. In 7th SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE ’02, pages 84–88. ACM Publications, New York, 2002. [10] D. Harel. Algorithmics: The spirit of computing, 3rd Edn. Pearson Education, Harlow, UK, 2004. [11] B. Harvey, D. D. Garcia, T. Barnes, N. Titterton, O. Miller, D. Armendariz, J. McKinsey, Z. Machardy, E. Lemon, S. Morris, and J. Paley. Snap! (build your own blocks). In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE ’14, pages 749–749, New York, NY, USA, 2014. ACM. [12] S. Khemlani, R. Mackiewicz, M. Bucclarelli, and P. Johnson-Laird. Kinematic mental simulations in abduction and deduction. Proceedings of the National Academy of Sciences (PNAS), 110(42):16766–16771, 2013. [13] E. Milkova and A. Hulkova. Algorithmic and logical thinking development: Base of programming skills. WSEAS Transactions on Computers, 12(2):41–51, 2013. [14] A. Nager and R. Atkinson. The case for improving computer science education. Information Technology & Innovation Foundation, pages 1–38, May 2016. [15] I. Sanders, V. Galpin, and T. Gotchi. Mental models of recursion revisited. In 11th SIGCSE Conference on Innovation and Technology in Computer Science Education, SIGCSE ’06, pages 138–142. ACM Publications, New York, 2006. [16] K. Stenning, R. Cox, and J. Oberlander. Graphical effects in learning logic: Reasoning, representation and individual differences. Language and Cognitive Processes, 10(3/4):333–354, 1995. [17] M. Weigend. From intuition to programme. In R. Mittermeir, editor, Proceedings of the 2nd ISSEP conference, LNCS 4226, pages 117–126. Springer, Berlin, 2006. [18] J. Wing. Computational thinking. Communications of the ACM, 49(3):33–35, 2006.

To conclude, the prospects for effectively teaching algorithms in secondary school seem positive. The pedagogical approaches that we adopted worked well, and student engagement levels were high and maintained throughout the semester. Numerous pedagogical challenges were identified from the pilot study but ways of addressing them were gleaned from the experience of teaching the course and from the cognitive education literature on algorithmic thinking. Preliminary results of the first full delivery within the official VCE curriculum as a Year 11/12 study are encouraging. The cohort had 33% female participation and, together with specialist maths, achieved the highest results of all normally-scaled units in the Victorian Certificate of Education (VCE). The curriculum and outcomes have undergone the usual VCAA review with only minor changes and is now accredited for 2017–19.

5.

ACKNOWLEDGMENTS

We are grateful to Paula Christophersen (VCAA), to the students in the pilot offering of VCE Algorithmics for their participation and support, and for a grant from Google Australia: Blended Learning Across the Secondary-Tertiary Divide.

6.

REFERENCES

[1] J. Barwise and J. Etchemendy. Computers, visualization, and the nature of reasoning. In T. Bynum and J. Moor, editors, The Digital Phoenix: How Computers Are Changing Philosophy, pages 93–116. Blackwell Publishers, Oxford, 1998.

140