The structured programming approach aims to improve the clarity and maintainability of programs. Using structured programming techniques, only three basic programming structures are used:
Two methods which are commonly used for designing algorithms are flow diagrams and pseudocode
A good strategy to test your algorithm is to create a trace table and follow it manually
Concurrent processing takes place when several processes are running, with each in turn being given a slice of processor time. This gives the appearance that several tasks are being performed simultaneously, even though only 1 processor is being used.
Concurrent processing has benefits in many situations eg:
A problem is computable if there is an algorithm that can solve every instance of it in a finite number of steps.
There are many methods of problem solving, including:
Uses the method of exhaustive search - trying all possible solutions until the correct one is found
Simulation is the process of designing a model of a real system in order to understand its behaviour
Three main strategies for problem solving are Divide and conquer (reducing the size of the problem using binary search), Problem abstraction (removing details until the problem is reduced to one that was alreasdy solved before, eg graphs) and Automation (using programs with minimal human input)
In some problems, in order to find a solution you have to make a series of decisions, but there may be cases for which:
Backtracking is a metodical way of trying out different sequences until you find one that leads to a solution. For example, solving a maze is a typical problem of that kind, using a depth-first traversal of a graph
Data mining is the process if digging through big data sets to discover hidden connections and predict future trends