Paper 1 Unit 1 Flashcards
(39 cards)
What is computational thinking?
A problem solving technique used to investigate and analyse a problem and then develop a solution to it. It helps to make problems more understandable.
What are messy problems?
Clusters of interrelated, interdependent complex problems where it is difficult to provide a definitive statement of what the problem is.
What is the top-down approach to programming?
A method of analysis that attempts to break down large problem into its smaller component parts.
What are the steps of top-down analysis?
The main program is broken down into main component parts. Each component is then broken down into a series of sub-problems. The sub-problems are further broken down until an easily solvable solution is made.
What is the bottom-up approach to programming?
A method of finding a solution to a program by solving smaller problems first and integrating them into a larger solution.
What are the advantages of using a bottom-up solution?
The smaller parts of the problem are easier to understand. By solving each of the smaller steps it is possible to create a solution to the bigger problem.
What is modularisation?
Separating the functional parts of a program into independent modules that can be recombined to create a solution.
What are the advantages of modularisation?
The functions (modules) can be allocated to different programmers to speed up the process. Programmers can be allocated to solve those parts of the problem requiring specialist skills. Debugging the elements individually can be more effective.
What are the disadvantages of modularisation?
The whole solution must be known in advance. Event-driven programming can ruin the structure of the neat top-down approach.
What is debugging?
Locating and fixing errors in a program.
What is decomposition?
Breaking down a complex problem into smaller component parts which are easier to understand and solve.
What are the advantages of decomposition?
Each sub program can be understood and developed and tested separately.
What are the disadvantages of decomposition?
The original problem must be fully understood so a solution can be produced. The sub-problems may not provide a fully functional solution to the original problem.
What is pattern recognition?
Looking for patterns or trends to identify potential solutions.
Why is using pattern recognition beneficial?
There may be existing solutions for some sub-problems that can be reused. There may be solutions to existing problems that can be modified to help solve the current issue. There may be a group of similar problems that can be fixed with a common core solution which may need to be created or modified.
What are the advantages of pattern recognition?
Existing code can be used which has already been tested so the programmer knows it works. It can be modified to add new features which will need to be tested but this is quicker than developing a whole new solution. The same basic code can be developed and reused multiple times but it only needs to be tested once to check it works. The newly created code can be modified to create solutions to similar problems but the main aspects will only need to be tested once. This all saves time and improves reliability.
What is abstraction?
The process of extracting the key features of a problem and ignoring the unnecessary detail.
What are the advantages of using abstraction?
The programmer can focus on the important aspects of the problem and ignore the non-essential detail. Teams of programmers can work on different aspects of the problem. Programmers can use pre-written or built-in functions without worrying about how they work.
What is layering?
Organising a solution into segments that only interact with the previous and following segments.
What are the advantages of layering?
Only the detail the programmer needs to solve the problem in their segment is shown for each layer so the path to the solution for the programmer is made less complicated.
What are variables?
A value that will change as a result of another action
What are constants?
Values that stay the same throughout a program.
What are algorithms?
A set of instructions describing the solution to a problem.
What must an algorithm include?
Precise instructions to define a problem accurately, all the necessary steps to solve a problem, clear instructions set out in the order they must be followed in and decisions that need to be made, when they need to be made and what happens as a result of them.