1/49
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Representational abstraction
A representation of a problem arrived at by removing unnecessary details.
Abstraction by generalisation / categorisation
Simplifying a problem by grouping together common characteristics to arrive at a hierarchical / "is a kind of" relationship.
Information hiding
The process of hiding all details of an object that do not contribute to its essential characteristics.
Procedural decomposition
Breaking a problem into smaller sub-problems; each of which solves an identifiable task; and each of which might be further subdivided.
When is an adjacency matrix more appropriate than an adjacency list? (3)
When there are many edges between vertices (the graph is not sparse)
when edges are frequently changed
when the presence/absence of specific edges needs to be tested frequently.
Set Cardinality
The number of elements/items in a set.
What is the difference between a subset and a proper subset?
A set is a subset of itself, but not a proper subset. A proper subset must have at least one value missing from the original set.
Regular expression '*' (Asterisk)
Zero or more repetitions of the preceding element/character.
Regular expression '?' (Question mark)
Zero or one repetitions of the preceding element/character (makes the preceding element optional).
Regular expression '|' (Pipe)
Alternation. It means either the element immediately before or the element immediately after.
Regular expression '+' (Plus)
One or more repetitions of the preceding element/character.
What is the relationship between Regular Languages and Finite State Machines (FSMs)?
All regular languages can be represented using a finite state machine without outputs.
Can all languages be represented by Regular Expressions?
No. Regular expression cannot express nested recursion.
Why is recursion used in Backus-Naur Form (BNF)?
Because BNF does not natively support iteration. Recursion allows a non-terminal to be defined in terms of itself to represent sequences of indefinite length.
Tractable problem
A problem that can be solved algorithmically in polynomial time (or less).
Intractable problem
A problem that can be solved, but cannot be solved in polynomial time. It takes an unreasonable amount of time to solve.
Heuristic approach
The use of experience/approximation to make a guess. It provides a close-to-optimal solution when an exact solution takes an unreasonable amount of time to calculate.
What is the Halting Problem?
The unsolvable problem of determining whether any given program will eventually stop (halt) for a particular input.
What is the significance of the Halting Problem?
It demonstrates that there are some well-defined problems that cannot be solved by a computer / cannot be solved algorithmically.
Time Complexity: Linear Search
O(n)
Time Complexity: Binary Search
O(log n)
Time Complexity: Merge Sort
O(n log n)
Time Complexity: Bubble Sort
O(n^2)
What does it mean if an algorithm is O(n)?
As the size of the input increases, the time taken to execute the algorithm increases at the same rate (directly proportional).
Turing Machine
A formal model of computation consisting of a finite state machine, a read/write head, and a tape that is infinitely long in one direction.
Universal Turing Machine (UTM)
A Turing machine that can execute/simulate the behaviour of any other arbitrary Turing machine.
How does a Universal Turing Machine (UTM) work?
The description/instructions for the Turing Machine (and its input) are stored on the tape. The UTM reads this description and acts as an interpreter.
Why is the tape of a Turing Machine conceptually important?
It provides the machine with an infinite amount of memory.
What is the overall significance of Turing Machines?
They provide a formal model of computation and a definition of what is computable. They prove that there are problems which cannot be solved by computers.