Studied by 6 people

0.0(0)

Get a hint

Hint

1

Abstraction

simplifying a problem by only taking the necessary details into consideration required to obtain a solution

New cards

2

Data abstraction

The storage and representation of data in a computer system along with its logical description and interaction with operators

New cards

3

Graph theory

A branch of mathematics that can be used to abstractly represent problems using a collection of nodes connected by edges

New cards

4

Procedural abstraction

Acheiving a task by relying on a procedure of sequential steps

New cards

5

Components of a problem

The smaller, simpler series of tasks and sub-procedures that a problem can be broken down into to be completed modularly

New cards

6

Concurrent processing

Processing where the system appears to perform multiple tasks simulataneously

New cards

7

Branching

A programming control structure where the code selects one or more alternative paths depending on the evaluation of a boolean expression

New cards

8

Functions

A subroutine that can be called to perform a task or calculation and always return a value. They can be called in expression, or be assigned to a variable

New cards

9

Global variables

A variable declared in the main program which exists outside any of the subroutines, but can be used anywhere in the program

New cards

10

Integrated Development Environment (IDE)

A software package that allow a user to develop and implement code more easily, with features for editing, debugging, version control, testing, and compilation

New cards

11

Iterations

A programming control structure where a set of statements is repeated either a fixed number of times or until a condition is met

New cards

12

Local variables

A variable declared within a subroutine of a program, which only exists and can be used within that subroutine

New cards

13

Modularity

The technique of breaking down a complex problem into simpler, self-contained componnents called modules, where each module is an implementation of a specific subtask required to solve a problem

New cards

14

Object oriented programming

A programming paradigm where the system is viewed as a set of objects, each with their own data and procedures, that can interact with each other. All processing is done by objects

New cards

15

Parameter passing by reference

Passing the adress or pointer of the required value into a procedure

New cards

16

Parameter passing by value

Creating a temporary local copy of the actual value of a variable and pasing it into the procedure

New cards

17

Parameter

The data structures requried to be passed into a subroutine

New cards

18

Procedures

A subroutine that is called by simply writing its name in the code. Procedures do not have to return a value in the program

New cards

19

Recursion

A programming subroutine where a section of code calls itself until a base case is met. The base case must be chosen to avoid any possibility of an infinite loop

New cards

20

Sequences

A programming control structure in which statements are executed one after another as they appear in the script

New cards

21

Subroutines

A uniquely named section of code that is written to perform a specific task within a program

New cards

22

Backtracking

An algorithm that incrementally finds a solution by methodically trying different sequences and abandoning a path when it knows it cannot lead to a valid solution

New cards

23

Computable problems

A problem for which every instance can be solved in a finite number of steps by means of algorithm

New cards

24

Computational methods

A method of solving a problem which by some form of computation in devising and implementing an algorithm

New cards

25

Data mining

An algorithm that finds a solution by analysing a large data sets to uncover trends and relationships between variables

New cards

26

Divide and conquer

An algorithm design technique to decompose and solve problems by reducing the problem size with each iteration, until the sub problem becomes solvable

New cards

27

Heuristics

A rule of thumb algorithm which can produce a valid albeit sub-optimal solution for a hard problem as an approximation

New cards

28

Performance modelling

The process of simulating the behavior of a model under different virtual user and system loads by mathematical approximation

New cards

29

Pipelining

The process of splitting a task into parts and then searching for subtasks that can be processed simultaneously to overlap the processing of each part

New cards

30

Problem decomposition

The process of splitting a given problem into smaller, solvable sub-problems that are easier to conceive, understand, maintain and program

New cards

31

Problem recognition

The ability to recognise the most effective strategy to solve a problem

New cards

32

Visualisation

The use of a visual representation of an algorithm or data structure to translate a problem an its solution to a more human readble form

New cards

33

A* algorithm

A generalisation of Dijkstra’s algorithm that approximately finds the shortest path between two nodes by keeping track of the distance travelled from the source to the current node and the approximate distance from the next node to the destination

New cards

34

Big O notation

A way of classifying algorithms based on their complexity by setting an upper bound for the worst case space or time complexity as a mathematical function of input size

New cards

35

Binary search

A O(logn) algorithm to search a sorted list for a particular item by repeatedly halving the sublist which could contain them

New cards

36

Breadth-first traversal

A method of traversing a graph by using a queue to visit all the neighbours of the current node before doing the same to each of the neighbours until the entire graph has been explored

New cards

37

Bubble sort

A O(n^2) sorting algorithm that iterates through a list, comparing each element to its sucessor and swapping elements if the sucessor is greater than the current element. This is repeated until no more swaps can be made

New cards

38

Depth-first traversal

A method of traversing a graph by using a stack to travel as far along one route as possible and then backtracking and doing the same for the remaing routes until the entire graph has been explored

New cards

39

Dijkstra’s shortest path algortithm

An algorithm to find the shortest path between two nodes on a graph by using a priority queue to keep track of the shortest distance to each node from the starting node until the destination node is found

New cards

40

Insertion sort

A O(n^2) sorting algorithm that divides a list into sorted and unsorted section. Elements from the unsorted section are compared with and placed in the right position in the sorted section one by one until the sorted section spans the entire list

New cards

41

Linear search

A O(n) algorithm to search a list for a particular item by iterating through the list and checking each element until the required item is located, or the end of the list is reached

New cards

42

Merge sort

A O(logn) divide-and-conquer sorting algorithm that recursively halves the list into sublists until all sublists are of length 1. The sublists are then merged back together in such a way that they are always sorted, until the full single list is obtained

New cards

43

O(1) Constant time/space

An algorithm that always takes a constant amount of time or memory space to execute, regardless of the input size

New cards

44

O(2^n) Exponential time/space

An algorithm whose execution time or required memory space grows exponetially with input size (higher complexity than polynomial)

New cards

45

O(logn) Logarithmic time/space

An algorithm whose execution time or required memory space grows logarithmically with input size (lower complexity than polynomial)

New cards

46

O(n) Linear time/space

An algorithm whose execution time or required memory space is directly proportional to the size of its input

New cards

47

O(n^k) Polynomial time/space

An algorithm whose execution time or required memory space is proportional to the input size raised to the power of a constant

New cards

48

Quick sort

A O(n logn) sorting algorithm similar to merge sort, but relies on choosing a pivot element whenever the list is split. Elements greater than the pivot go into one sub list, while the rest go into the other. All sublists of length 1 will be in a sorted order

New cards

49

Space complexity

A measure of the amount of memory space needed by an algorithm to solve a particular problem of a given input size

New cards

50

Time complexity

A measure of the amount of time needed by an algorithm to solve a particular problem of a given input size

New cards

51

Caching

The temporary storage of data by the system in cache or memory for the benefit of faster retrieval if it is needed again in future

New cards

52

Inputs

Any information relevant to the problem that is required by the system for process according to an algorithm

New cards

53

Outputs

The result returned by a system for a given input after running the entire process or part of a process

New cards

54

Preconditions

A prerequisite or state of a system and its surroundings required to run a use case return a valid solution

New cards

55

Reuseable Program components

Components that have already been written, debugged and tested that can be transplanted into new systems to save development time in project completion

New cards

56

Flowcharts

The diagrammatic representation of the flow of a program that includes all the points where a desicion needs to be taken in order to obtain a solution

New cards

57

Logical conditions

Conditions which may depend on one or more variables used to determine the next step whenever a system has to make a decision. They are typically implemented using control structures such as sequences, selections and iterations

New cards