Computational Thinking Skills
A1 Computational Thinking Skills
Computational thinking is the process of getting computers to help us to solve problems. To achieve that we should think about the steps needed to solve a specific problem and then use our technical skills to get the computer working on the problem.
Examples of computational thinking are daily tasks such as cooking or shopping. I need to think ahead because I may encounter a problem. If so, I would need to find ways to resolve that specific problem before the problem itself appears.
In computing, computational thinking is used to plan the final results of a specific project. For example, when developing a game, I need to start by planning the story and how I will design it before I use computer hardware and software to help me getting the work done.
Decomposition is the process of breaking down a specific problem into smaller parts that are easily manageable to be solved independently (this makes complex problems easier to be solved and large systems easier to be designed)
Through decomposition of the original task each part can be created and integrated later in the process.
For example, when making a game different people can be designing and creating the different levels of the game individually. This will be done once the needs for the game and tasks for each person have been agreed.
(Computational thinking – A guide for teachers p.8)
In computing a game is a problem that can be decomposed.
It has to be thought step by step before start making the game itself. This is when one will have to:
1. Come up with an idea
2. Create the graphics for the game
3. Program each sprite one at a time
4. Test the game
5. Debug and make improvements
This will allow different people within the same company to work on the same project at the same time. It would then be easier to achieve their goals if individual tasks are given to different people. After identifying what the game is going to be about one person will be creating graphics and others will be programming each sprite one at a time. Then the game will be tested to detect for possible errors. Lastly possible errors that were initially found will be removed those and improvements on the game will be made to deliver gamers the best experience games.
For example, mobile phones are made of different parts. The company making the phones will have a list of all the parts that have to be used to make a specific model of phone. But they will break down the manufacturing process so that one factory would be making the batteries while another makes the body of the phone.
New problems arise all the time. Before we can solve a problem it is necessary to understand the problem itself and think about the possible steps needed to solve that specific problem.
Breaking down problems is a five-way step process. It includes:
1. Identifying the problem
2. Analysing the problem
3. Evaluating the problem
4. Finding a solution for the problem
5. Monitoring/Reviewing the problem
Following these steps will allow us to decompose the main problem into sub smaller problems and therefore making it much easier for us to understand and get solutions to solve the problem.
Communicating the features of problems to members of the team includes event loops, flexibility, suitable graphical interfaces, simplicity of programming and therefore ease of development. The more resources used (people) shorter will be the time to finish the project (game) and greater will be the productivity for the company. Shorter time means quicker projects and quicker results may mean potential cost savings for the company. All that has to be done by communicating to others as relevant.
• Pattern Recognition
Pattern recognition is the process of finding the similarities or objects over a decomposed problem that can help us solve in a more efficient way complex problems.
To identify common elements or features in problems or systems it is required to search for similarities within that problem or system. This is done by finding and listing the similarities existed in each problem or system always focusing in those spotted in multiple locations.
However, when identifying common differences between processes or problems the steps being taken are the same when finding common elements or features in problems or systems but you will have to focus that each process or problem are unique and recognise those as differences instead.
Imagine that I am designing a group of specific car for a game. All the cars will have similarities such as body, wheels and windows. The only thing that would be different is the car’s colour. This will allow us to draw the cars quicker and easier because we would only have to loop it within the piece of programming. In this case pattern recognition will be used to find for similarities that will be cars and our task would be describe those patterns so others are aware of them. Once that is done we then need to make predictions based on the patterns identified so they know which patterns could be used in the future and which changes would have to be done.
• Pattern Generalisation and Abstraction
Pattern generalisation is when patterns can be spotted and simple conclusions can be drawn. Abstraction is the process of looking for unnecessary information which will be simply deleted.
Therefore, we need to look for relevant information required to solve problems. Irrelevant information will then be removed.
Imagine that I design a group of cars and buses for a game. They all have similarity which is a way of transport. The cars and buses will have similarities such as four wheels, windows, steering wheels and so on. Therefore, we should ignore the two different ways of transport and identify the common relationship between these objects.
I would then start by deciding which information I need (wheels, windows, steering wheels) because both cars and buses have the same mechanism.
I would have then to decide which information I would have to remove.
o These are values in a problem or system that can be changed by the program or user
Ex. Score of player’s on a game
o These are values in a problem or system that are not expected to be changed
Ex. Number of player’s life on a game
• Key Processes
o These are the operations needed to understand a problem or how a system works
• Repeated Processes
o These are operations that occur more than once within a problem
o Input is any information provided to the program
Ex. Keyboard input (code typed can be seen on screen)
o Output is any information or effect that a programs produces
Ex. Sounds, lights, pictures
A2 Uses of Software Applications
• Gaming a
• Entertainment a
• Productivity a
• Information Storage and Management a
• Repetitive or Dangerous Tasks a
• Social Media a
• Search Engines a