Computational Thinking Computational thinking: A problem-solving approach that borrows techniques from computer science, notably abstraction, problem decomposition and the development of algorithms. Computational thinking is applied to a wide variety of problem domains and not just to the development of computer systems. Decomposition: The breaking down of a problem into smaller parts that are easier to solve. The smaller parts can sometimes be solved recursively; that is, they can be run again and again until that part of the problem is solved. Question 1 Think of some other techniques from computer science that translate into real-world problem solving. Using databases to store information – then using queries to easily find it. Question 2 Consider the advantages of each level of detail given in this example. When would you use each? A friend is travelling to visit you at your home. You need to explain how to get there. Consider the following approaches: 1) Get the train to Central Station, then get a taxi to 24 Acacia Avenue. 2) Get the train to Central Station, then get the number 23 bus. Get off the bus after six stops, walk down Back Street, take the second right into Acacia Avenue. Number 24 is 100 metres along on the right. In approach 1, we are relying on someone else to get us to 24 Acacia Avenue. In effect the taxi driver will follow the directions in approach 2. We would use this approach when the friend has other things to do as well as follow directions. Or when the friend is not very good at following directions. Approach 2 is much more detailed. This would be used in a case where precise instructions are needed. Instructions which are so detailed often mean that the outcome will be very precise. Question 3 A decimal number such as 21 can be decomposed into its separate digits; that is 2*101 + 1*100 a) Decompose the binary number 10000001 1*28 + 1*20 b) Decompose the decimal equivalent of binary 10000001 Decimal equivalent is 129: 1*102 +1*101 + 1*100 c) Decompose the hexadecimal equivalent of the binary 10000001 Hexadecimal equivalent is 81: 8*161 + 1*160 Question 4 What is the end condition in the binary search implementation given on this page? Mid = value