Computational Thinking, Algorithms, Data Representation
Computational Techniques
Pattern Matching
Identifying patterns and recognising when two patterns are similar.
Abstraction
Ignoring irrelevant details and reducing a problem to its essential features.
Decomposition
Breaking a complex task down into a set of smaller and simpler tasks.
Algorithms
Using a sequence of steps to solve a problem.
Algorithms, Work, and Efficiency
An algorithm that does a task with less work is more efficient than a different algorithm that does the same task with more work.
Algorithmic Time Complexity
Measure of how long an algorithm would take to complete, given an input size ๐.
Linear Complexity
Amount of work done is linearly proportional to the input size ๐.
Big O Notation
A way to measure how fast an algorithm's speed or memory usage grows as the input data (๐) increases.
Equivalence Classes
Groups of algorithms that have an equivalent complexity.
Representing Data
Continuous and Discrete Data
Continous signal (analog) has an infinite number of possible values, discrete signal (digital) does not.
Information stored in digital format is much easier to transport, store, and copy than the analog alternative. Requires less storage, much easier to process, and easier to detect errors in.
Benefits of Using Binary
Simple and can be carried out quickly.
Less affected by noise.
Easy to make exact copies of digital information.
Hexadecimal Number System
Uses 16 different digits:
0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F
Divide by 16, use remainder. Repeat in a table, read from bottom to top.
Benefits of Using Hexadecimal
Provide a way of representing binary values using fewer digits.
ASCII
Represents all characters found on an english keyboard.
uppercase ASCII letters: 65 - 90
lowercase ASCII letters: 97 - 122