How can the teaching of programming be used to enhance computational thinking skills?

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.

[1]  Mats Daniels,et al.  Case studies in admissions to and early performance in computer science degrees , 2003, ITiCSE-WGR '03.

[2]  Helen Chick,et al.  Cognition in the formal modes: Research mathematics and the SOLO taxonomy , 1998 .

[3]  Errol Thompson,et al.  Bloom's taxonomy for CS assessment , 2008, ACE '08.

[4]  D. Krathwohl A Revision of Bloom's Taxonomy: An Overview , 2002 .

[5]  Nola Purdie The power of the SOLO model to address fundamental measurement issues , 1998 .

[6]  Robert McCartney,et al.  Commonsense computing: using student sorting abilities to improve instruction , 2007, SIGCSE.

[7]  Lynn Lambert,et al.  Computer Science in New Zealand high schools , 2010, ACE '10.

[8]  M A Sinclair,et al.  Questionnaire design. , 1975, Applied ergonomics.

[9]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[10]  Ursula Fuller,et al.  Is Bloom's taxonomy appropriate for computer science? , 2006, Baltic Sea '06.

[11]  Judith Bell,et al.  教育与社科研究入门指南(第三版) = Doing Your Research Project , 1999 .

[12]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[13]  Robert F. Cohen,et al.  IT problem solving: an implementation of computational thinking in information technology , 2012, SIGITE '12.

[14]  Enda Dunican,et al.  A Framework for Evaluating Qualitative Research Methods in Computer Programming Education , 2005, PPIG.

[15]  Peter J. Denning,et al.  Computing is a natural science , 2007, CACM.

[16]  Richard E. Mayer,et al.  Learning to program and learning to think: what's the connection? , 1986, CACM.

[17]  Chris Stephenson,et al.  Bringing computational thinking to K-12: what is Involved and what is the role of the computer science education community? , 2011, INROADS.

[18]  Benjamin S. Bloom,et al.  A Taxonomy for Learning, Teaching, and Assessing: A Revision of Bloom's Taxonomy of Educational Objectives , 2000 .

[19]  Jeff Kramer,et al.  Is abstraction the key to computing? , 2007, CACM.

[20]  Anders Berglund,et al.  What does it take to learn 'programming thinking'? , 2005, ICER '05.

[21]  Robert H. Seidman,et al.  The Effects of Learning a Computer Programming Language on the Logical Reasoning of School Children. , 1981 .

[22]  Raymond Lister On blooming first year programming, and its blooming assessment , 2000, ACSE '00.

[23]  L. Connelly Grounded theory. , 2013, Medsurg nursing : official journal of the Academy of Medical-Surgical Nurses.

[24]  Robert McCartney,et al.  Commonsense computing: what students know before we teach (episode 1: sorting) , 2006, ICER '06.

[25]  George H. L. Fletcher,et al.  Thinking about computational thinking , 2009, SIGCSE '09.

[26]  E. Ackermann Piaget ’ s Constructivism , Papert ’ s Constructionism : What ’ s the difference ? , 2001 .

[27]  Janet Carter,et al.  Teaching Delivery Issues: Lessons from Computer Science , 2002, J. Inf. Technol. Educ..

[28]  Susanne E. Hambrusch,et al.  Introducing computational thinking in education courses , 2011, SIGCSE.

[29]  Peter J. Denning Ubiquity symposium: What have we said about computation?: closing statement , 2011, UBIQ.

[30]  Mark Guzdial,et al.  A multi-national, multi-institutional study of assessment of programming skills of first-year CS students , 2001, ITiCSE-WGR '01.

[31]  Tony Becher,et al.  Academic Tribes and Territories Intellectual enquiry and the culture of disciplines SECOND EDITION , 2001 .

[32]  P. M. Hendryx-Bedalov,et al.  Ethnography , 1998 .

[33]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[34]  Anselm L. Strauss,et al.  Basics of qualitative research : techniques and procedures for developing grounded theory , 1998 .

[35]  Raymond Lister,et al.  Not seeing the forest for the trees: novice programmers and the SOLO taxonomy , 2006, ITICSE '06.

[36]  Raymond Lister,et al.  Relationships between reading, tracing and writing skills in introductory programming , 2008, ICER '08.

[37]  Lauri Malmi,et al.  Characterizing research in computing education: a preliminary analysis of the literature , 2010, ICER '10.

[38]  B. Glaser Constructivist grounded theory? Forum Qualitative Social Research, . , 2002 .

[39]  J. Biggs,et al.  Teaching for Quality Learning , 2007 .

[40]  Nathan Rountree,et al.  Predictors For success in studying CS , 2004 .

[41]  Antony Bryant,et al.  Grounded Theory in Historical Perspective: An Epistemological Account , 2007 .

[42]  Marc Roper,et al.  Investigating and improving the models of programming concepts held by novice programmers , 2011, Comput. Sci. Educ..

[43]  Andrew K. Lui,et al.  Saving weak programming students: applying constructivism in a first programming course , 2004, SGCS.

[44]  Colin J. Fidge,et al.  Further evidence of a relationship between explaining, tracing and writing skills in introductory programming , 2009, ITiCSE.

[45]  Lorin W. Anderson,et al.  OBJECTIVES, EVALUATION, AND THE IMPROVEMENT OF EDUCATION , 2005 .

[46]  Kevin F. Collis,et al.  Evaluating the Quality of Learning: The SOLO Taxonomy , 1977 .

[47]  J Sixsmith,et al.  Ethical Issues in the Documentary Data Analysis of Internet Posts and Archives , 2001, Qualitative health research.

[48]  R. Livingstone,et al.  Adult Education , 1938, Nature.

[49]  Orit Hazzan,et al.  Reducing Abstraction in High School Computer Science Education: The Case of Definition, Implementation, and Use of Abstract Data Types , 2008, JERC.

[50]  Jeannette M. Wing An introduction to computer science for non-majors using principles of computation , 2007, SIGCSE.

[51]  Jens Bennedsen,et al.  Abstraction ability as an indicator of success for learning computing science? , 2008, ICER '08.

[52]  Jeffrey Forbes,et al.  (Re)defining computing curricula by (re)defining computing , 2010, SGCS.

[53]  Alison Wolf,et al.  Review of Vocational Education - The Wolf Report , 2011 .

[54]  Tony Clear,et al.  An Australasian study of reading and comprehension skills in novice programmers, using the bloom and SOLO taxonomies , 2006 .

[55]  Carsten Schulte,et al.  What do teachers teach in introductory programming? , 2006, ICER '06.

[56]  Peter Hubwieser,et al.  Minimally invasive programming courses: learning OOP with(out) instruction , 2011, SIGCSE '11.

[57]  Sue Fitzgerald,et al.  Strategies that students use to trace code: an analysis based in grounded theory , 2005, ICER '05.

[58]  Ursula Fuller,et al.  Developing a computer science-specific learning taxonomy , 2007, ACM SIGCSE Bull..