Keywords

1 Introduction

Seymour Papert initially introduced the term computational thinking (CT) in programming computers with LOGO for K-12 in 1980 in his book Mindstorms [11], but with problem-solving in mathematics in his mind. On the other hand Papert’s problem-solving processes were influenced by Poyla’s work from the 1950 s in How to solve it [12] who described how mathematical problems can be systematically approached and solved by students. The current movement in CT was initiated when Wing introduced the term again in 2006 [17]. Despite some similarities between Wing’s and Papert’s definition, Wing emphasized on problem-solving and Papert focussed on using CT to forge ideas [11]. Still, both didn’t necessarily involve a computer in the process [6, 9]. Considering this, we identified in recent literature, CT is for the most part either understood as umbrella term for learning coding concepts as e.g. loops, variables, recursions or as a term describing a problem-solving approach as used in computer science. Just as Nickerson et al. argued in [10]: Definitions of CT vary, there is, however, only little consensus in a definition for CT and so far a common understanding can only be identified in Wing’s view [19]: CT is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent. Barr and Stephenson argued in [2] referring to Wing [17], that CT includes seeking algorithmic approaches. This underlines that algorithmic thinking is part of CT and a term for composing different approaches, techniques, and systematics used in computer science for solving problems. Considering Lee, who argued in [8] that algorithmic thinking is a part of CT and further Barr, where CT is defined as the seeking algorithmic approaches to problem domains [2] in this paper we are focusing on the algorithmic part of CT. Even if the term CT is popular these days, so broad and deep it has been developed in history over decades. However, Tedre and Denning further described in [14] that some CT strategies can be applied also in different contexts, but they also claim, that such transfer has never been substantiated. Taking Yadav’s thought, that CT can be integrated for everyday life challenges into account [21], this paper introduces an approach for combining computer science algorithms with real-life applications (as e.g. finding the shortest path to the school) within the theoretical framework of CT aimed at increasing the students’ algorithmic problem-solving awareness by addressing these questions: What is a suitable step-by-step computational-thinking problem-solving process for finding algorithms in real-life applications? How can such process put in practice classroom teaching at high-school? The paper is structured as follows: First we are discussing related literature and propose a framework for a CT problem-solving processes for real-life applications, then we are presenting the integration of the process in classroom practice followed by an evaluation in practice and close with a conclusion and an outlook for further work.

2 Background

2.1 Algorithms for Everyday Life Applications

Algorithms in computer science have been developed for computers but they also can address human questions of everyday life. Our motivation for finding real-life applications is based on Wing’s point of view, that techniques of computer science can support solving problems in other areas of life [17] where students identify learning as more authentic and has a strong relation to their own life. A further reason for connecting algorithms to human living was also, that this approach allows students to focus on the process of problem-solving beyond coding in a programming language. Inspired by popular ideas by Christian and Griffiths in Algorithms to Live By in [4] and scientifically confirmed in Algorithms Unplugged by Vöcking et al. [15] we selected five algorithms for an application in classroom practice: binary search, bin packing, minimal spanning tree, topological sort, and shortest path. Supposing, that the algorithms itself are known to the reader of this paper, we are presenting here the algorithms with only a brief description of the idea for an application with everyday life problems: Binary Search: When searching a CD or a book among many in a shelf, students develop a search strategy to find the item quickly. This leads to search algorithms and to the binary search algorithm in particular. Bin Packing: By asking how moving boxes can be filled up effectively with things from closets and shelves, students should find out strategies to master this systematically. The algorithms Next Fit and First Fit will describe the solution in computer science. Minimal Spanning Tree: The challenge is to connect seven islands with each other in building bridges. The distance between each bridge is known. Students have to find out the shortest possible connection to each island connecting the mainland. Solutions will lead to Prim’s and Kruskal’s algorithm. Topological Sort: Students write down a to-do list for a day and try to bring this list into order. By doing this, dependencies and preconditions will lead to the aimed algorithm for topological sorting that is used at finding one possible topological order. Shortest Path: Students work on a street map and try to identify the shortest path from home to school. The idea of selecting these algorithms was, to show in examples that solutions from complex problems in computer science can be easily transferred to challenge real-life situations as well.

