Core concepts of computational thinking John F ...

34 downloads 8149 Views 232KB Size Report
range of processes including search and statistical data analysis. We are ... Business utilises data analysis software to recognise patterns in customer behaviour.
Int. J. Teaching and Case Studies, Vol. 4, No. 1, 2013

1

Core concepts of computational thinking John F. Sanford School House Lane and Henry Avenue, Philadelphia University, Philadelphia, PA, 19144-5497, USA Fax: (215)951-2652 E-mail: [email protected] Abstract: ‘Computational thinking’ has become a recognised approach to gaining knowledge and to problem-solving that has received much attention in the last 15 years. Exact descriptions of the art are still in process. This is a new concept which has evolved in association with the power of modern electronic computers though it does not mandate computer use. It experiences the usual delay in implementation of new concepts. This paper presents detailed approaches for implementing computational thinking in secondary schools and post-secondary education. Keywords: computational; analytic; solutions; spread-sheets; data-arrays; creative; information; thinking. Reference to this paper should be made as follows: Sanford, J.F. (2013) ‘Core concepts of computational thinking’, Int. J. Teaching and Case Studies, Vol. 4, No. 1, pp.1–12. Biographical notes: John F. Sanford holds a Doctorate in Electrical Engineering from Yale University in New Haven Connecticut, USA. He is a Senior Professor of Information Systems at Philadelphia University. He is the former Director of the MBA programme and former Dean of the School of Business Administration. He pioneered development of a computing centre for the School of Business Administration during the early days of electronic computers in the 1970s. He has been responsible for development of the early computer management and later management information systems programme at the university.

1

Background

During the last decade the concept of computational thinking has engendered notice on a broad front including popular media as well as professional media. Wikipedia supplies a definition. Other authors have discussed it from the aspect of kindergarten to high school and beyond. One can find elementary and high school curricula prepossessing a wide variety of approaches, some making use of high-level computer-programming languages. Google presents a complete set of lesson plans on the topic of computational thinking. These include teacher editions, classroom-ready student lessons and examples, and applicable Python programmes (Google, 2011). Some authors suggest introducing children to computer-related terminology through comparisons with day to day activity,

Copyright © 2013 Inderscience Enterprises Ltd.

2

J.F. Sanford

such as caching being similar to storing items in your backpack and long term storage similar to items stored in your home bedroom (Wing, 2007). Certainly computational thinking impinges on the well-recognised concept of informatics. According to Indiana University (2011) “Computing education is more than learning how to design applications or manage data. It is learning how to think about, break down, and solve complex problems, from balancing execution time and memory usage in a new application to finding a way to stop global warming or protect an airport from terrorists”. Wikipedia (2010) described computational thinking as, “a new way of solving problems that gets its name because it uses many of the same techniques used by computer science”. According to Wikipedia, Seymour Papert was first to use the phrase and did so in 1996. This makes the general concept only a decade and one half old and as might be expected the exact confines of ‘computational thinking’ are still in formative stage. Different proponents find different emphasis depending upon their own ethos and the intended audience. It is clear that most proponents of computational thinking believe that, like Gaia, it is a way of thinking leading to problem-solving and a better understanding of ourselves and our environment. Not all insist that the computer itself is an integral player in the process. But the most widely held view is that the computer’s computational capability is endemic to the process. The skill may indeed have a wide range of applications. According to Sudan (2010) “Computational thinking makes it possible for transplant surgeons to realize that more lives can be saved by optimizing the exchange of organs among pools of donors and recipients. It enables new drug designs to be analyzed so that they are less likely to create drug-resistant strains of diseases. Artists, when given the tools to think and express themselves computationally, can create totally new modes of human experience. Users of the internet, when empowered with computational thinking, can demystify privacy technologies and surf the web safely”. The list of attributes appears inexhaustible and one might suspect the possibility that the case is overstated. Professional notice is exemplified by Carnegie Mellon University which has created the Center for Computational Thinking and offers sponsorship for ‘Probes’ (2010, 2011) which they describe as, “experiments that apply novel computing concepts to problems to show the value of computational thinking”.

2

Fundamental components

Ater-Kranov et al. (2010) presented results from several opinion polls covering a range of abilities and skills characterising computational thinking. The following is a list abilities/skills which they considered. a

using critical thinking

b

breaking a task down into a series of distinct steps

c

using logic, mathematics and abstraction to solve problems

d

applying reasoning to algorithmic and heuristic solutions to problems

e

using logical processes with computing technology

Core concepts of computational thinking f

understanding limitations of generalised solution

