University of Southampton Research Repository Eprints Soton
Total Page:16
File Type:pdf, Size:1020Kb
University of Southampton Research Repository ePrints Soton Copyright © and Moral Rights for this thesis are retained by the author and/or other copyright owners. A copy can be downloaded for personal non-commercial research or study, without prior permission or charge. This thesis cannot be reproduced or quoted extensively from without first obtaining permission in writing from the copyright holder/s. The content must not be changed in any way or sold commercially in any format or medium without the formal permission of the copyright holders. When referring to this work, full bibliographic details including the author, title, awarding institution and date of the thesis must be given e.g. AUTHOR (year of submission) "Full thesis title", University of Southampton, name of the University School or Department, PhD Thesis, pagination http://eprints.soton.ac.uk UNIVERSITY OF SOUTHAMPTON FACULTY OF SOCIAL AND HUMAN SCIENCES Southampton Education School How Can the Teaching of Programming Be Used to Enhance Computational Thinking Skills? by Cynthia Collins Selby Thesis for the degree of Doctor of Philosophy April 2014 UNIVERSITY OF SOUTHAMPTON ABSTRACT FACULTY OF SOCIAL AND HUMAN SCIENCES Southampton Education School Thesis for the degree of Doctor of Philosophy HOW CAN THE TEACHING OF PROGRAMMING BE USED TO ENHANCE COMPUTATIONAL THINKING SKILLS? Cynthia Collins Selby The use of the term computational thinking, introduced in 2006 by Jeanette Wing, is having repercussions in the field of education. The term brings into sharp focus the concept of thinking about problems in a way that can lead to solutions that may be implemented in a computing device. Implementation of these solutions may involve the use of programming languages. This study explores ways in which programming can be employed as a tool to teach computational thinking and problem solving. Data is collected from teachers, academics, and professionals, purposively selected because of their knowledge of the topics of problem solving, computational thinking, or the teaching of programming. This data is analysed following a grounded theory approach. A Computational Thinking Taxonomy is developed. The relationships between cognitive processes, the pedagogy of programming, and the perceived levels of difficulty of computational thinking skills are illustrated by a model. Specifically, a definition for computational thinking is presented. The skills identified are mapped to Bloom’s Taxonomy: Cognitive Domain. This mapping concentrates computational skills at the application, analysis, synthesis, and evaluation levels. Analysis of the data indicates that the less difficult computational thinking skills for beginner programmers are generalisation, evaluation, and algorithm design. Abstraction of functionality is less difficult than abstraction of data, but both are perceived as difficult. The most difficult computational thinking skill is reported as decomposition. This ordering of difficulty for learners is a reversal of the cognitive complexity predicted by Bloom’s model. The plausibility of this inconsistency is explored. The taxonomy, model, and the other results of this study may be used by educators to focus learning onto the computational thinking skills acquired by the learners, while using programming as a tool. They may also be employed in the design of curriculum subjects, such as ICT, computing, or computer science. Contents ABSTRACT ......................................................................................................... i Contents ........................................................................................................... iii List of tables ..................................................................................................... ix List of figures ................................................................................................... xi DECLARATION OF AUTHORSHIP ................................................................. xv Acknowledgements ...................................................................................... xvii Definitions and Abbreviations ...................................................................... xix Chapter 1. Introduction ................................................................................ 1 1.1 Background ............................................................................................ 1 1.2 Research questions ................................................................................ 3 Chapter 2. Frameworks ................................................................................ 5 2.1 Theoretical framework ............................................................................ 5 2.2 Bloom’s Taxonomy ................................................................................. 5 2.3 The revised Taxonomy ........................................................................... 7 2.4 The SOLO taxonomy ............................................................................ 10 2.5 Bloom’s Digital Taxonomy .................................................................... 13 2.6 Conclusion............................................................................................ 15 2.7 Conceptual framework ......................................................................... 18 Chapter 3. Literature review ...................................................................... 21 3.1 Rationale for literature selection ........................................................... 21 3.2 Computational thinking ......................................................................... 22 3.2.1 Defining computational thinking..................................................... 22 3.2.1.1 Is a definition required? .......................................................... 23 3.2.1.2 Computing, computer science, or computational thinking ....... 24 3.2.1.3 What computational thinking is not ......................................... 24 3.2.1.4 Basic terminology ................................................................... 25 3.2.1.5 A developing definition ............................................................ 27 3.2.1.5.1 A thought process ............................................................... 27 3.2.1.5.2 Abstraction .......................................................................... 28 3.2.1.5.3 Decomposition .................................................................... 29 3.2.1.5.4 Thinking terms .................................................................... 29 iii 3.2.1.5.5 Problem solving terms ........................................................ 31 3.2.1.5.6 Computer science terms ..................................................... 34 3.2.1.5.7 Imitation terms .................................................................... 36 3.2.1.5.8 Proposed definition ............................................................. 37 3.2.2 Computational thinking for all ........................................................ 38 3.2.3 Concepts to be taught ................................................................... 39 3.2.4 How to teach computational thinking ............................................. 40 3.2.5 Connection to this research........................................................... 42 3.3 Education theory and computer science .............................................. 42 3.4 Pedagogy of programming ................................................................... 45 3.4.1 Student views of learning to program ............................................ 46 3.4.2 Difficulties of learning to program .................................................. 47 3.4.3 Characteristics of an effective novice programmer ....................... 51 3.4.4 Strategies for teaching problem solving ........................................ 54 3.4.5 Promoting effective learning of programming ................................ 57 3.5 Teaching problem solving via programming ......................................... 59 3.5.1 Novices solve problems with natural language ............................. 60 3.6 Conclusion ........................................................................................... 61 Chapter 4. Method ...................................................................................... 63 4.1 Approach .............................................................................................. 63 4.2 Ethical issues ....................................................................................... 64 4.3 Grounded theory .................................................................................. 67 4.4 Alternative research design .................................................................. 71 4.5 Design reliability and validity ................................................................ 73 4.6 Sampling and participants .................................................................... 77 4.7 Instruments .......................................................................................... 79 4.7.1 Basic question contexts................................................................. 79 4.7.2 On-line questionnaire .................................................................... 80 4.7.3 Community of practice................................................................... 86 4.7.4 Interviews ...................................................................................... 89 4.8 Data collection, analysis, and