Teaching programming with computational and informational thinking

2.50
Hdl Handle:
http://hdl.handle.net/10547/346506
Title:
Teaching programming with computational and informational thinking
Authors:
Michaelson, Greg
Abstract:
Computers are the dominant technology of the early 21st century: pretty well all aspects of economic, social and personal life are now unthinkable without them. In turn, computer hardware is controlled by software, that is, codes written in programming languages. Programming, the construction of software, is thus a fundamental activity, in which millions of people are engaged worldwide, and the teaching of programming is long established in international secondary and higher education. Yet, going on 70 years after the first computers were built, there is no well-established pedagogy for teaching programming. There has certainly been no shortage of approaches. However, these have often been driven by fashion, an enthusiastic amateurism or a wish to follow best industrial practice, which, while appropriate for mature professionals, is poorly suited to novice programmers. Much of the difficulty lies in the very close relationship between problem solving and programming. Once a problem is well characterised it is relatively straightforward to realise a solution in software. However, teaching problem solving is, if anything, less well understood than teaching programming. Problem solving seems to be a creative, holistic, dialectical, multi-dimensional, iterative process. While there are well established techniques for analysing problems, arbitrary problems cannot be solved by rote, by mechanically applying techniques in some prescribed linear order. Furthermore, historically, approaches to teaching programming have failed to account for this complexity in problem solving, focusing strongly on programming itself and, if at all, only partially and superficially exploring problem solving. Recently, an integrated approach to problem solving and programming called Computational Thinking (CT) (Wing, 2006) has gained considerable currency. CT has the enormous advantage over prior approaches of strongly emphasising problem solving and of making explicit core techniques. Nonetheless, there is still a tendency to view CT as prescriptive rather than creative, engendering scholastic arguments about the nature and status of CT techniques. Programming at heart is concerned with processing information but many accounts of CT emphasise processing over information rather than seeing then as intimately related. In this paper, while acknowledging and building on the strengths of CT, I argue that understanding the form and structure of information should be primary in any pedagogy of programming.
Affiliation:
Heriot-Watt University
Citation:
Michaelson, G. (2015) 'Teaching programming with computational and informational thinking'. Journal of pedagogic development 5 (1).
Publisher:
University of Bedfordshire
Journal:
Journal of pedagogic development
Issue Date:
Mar-2015
URI:
http://hdl.handle.net/10547/346506
Additional Links:
http://www.beds.ac.uk/jpd/volume-5-issue-1-march-2015/teaching-programming-with-computational-and-informational-thinking
Type:
Article
Language:
en
Series/Report no.:
Volume 5; Issue 1
ISSN:
2047-3265
Appears in Collections:
Journal of Pedagogic Development

Full metadata record

DC FieldValue Language
dc.contributor.authorMichaelson, Gregen
dc.date.accessioned2015-03-12T09:44:55Zen
dc.date.available2015-03-12T09:44:55Zen
dc.date.issued2015-03en
dc.identifier.citationMichaelson, G. (2015) 'Teaching programming with computational and informational thinking'. Journal of pedagogic development 5 (1).en
dc.identifier.issn2047-3265en
dc.identifier.urihttp://hdl.handle.net/10547/346506en
dc.description.abstractComputers are the dominant technology of the early 21st century: pretty well all aspects of economic, social and personal life are now unthinkable without them. In turn, computer hardware is controlled by software, that is, codes written in programming languages. Programming, the construction of software, is thus a fundamental activity, in which millions of people are engaged worldwide, and the teaching of programming is long established in international secondary and higher education. Yet, going on 70 years after the first computers were built, there is no well-established pedagogy for teaching programming. There has certainly been no shortage of approaches. However, these have often been driven by fashion, an enthusiastic amateurism or a wish to follow best industrial practice, which, while appropriate for mature professionals, is poorly suited to novice programmers. Much of the difficulty lies in the very close relationship between problem solving and programming. Once a problem is well characterised it is relatively straightforward to realise a solution in software. However, teaching problem solving is, if anything, less well understood than teaching programming. Problem solving seems to be a creative, holistic, dialectical, multi-dimensional, iterative process. While there are well established techniques for analysing problems, arbitrary problems cannot be solved by rote, by mechanically applying techniques in some prescribed linear order. Furthermore, historically, approaches to teaching programming have failed to account for this complexity in problem solving, focusing strongly on programming itself and, if at all, only partially and superficially exploring problem solving. Recently, an integrated approach to problem solving and programming called Computational Thinking (CT) (Wing, 2006) has gained considerable currency. CT has the enormous advantage over prior approaches of strongly emphasising problem solving and of making explicit core techniques. Nonetheless, there is still a tendency to view CT as prescriptive rather than creative, engendering scholastic arguments about the nature and status of CT techniques. Programming at heart is concerned with processing information but many accounts of CT emphasise processing over information rather than seeing then as intimately related. In this paper, while acknowledging and building on the strengths of CT, I argue that understanding the form and structure of information should be primary in any pedagogy of programming.en
dc.language.isoenen
dc.publisherUniversity of Bedfordshireen
dc.relation.ispartofseriesVolume 5en
dc.relation.ispartofseriesIssue 1en
dc.relation.urlhttp://www.beds.ac.uk/jpd/volume-5-issue-1-march-2015/teaching-programming-with-computational-and-informational-thinkingen
dc.subjectcomputational thinkingen
dc.subjectinformational thinkingen
dc.subjectprogrammingen
dc.subjectteachingen
dc.titleTeaching programming with computational and informational thinkingen
dc.typeArticleen
dc.contributor.departmentHeriot-Watt Universityen
dc.identifier.journalJournal of pedagogic developmenten
This item is licensed under a Creative Commons License
Creative Commons
All Items in UOBREP are protected by copyright, with all rights reserved, unless otherwise indicated.