g

modelling problems and calculating solutions

h

implementing and then interpreting a solution vis-à-vis the original problem

i

generalising a single observation or solution to explain multiple instances

j

applying algorithmic approaches to analyse computation process

k

applying recursive thinking

l

identifying and weighing cost-benefit tradeoffs of different solutions

m

mathematical modelling.

3

Lu and Fletcher (2009) developed some instructional concepts for grades 3 through post high school, complete with examples. These concepts included… •

algorithmic notions such as flow control



skills for abstracting and representing information



skills for evaluating properties of processes

Their examples included… •

iteration



process ordering



evaluating graphical information



minimising complexity through assembly line processes



concept of state changes



recursion



non-determinism and educational reasoning.

As might be expected in a field scarcely 15 years old, attempts at defining computational thinking cover a wide range. All authors seem to agree that many of the skills listed existed prior to the electronic computer and are not exclusive to that device. Most also seem to agree that computer programming plays some part in the associated kills. And of course as pointed out by Davis and Rebelsky (2007), the first concept of computer science is probably ‘algorithms’.

3

Computational thinking for everyone

General computational thinking philosophy claims that every child should be presented with computational thinking concepts just as they are presented with reading, writing, and arithmetic. If computational thinking relates to utilisation of the vast new resource of electronic computing it is proper to ask what may be the future of electronic computing. Computer designers and programmers use human thinking mechanisms as a guide for sweeping new approaches to artificial-intelligence systems. Conversational

4

J.F. Sanford

artificial-intelligence engines regularly compete in the Turing test. IBM’s Watson has competed very successfully on the television show Jeopardy. A window of 50 years is difficult to envision in a field with nearly exponential growth. We here concentrate on the more immediate window of the next generation. Today electronic computing is already an integral part of our daily life. A large percentage of the population of industrialised nations has daily contact with social networks, cell phones, and GPS devices to guide their travels. They make use of software for locating desired products, information they need, friends with whom they have lost contact, or even people whose acquaintance they would like to make. The growing prospect of pervasive computing suggests that electronic computing capability will never be far away. There is strong evidence that in the near term people young and old should be prepared to derive maximum benefit from human-computer interface. As students have progressed from use of logarithm tables and slide rules to calculators they may be expected to progress to spreadsheet calculation. The spreadsheet is a computer programme. Using it effectively requires some degree systems analysis. Having said this it is worthy of note that achieving reality for the vision is more easily said than done. Cell phones and social networking sites have been most successful where they have exploited existing human behaviour and ambitions. A campaign to alter the way humans think and approach problems presents another situation. Textbooks at all levels avoid radical changes probably because the educators using them tend to make only incremental changes in their behaviour. They are often convinced that because they understand some numerical or manual process that their way is the only way of providing a deep understanding of underlying reality. This paper suggests that while there is much interest, delivering actual performance is difficult. Analytic thinking and mathematical thinking in general require a little practise. Like learning the piano, one can play chopsticks with only a few minutes of instruction. ‘Beer Barrel Polka’ requires a little practise. Some folk will never reach Beethoven. Computational thinking belongs with the class of capabilities that include mathematics and analysis. Within this setting it involves making use of the computer in ways that augment human thinking. Human-machine interaction is an integral requirement. The level of such interaction may be as simple as working interactively with a spreadsheet or as complex as working with learning machines and artificial intelligence engines. Principal characteristics of this human-machine interaction would include: Use of the analytic process to view problem solutions as steps or parts; thinking in terms of blocks of data; the ability to visualise alternative results; and the ability to visualise sensitivities to variation of problem parameters. The paper looks more narrowly at those implications and methodologies closely related to the growing presence of electronic computing from which, after all, ‘computational thinking’ takes its name. We might think of them as core concepts. We ask then what features, in the large perspective, characterise the new capabilities offered by electronic computers. What features are new enough that they would present an added dimension to the collection of skills one might wish to own? The following list is suggested and these topics will be considered in sequence. 1

Information solutions present themselves because computers are excellent at storing and retrieving almost overwhelming quantities of data with extreme speed. They easily perform previously unimagined feats of extracting information from

Core concepts of computational thinking

5

assembled data. People need to think of the world in terms of information available almost everywhere. This is not really a new concept but one made infinitely more attractive by the electronic computer. 2

