Guide on Computational Thinking
Keywords
- Abstraction Model that removes unecessary details
- Data Abstraction A simplified representation of the underlying data. Very common is abstract data structures
- Caching Temporary storage of instructions/data that may be needed shortly in the future
- Procedural Creating instructions without knowing the exact details of the inputs(type/structures/etc of inputs may apply)
- Problem Decomposition Breaking problems down into smaller simpler problems
- Preconditions A condition required for an input to be valid
- Hierarchy chart A chart that shows the relationship between various modules. It shows the relationship between modules (or functions).
Thinking ahead
A rough model of computational problems:
- Input
- Procedure(The problem)
- Output
Preconditions are specific rules the input must follow
For example:
- Input must be a real number
- Length of list must be above 0
Advantages of preconditions:
- The user knows what checks they must do to the data before putting inputs in
- Clear documentation of preconditions and other things means a procedure can be stored 'for later'. Many programmers do this and there are massive libraries of functions and subroutines.
Abstract Data Types
- Queues
- Stacks
- Trees:
- Binary Trees
- Binary search trees
A very very very very very very very cool example of a hierarchy chart