2.2 Our View on Computational Thinking

Beyond all differences in definitions for CT, we identified across almost all contributions, that CT is about an approach for problem-solving in a way, that is used in computer science identified as algorithm. Wing already has stated in her refined definition of CT in [18], that CT is an approach for solving problems that draws on concepts fundamental to computing. Further, Aho described in [1] that the term CT includes algorithm-design and problem-solving techniques that can be used to solve common problems arising in computing. This is similar to Wolfram Math World’s definition of the term algorithm itself as a specific set of instructions for carrying out a procedure or solving a problem. The question arises, if there is an additional value in introducing CT or if CT is just a vague and fashionable term paraphrasing procedures already included in the term algorithm? In fact, narrowing the term CT to designing algorithms would be off its underlying idea. Selby et al. explained for instance in [13] CT should include the ability to think in abstractions, in terms of decomposition, algorithmically, in terms of evaluation, and the ability to think in generalizations. Moreover, Xu et al. described in [20] CT as a universal, not limited to computers, fundamental, not only for experts, provides mental tools for thinking processes, has rich contents and is connected to any concept of computer science, and poses deep scientific problems in providing a framework to ask meaningful scientific questions. As Yadav et. al. reminded in [21, 22] that Wing’s initial paper [17] points out that CT involves three key elements Algorithms, Abstraction, and Automation, the term CT has been grown since then to a variety of interpretations. For Lee et al. [8] CT involves defining, understanding, and abstraction. Barr et al. suggested in [2] CT involves the design of solutions, implementation of designs, testing, running analysing, reflecting, abstraction, creativity, and group problem solving. Grover and Pea [7] stated that CT should include among others abstraction, information processing, structured problem-solving decomposition as modularization, iterative recursive thinking, and efficiency. Again, for Lee et al. [8] CT involves defining, understanding, and solving problems, reasoning at multiple levels of abstraction, understanding and applying automation, and analysing the appropriateness of the abstractions made. In reference to Voogt et al. [16] who suggest, that ...we should not try to give an ultimate definition of CT, but rather try to find similarities and relationships in the discussions about CT, outcomes of our literature review resulted in a problem-solving approach which goes beyond the skills computer literacy and understanding technology and underlines the need for developing CT skills [5]. Beyond the actual problem-solving process, Barr et al. suggested in [2] also a collection of dispositions a problem-solver should hold, which will be included in our process bellow. Those are confidence, persistence, handle ambiguity, deal with open-ended problems and communication skills in team-work. From teaching practice experiences, we know that the teacher’s awareness of such dispositions at the students can be crucial for the success of learning and added them as additional part of the process.

2.3 Problem-Solving Approach for Real-Life Challenges