Analytic solutions take a new form in accordance with machine capabilities. Such forms involve thinking of a problem as a set of performance blocks. These blocks may have the form of sequential logic so it would be helpful to envision problem solutions as humans have heretofore done but in addition consider solutions of the same problems using computer stepwise logic: a sequence b loop c branches on observable features. Not all performance blocks interact sequentially. Simultaneous interactions may be and are modelled on spreadsheets which have become a ubiquitous tool for business and science. The sheer speed of analytic processing makes available iteration and simulation in place of paper and pencil logical solutions.

Electronic computation should be viewed as a flexible tool to aid in the thinking process. It is an integral ‘partner’ in the problem solving methodology. So, using established computer programmes that present answers to predefined questions is certainly valuable but only peripheral to computational thinking. 1

computer computation must not be viewed as an ‘add on’ alternative to conventional approaches

2

computational thinking approaches should be flexible

3

computational thinking approaches should incorporate the human machine interface exclusive of previously accepted methodologies

4

problem parameters should be in plain sight and available for change

5

answers to ‘What If’ questions should be available

6

the electronic computer as an inherent part of some of these steps

7

the solution oriented person utilises the electronic aid as an extension of his or her own thinking.

The prevalence of cell phones and electronic games among the very young suggests that it would be proper to introduce concepts of computational thinking at an early age. Where would this begin? With arithmetic, perhaps not, but soon thereafter. The author’s experience with college students indicates that many employ thought processes that are ‘holistic’ and are unaccustomed to sequential logic. While both approaches have merit, computational thinking is a stretch for many.

4

Information solutions

Stored data and information has always been of value to human kind. Currently, overwhelming quantities of data are stored in electronic media. Computers are employed

6

J.F. Sanford

to extract considerable amounts of information from such vast stores. This represents a range of processes including search and statistical data analysis. We are aware of work by Google and others to quantify visual images and develop text mining. Business utilises data analysis software to recognise patterns in customer behaviour and in retail purchases. Pattern recognition is finding experimental application in medical diagnosis and responses to specific drugs. Computer analysis is used for predictive forecasting, and so on. Persons who are not computer scientists need to recognise that such information might be available and how to utilise it. If a knowledge worker recognises that some information may be available then he or she will take steps to insure that required data is obtained and retained. And, they will investigate computer analysis available for extracting said information. Imagination and vision are required to recognise opportunities. Students in early grades should be encouraged to look around them. How much information is there in the way leaves fall in the autumn? What factors might influence this? Could such factors be average temperature, maximum temperature, average time of sunshine, etc.? Some of these things may not be important. How would one find the important ones? This last question is not trivial. One is never too young to be inquisitive. Children are naturally so and probably accustom themselves to defer their inquisitive nature as they are presented with more learn-by-rote methodologies in school. Programmes of study in literature can enhance observation abilities if they include discussion and analysis of the literary works. Approaching situations from the point of view of observation and information content would be preparation for solutions that may be available from electronic computers through programmes that already exist or will exist. Students should be encouraged to review possible solutions involving data analysis that are already available. One example would be weather prediction. Further examples would be newspaper articles that present population percentages or other data. What software would be used to find averages of large amounts of data? They should be encouraged to think of questions and then look for computer software that already exists to produce answers. We are approaching a time when all secondary students will have personal computers available to them. The student should certainly be introduced to the spreadsheet and/or other software. In later life, knowledge workers will want to be adept at utilising existing capabilities. Being aware that computer solutions are available on various topics just as magazine articles and books are available on different topics. One exercise that is applicable to very young and to college level students alike is evaluating scatter plots. These are X-Y plots of data points and students can look at them to see what information they contain. A sample appears in Figure 1. Young students may place a ruler along the dots and guess how sales increase with attendance. In later years when students have knowledge of the equation for a straight line, the spreadsheet can be used to place a regression line on the chart. Other similar scatter charts may be used to see the range of data, the maximum and minimum values, and other characteristics such as ‘bunching’.

Core concepts of computational thinking

7

Figure 1 Attendance (see online version for colours)

There is a merger of informational thinking and analytical thinking. Consider the time-worn example of selling apples. What are the information requirements needed to determine the profit or amount of money that one has after a day’s operation Students that are not ready to solve problems of this complexity can still consider the information needed. See Figure 2. Thinking of information requirements prior to presenting a predetermined algorithm prepares the way for computational thinking. Figure 2 Information requirements

8

J.F. Sanford

5

Analytic solutions

