2.1 Algorithms Flashcards
Computational thinking
The thought processes involved in formulating a problem and expressing its solution is such a way that a computer - human or machine - can effectively carry out.
Abstraction
The process of separating ideas from specific instances of those ideas at work. Computational structures are defined by their meanings, while hiding away the details of how they work. Abstraction tries to factor out details from a common pattern so that programmers can work close to the level of human thoughts, leaving details which matter in practise, but are immaterial to the problem being solved.
Decomposition
The process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program and maintain.
Algorithmic thinking
A way of getting to a solution by identifying the steps needed.
Problem inputs
Any information or data which goes into a system.
Problem processes
Anything which happens to data during a system running e.g. Performing calculations.
Problem outputs
Any information or data which leaves a system.
Structure diagram
A diagram that looks like an upside down tree, with one node at the top (root) and many below. It is used when designing solutions to problems in order to help break a large problem down into a number of small parts.
Pseudocode
A language independent description of the steps of an algorithm. Intended for human to express and design algorithms before coding.
Flowchart
A method of designing algorithms before coding using symbols.
Trace table
A technique used to test algorithms, in order to make sure that no logical errors occur while the algorithms being processed. The table usually has one column for each variable. Each row of the table shows how the various values held variables change as the algorithm is running.
Searching algorithms
An algorithm which attempts to find a given value in a data set.
Binary search
A particularly efficient search method. It only works if records in the file are in sequence. A binary search involves accessing the middle record of the file and determining if the target record has been found or, if not, if it is before or after it in the sequence. This process is repeated on the part of the file where the target record is expected until it is found.
Linear search
Involves examining each entry in turn in the file until the time is found or the end of the file is reached. Unless the files are in some useful order, a serial search has to be used.
What is an example of abstraction in real life?
A map