The goal of our CT problem-solving process is, to improve the students’ awareness to be able to take advantage of CT problem-solving techniques to solve real-life problems. Therefore, we suggest an arranged step-by-step process for solving a problem. The process includes besides elements as abstraction, decomposition, and design of algorithm also understanding the problem at the beginning of the process and testing the solution at the end of it. 1: Understand the problem as whole and restate the problem to unveil new perspectives to support the solution process. Also, state clearly what should be achieved with the solution. This part derives from Papert’s initial ideas on CT [11], referencing to Poyla’s first problem-solving step First, you have to understand the problem in How to solve it [12]. 2: Abstract a problem in a way that helps to solve it. If we had to keep all the details in our heads, we could never get anything done. As we have described above, abstraction is mentioned as a keystone of CT and Grover et al. identified it as a core element, which differs CT from other types of thinking [7]. 3: Decompose the problem to break a hard problem up into smaller, easier ones. Decomposition involves finding structure in the problem and determining how the various components will fit together in the final solution. Doing decomposition well makes it easier to modify the solution later by changing individual components, and also enables the reuse of components in solutions to other problems. This was already suggested by Wing in [17] as modularizing a problem to make it tractable. We see the parts decomposing and abstraction are key steps for preparing the actual problem-solving process. Abstraction is a step, where parts found will be removed or reduced in its representation and decomposing is a process, where the remaining parts will be separated and clustered. 4: Design an algorithm to develop the step-by-step instructions for solving the problem. Start from what already is known and work outward from there. Make a plan how to approach to solve the problem. Selby et al. [13] relate to Wing [17] and further describe this process as a heuristic reasoning to devise a solution. 5: Test the algorithm whether a solution meets the criteria as testing and debugging as used in software development and in the context of CT suggested by Brennan et al. in [3] to smoothen not working parts of the solution. This process has been planned by us so that it can be carried out in a linear fashion step by step for solving the problem. As mentioned above, we enhanced this five-step problem-solving approach, with these dispositions, as it was suggested by Barr et al. in [2]: Confidence in dealing with complexity, Persistence in working with difficult problems, Tolerance for ambiguity, The ability to deal with open ended problems, The ability to communicate and work with others to achieve a common goal or solution. Taking this approach for a CT problem solving approach into account, in the next section we will describe, how we integrated it into classroom practice.

3 Method

In order to proof the concept, we carried out our interventions at two high-schools with two classes each. The participants (n = 75) were students between the ages of 15 and 17 from four different high-school classes at two different schools (Greenwood Laboratory School and Willard High School located in Springfield, MO, USA). As the access to high school classes was limited to 2\(\,\times \,\)2 h, we designed our lessons with a strong emphasis on your five-step problem-solving approach. Our goal was to find out, if everyday life problems can be approached systematically using techniques from computational thinking. Therefore, we planned four lessons on two days with the overall intention to let students find a solution to a problem heuristically followed by a reflection compared to the actual algorithm of computer-science. Students not only practiced their problem-solving competencies but also learned how computer science concepts can be useful and meaningful for their own life. We accompanied the classroom activities with mixed methods using a pre-/post-questionnaire and an analysis of the students’ work sheets. Even though, both schools offer computer science classes with instruction on using a computer and standard software, students of both schools received no prior computer science education with a focus on computational algorithmic thinking on a regular basis. Hence, we presumed that all participating students had similar pre-experiences with algorithmic problem-solving processes. Due to this fact, we identified all students across both schools as one entity for analysing the data. It should also be mentioned that we did not include any control groups for organizational reasons and because of the research design, which was primarily aimed at evaluating our problem-solving concept. We carried out two separate lessons (2 h each) on two different days with each of the four student groups at two schools, the first lesson introduced CT and our problem-solving approach and in the second lesson students worked on problems individually and in groups collaboratively. In order to provide students a guideline through the problem-solving process, our worksheets were distributed with a clear description of the problem and a path through the process which was the same as stated above from understanding the problem for generalizing the solution.

Fig. 1.
figure 1

Worksheet for the task “Pack your moving boxes”

3.1 Instruments

We designed two research instruments for evaluating our problem-solving process: in order to track the students’ problem-solving strategies, we designed worksheets. The worksheets had five sections, divided into the five-step problem solving process. In Fig. 1, the first two pages of a worksheet to bin-packing are depicted. The front page describes the problem to the student and recalls the five-step problem-solving process and the supportive attitudes in the column on left hand side. On the right-hand side, an exemplary part of the work-sheets shows, that students also had to sketch for each problem-solving step their ideas as mentioned above: describe the problem, abstract the problem, decompose the problem, Design the algorithm, test the solution. In order to identify differences in students attitudes towards problem-solving we distributed pre-/post- questionnaire. The questionnaire included 20 items, where each of Barr’s dispositions [2] has been assigned to four questions using a Likert-Scale from 1 ‘strongly disagree’ to 6 ‘strongly agree’.

3.2 Analysis

The analysis of the worksheets was a process of interpretation, where we evaluated our linear approach of solving the problem in going through each of the five problem-solving steps. We checked in which parts of the worksheets students were accepted as useful during the problem-solving process by reading through the worksheets and identified, which parts were not edited by the students where it was difficult for students to use it for the problem-solving process. The analysis of the questionnaire was carried out with descriptive statistics and statistical significance tests.