Analytic processes may take on new forms as computers progress more into the realm of artificial intelligence. For the immediate present it is valuable to think of the problem in a rectilinear way and to separate a problem of any reasonable size into blocks. This after all is the essence of analysis. And it is important provide clear definitions. Define the blocks. How do they go together? What data flows from one to another? Computer programmes and spreadsheet programmes are fashioned this way so they are excellent guides. The future may find programmers considering parallel lines of solution for use in multiprocessor computers. However, the non-professional programmer will most likely still think of operations in a sequential way. Returning to the apples problem, one must first identify constants: cost of 1 bulk unit, number of apples in a bulk unit, number of bulk units purchased for resale, cost of other items, price charged for one apple, and number of apples sold. For example… Table 1

Identified constants

Description

Name

Value

Apples per basket

Per basket

12

Cost of a basket

Basket cost

$4.00

Baskets

1

Baskets purchased Other costs

Other

$0.50

Price per apple

Price

$0.73

Apples sold

Sold

10

The spreadsheet is the vehicle of choice for problem layout and calculation. Teachers at the elementary level may feel that by-hand calculations are needed to introduce students to the use of arithmetic. Computational thinking requires only that the layout be ordered and blocks identified. The ‘Name’ column is shown for use in a spreadsheet and omitted when the work is done by hand. Maintaining the rectilinear orientation is indicative of computational thinking. After declaring constants and variables one defines processing blocks as net cost, total cost, income, and profit. If the problem is intended for repetitive application such as day-after-day sales then constants such as apples per basket remain defined at the start but variables such as apples sold will appear in line sequence along with the processing blocks. Then each line is a new day. Preserving the orderly arrangement improves logical thinking even if the use of electronic computing is not contemplated. Spreadsheets allow cells to be named. They also allow columns and rows to be named. This corresponds to variable and constant names that would be employed in a computer programme. This capability should be utilised so that the student can write = Baskets*Basket cost, and = Sold*Price. This approach has more meaning than = $C$3*$C*2.

Core concepts of computational thinking Table 2

Orderly arrangement of a problem

Description Apples per basket Cost of a basket Other costs Price per apple Day

9

Baskets

Sold

1

10

1

Name

Value

Per basket Basket cost Other Price

12 $4.00 $0.50 $0.73

Net cost

Total cost

Income

Profit

Inventory

2

6

Other spreadsheet examples

The spreadsheet provides the perfect platform for learning systems, iteration, simulation, statistics, graphical analysis, and much else. Lu and Fletcher (2009) provides excellent examples of alternative thinking about common analytic activities such as multiplication. They point out that one can think if multiplication as successive addition. In fact, mechanical calculators did just that. This demonstrates computational thinking in the sense of iteration and simulation. The algebraic solution of equations is very important. Computational thinking should not interfere with that. But it can augment the approach and demonstrate iterative solutions. Consider the following example. 3X + 3 = 33 What is X Very definitely the student should use the algebraic solution: 3X = 30 X = 10 But there is also the iterative approach using a spreadsheet. Again define X and name just as one would have to do in a computer programme. The result might look like the following. X

3

= 3*X + 3

33

When =3*X + 3 is written in its cell the number 12 will appear. Twelve is not the desired answer which is 33 and is written in the adjacent cell for reference. Increase X in steps until 33 is reached. Then the value for X that solves the equation appears in its own cell. The following example will have the value 15 in the cell with the formula = 3*X + 3, still not 33. X

4

= 3*X + 3

33

10

J.F. Sanford

But perhaps in some problem X is not an integer. Spreadsheets provide a ‘Goal Seek’ function that will iterate for you and deliver decimal values. The purpose is to demonstrate that at times computer simulation or iteration may be used to provide answers. Often, indeed quite often, problem solutions viewed through computer-related approaches are quite different from solution approaches previously available. The educational system may be required to embrace two methodologies.

7

Arrays

Thinking in terms of data arrays is not an everyday occurrence but it is an important feature of computational thinking. Perhaps it is one of the most important features. Computers do not inherently solve equations by successive substitution or successive row subtraction to eliminate variables. These are good human practises, but they are not easily translated into computer solution algorithms although the author has used them for linear programming solutions. Arrays and vectors are often preferred representation for complex problems. They are not intuitive for humans except for those with spatial relation abilities but the advantages suggest that introduction at the high school level would be valuable. Students need to know classical algebraic methods for solution simultaneous equations. Extension beyond this to the matrix equation and solution by matrix inversion would provide a valuable new way of simplifying the problem. The method would lose much of its daunting nature through employment of the spreadsheet to invert and multiply matrices.

8

Creative change

