Definitions - Algorithms and Programming

studied byStudied by 3 people
0.0(0)
get a hint
hint

Abstraction

1 / 56

Tags and Description

Completed

57 Terms

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 colleciton 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 wher 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 tha 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 lengtj 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

Explore top notes

note Note
studied byStudied by 11 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 8 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 2 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 54 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 54 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 5 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 54 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 33 people
Updated ... ago
5.0 Stars(1)

Explore top flashcards

flashcards Flashcard73 terms
studied byStudied by 28 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard75 terms
studied byStudied by 14 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard34 terms
studied byStudied by 83 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard44 terms
studied byStudied by 14 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard125 terms
studied byStudied by 8 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard34 terms
studied byStudied by 10 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard32 terms
studied byStudied by 16 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard31 terms
studied byStudied by 34 people
Updated ... ago
5.0 Stars(1)