3.3 Classroom Lessons

The lesson plan in Fig. 2 gives an overview on the classroom intervention of day one and is based on findings of our literature research and includes all five steps from understanding the problem to generalizing the solution.

Fig. 2.
figure 2

Lesson plan day 1 and 2

We started with an introductory lecture about problem-solving, CT and algorithms. Next the teacher approached a solution together with the whole student group for the shortest path problem by going through the five-step problem solving approach introduced above. Next, each student solved the example with the minimal spanning tree and shared the solution at the end of the hour together with others in group-work. It is important to note, that the students’ attitudes required for a beneficial problem-solving process were mentioned explicitly by the teacher, who facilitated also the group-work for promoting the students’ awareness for it. On the second day, the teacher first summarized insights from the first lesson and gave a lecture on some approaches, how computer scientists try to solve problems. This included basic sorting algorithms as well as general strategies as divide-and-conquer. Students subsequently worked in groups on more difficult problems as binary search, bin packing and the topological search as described above. Finally, group-work was followed with group presentations which included a discussion on connecting solutions with the real algorithms from computer science.

Example of application: In order to underline how our CT problem-solving process works for real-life challenges in detail, we give here an example based on the worksheet as depicted above. To each problem-solving section, we describe a possible student’s answer which is based on Vocking et al. [15]. Pack your moving boxes: How can I pack moving boxes effectively? Possible solution of a student: By going through the problem-solving process, the students systematically approach the solution to the problem (very short version): Describe the problem: The challenge is to place my items into moving boxes in the most efficient way. Abstract the problem: To make it easier, I reduce the items to a geometrical representation that each part is described as block. So, a ball becomes for example a block with a edge length of its diameter. Decompose the problem: I have moving boxes with a certain size and items with different sizes and forms. Design the algorithm: First I tried different approaches in practice and extracted a general solution: 1. Sort the items by size, 2. Take the next available biggest item. 3. If the items fit into the box: Place the item into the box. Else: Open the next box. 4. Go to step 2. Test the solution: I organized a small shoe-box and some items and I evaluated my solution. It turned out, that my solution is not perfect yet as I need to many moving boxes. This example demonstrated, how the problem-solving process can be integrated for finding a solution to a problem from a real-life context by using a CT problem-solving approach leading to an algorithmic solution.

4 Results

4.1 Worksheet: Problem-Solving Process

Results showed, that students were successful in developing an approach to solutions for the problems. But they also experienced sometimes difficulties in dealing with the five-step process of solving a problem and were not always sure how each of the steps relates to the problem-solving process. For example, students were more engaged in describing the problem and designing the solution but they had difficulties to fill the worksheets for abstracting the problem, decomposing it and evaluating the solution separately. We found out, that the process of describing the problem already covered parts of the abstraction process. As in Fig. 3 it is shown, students have used different ways to solve the problem, some graphical, some using text. For instance, when students described the problem using their own words, some kind of abstraction has already taken place by most of the students. Next, the part of decomposing the problem in smaller parts apart from problem-solving was experienced as difficult and was rarely edited. Most of the time, decomposition was integrated into the design process or the evaluation process. These outcomes suggested us to reorder and reduce our problem-solving process at the worksheets in future to three steps: 1. Describe, decompose and abstract the problem, 2. Design the algorithm, and 3. Test the solution.

Fig. 3.
figure 3

Snippets of filled student worksheets

4.2 Questionnaire: Students’ Problem-Solving Attitudes

