Section 10: Computational thinking Flashcards
What is the definition of representational abstraction?
A representation arrived at by removing unnecessary details.
Why is abstraction a key feature of high-level programming languages?
Abstraction has been used in the development of programming languages from machine code to high-level code.
This allows programmers to focus primarily on the problem that they’re trying to solve, rather than getting caught up in extremely tedious and confusing syntax.
Explain the idea of data abstraction.
The details of how data is actually represented are hidden, since we’re not interested in how it is stored as developers.
Due to this, we can create abstract data types such as queues and stacks that have logical functions and properties that may not necessarily be true to their physical properties.
What are the advantages of specifying a problem’s preconditions?
Advantages of specifying preconditions:
- Gives the developer an idea of what validation is needed
- Makes an algorithm more easily reusable for the future
- If we recognise that there are no preconditions, then we know that extra validation is unneeded, saving unnecessary code
What is caching?
Caching is the temporary storage of data that is likely to need to be accessed in the near future, such as program instructions or frequently accessed files.
How does caching relate to computational thinking?
Caching is an example of thinking ahead, done automatically by an operating system rather than by a developer.
What is meant by procedural abstraction?
Procedural abstraction means using a procedure to carry out a sequence of steps in order to complete a given task.
What is meant by the procedure interface?
The procedure interface is the idea that a programmer using a procedure does not need to know its inner workings, only how it is called and what arguments are to be passed through it.
What is top-down design?
Top-down design is a method of breaking down a problem by taking the big task, breaking it down into slightly smaller sub-tasks, and then continually breaking down the sub-tasks until there is a set of sufficiently simple subroutines which can be written.
What is a hierarchy chart?
A hierarchy is a way of representing a program’s structure, showing the relationship between the modules.
Describe the concept of parallel processing.
Parallel processing means using multiple cores in order to simultaneously execute instructions with the goal of increasing throughput over a given time.
Describe the concept of concurrent processing.
Concurrent processing means attending to a number of processes, each receiving some attention, the extent of which being dependent on the scheduling algorithm in place.
What is the key difference between parallel and concurrent processing?
The key difference is that parallel processing is executing tasks simultaneously, while concurrent processing is executing them in a circular fashion in order to give the impression they’re being processed in parallel.
What is enumeration?
Enumeration is a method of problem-solving by which one would perform an exhaustive search, trying all possible solutions until the correct one is found.
What makes a problem computable (theoretically)?
A problem is defined as being computable if there is an algorithm that can solve every instance of it in a finite number of steps.