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