The first step in moving computational thinking into the secondary school system and indeed even into the post high school system lies in infusing technology into the existing (and even future) population of educators. Unfortunately, as previously mentioned textbook revisions seldom constitute a re-write. New technology often appears as an ‘add on’. As Regev et al. (2006) suggest, creative change can be perceived as a menace to established order and, as such, is difficult to accept by the target community. It may be seen from a brief review of typical university text books such as Bowerman et al. (2011) and Black (2010) in statistics, that computational thinking is not presented as the fundamental precept. Nearly, all texts show that the authors possess extensive knowledge of computer capabilities. However, this information will usually be in appendices to each chapter which may discuss computer software from varying sources that are available for use with the problems and methods shown in the text. But the primary textual presentation follows the older approach known to be familiar to the older educators. For example, college statistics books in introductory statistics present problems involving the normal distribution in a way favouring or even requiring normalisation through the use of the Z function, a process that has no valid use except that it has historical significance and is familiar to statisticians. The usual text approach for establishing a confidence interval for the true mean (µ) is to find a value Zα/2 by using a Z table. Zα//2 is the value of Z having a probability equal to alpha/2 or (1 minus the required confidence)/2. Then the upper and lower limits of the

Core concepts of computational thinking

11

value of μ will be given as X ± Zα /2 (σ / √ n). This requires interpolation of Zα/2 from the Z table and use of a hand-held calculator. To repeat for a series of confidence levels the entire process must be repeated. Displaying the resultant region as a function of confidence is not easily produced. None of these calculations would be required with the computational thinking approach. The computer is an adjunct to the thought process. It will do the computational work without any need for calculator, paper, or pencil or chart interpolation. And it can present a range of results as easily as a single result. The student’s job is to think. Figure 3 shows confidence limits for population mean for a range of alphas (α). In this problem, a sample of 120 observations has a mean of 23 and standard deviation of 1.3. Because the number of observations is large one assumes the population standard deviation is also 1.3. Again all the problem parameters are in plain view. Any parameter can be changed with resultant change in the calculations. For want of any better term, CS is used for σẍ. Figure 4 shows the formulas in the cells. The naming feature is used so that parameter names appear in the formulas. Figure 3 Example spread sheet solution (see online version for colours)

Figure 4 Formulas used by the spread sheet (see online version for colours)

Methods employing computational thinking offer flexibility, ease of development, and 14 place accuracy in a spreadsheet application (although some people argue about the accuracy of Microsoft’s algorithms for statistics but Office 2010 is quite good).

References Ater-Kranov, A., Bryant, R., Orr, G., Wallace, S. and Zhang, M. (2010) ‘Developing a community definition and teaching modules for computational thinking: accomplishments and challenges’, October 2010 SIGITE ‘10: Proceedings of the ACM Conference on Information Technology Education. Black, K. (2010) Business Statistics for Contemporary Decision Making, ISBN 978-0470-40901-5, John Wiley & Sons, 111 River Street, Hoboken, New Jersey 07030.

12

J.F. Sanford

Bowerman, B., O’Connell, R. and Murphree, E. (2011) Business Statistics in Practice, ISBN 978-0-340183-6, McGraw-Hill – Irwin, 1221 Avenue of the Americas, New York, NY 10020. Davis, J. and Rebelsky, S. (2007) ‘Food-first computer science: starting the first course right with PB&J’, SIGCSE ‘07 Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education, ACM New York, NY, USA. Google (2011) Exploring Computational Thinking, available at http://www.google.com/edu/computational-thinking/lessons.html (accessed on 14 June 2011). Indiana University (2011) Baccalaureate in Informatics, Indiana University, Bloomington, IN 47408, available at http://www.soic.indiana.edu/undergraduate/index.shtml (accessed on 16 June 2011). Lu, J. and Fletcher, G. (2009) ‘Thinking about computational thinking’, SIGCSE ‘09 Proceedings of the 40th ACM Technical Symposium on Computer Science Education, ACM New York, NY, USA. Probes (2010, 2011) Center for Computational Thinking, Carnegie Mellon University. Regev, G., Gause, D. and Wegmann, A. (2006) ‘Creativity and the age-old resistance to change problem in RE’, 14th IEEE International Requirements Engineering Conference (RE'06). Sudan, M. (2010) Computational Thinking Seminars, Microsoft New England Research Center, 18 February, 4:00 pm, 6115 Gates & Hillman Centers. Wikipedia (2010) Wikipedia, the Free Encyclopedia, available at http://www.wikipedia.org (accessed on 27 February 2010). Wing, J. (2007) ‘Computational thinking’, available at http://www.cs4hs.cs.washington.edu/content/Resources/SessionMaterials/bin-o-slides/ (accessed on 14 June 2011).