Even though, the structure of the worksheets was challenging for students, our intervention still had some impact on students’ attitudes towards computational problem solving as the pre-/post-questionnaires suggest. The results of the questionnaires showed some differences at certain items, where some of them even differed statistically significant. The items of the diagram below can be clustered in four sections, where each cluster represents a field of dispositions a problem-solver should hold as defined above. These are 1–4: Confidence in dealing with complexity, 5–8 Persistence in working with difficult problems, 9–12: Tolerance for ambiguity, 13–16: The ability to deal with open ended problems, 17–20: The ability to communicate and work with others to achieve a common goal or solution. The questionnaire was identified as reliable as all two of the measures evidenced a good reliability as Cronbach’s alpha ranged from 0.82 for the pre-test and 0.85 for post-test. As the results in Table 1 show, confidence (items 1–4) increased and item 1: “I feel anxious when I have to solve this kind of difficult problems.” had also a significant difference in the pre-test scores (M = 3.55, SD = 1.51) and post-test scores (M = 4.20, SD = 1.26); t(140) = −2.77, p = 0.006. Furthermore we identified a significant difference in the pre-test scores (M = 3.55, SD = 1.42) and post-test scores (M = 4.20, SD = 1.12) at item 4: “I feel confident in solving this kind of difficult problems.”, conditions; t(140) = −3.00, p = 0.003. Items in the second cluster of persistence in the problem-solving process (items 5–8) decreased. The third cluster tolerance for ambiguity (items 9–12) increased and there was a significant difference in the pre-test scores (M = 4.06, SD = 1.14) and post-test scores (M = 4.74, SD = 0.89) at item 10: “There is possibly only one way to solve this problem.”, conditions; t(140) = −3.59, p = 0.001. The fourth cluster on the ability to deal with open ended problems (items 13–16) increased and there was a significant difference in the pre-test scores (M = 4.94, SD = 1.51) and post-test scores (M = 5.34, SD = 1.26) at the variable “There exists a solution to this problem.”, conditions; t(140) = −2.32, p = 0.022. The fifth cluster on teamwork (items 17–20) is inconsistent in terms of that students think that the solution to a problem can be found better together (item 20) but at the same time state that too many people involved in problem solving will have a negative impact (item 17). In a nutshell, results of the questionnaires suggest that students reduced their anxiety in solving difficult problems and increased their confidence. We further conclude, that students developed their understanding for the possibility of multiple solutions.

Table 1. Aspects from students’ attitudes towards problem solving. Scales from 1 ‘strongly disagree’ to 6 ‘strongly agree’ (n = 75)

5 Discussion

This paper presented results of the project coThink - Computational Thinking which was aimed at identifying an approach for a step-by-step CT problem-solving process for real-life applications. The underlying idea was to break problem-solving techniques known from computer science down to support students’ awareness for handling real-life challenges. Based on literature research a five-step CT problem-solving approach emerged which was enhanced with dispositions a problem-solver should hold as suggested by Barr et al. in [2]. We designed lessons and material which integrated our ideas and concepts and applied it in practice at four student groups at two different schools. First experiences showed, that students were keen to develop solutions for problems in a real-life context and their approach mostly approximates an algorithmic description or even sometimes an existing algorithm of computer science. Results of the questionnaires evaluating students’ attitudes for problem-solving showed, that our intervention had some positive impact, even if it is likely that students didn’t adopt their dispositions but rather had an increased awareness which dispositions are required for CT problem-solving. Further work will also include the refinement of new worksheets, the specification of further algorithmic real-life examples and its application in classrooms. It turned out, that students had problems filling all sections of the worksheets and finding a description for each of the five problem-solving steps was perceived as confusing. In fact, only the sections Understand the problem and Design the solution were accepted and helpful in the process. Some of the students described their solution, which was supposed to part of section Abstract the problem, as part of Describe the problem. As a consequence, we further redesigned the worksheets and combined fields which will lead to three sections of the worksheets, as described above (1. Describe, abstract and decompose the problem - 2. Design the algorithm - 3. Test the solution) In essence, we reduced the five-step problem-solving approach to three steps in order to simplify the process for students to: understand - solve - analyse. In the future, we will continue refining the teaching material and the research setting for a more detailed analysis focusing more on the actual students’ problem-solving process by adding for instance think-aloud interviews as research instrument to gain more detailed insights how our approach has impact on CT problem-solving process.