key terms Flashcards
to learn key terms
computational thinking
a problem-solving approach that includes abstraction, decomposition, and algorithm development
decomposition
breaking down a problem into smaller parts that are easier to solve.
object oriented programming
a program made up of objects, each object contains methods (functions) and attributes (variables)
instruction set
the collection of opcode a processor is able to decode and execute
pipelining
where the output of one process is the input to another
data mining
can show patterns and relationships that aren’t obvious but can be find through pattern matching large quantities of data
caching
data is stored in the cache in case uts needed again soon, so it doesn’t need to be refetched from the RAM
prefetching
when an instruction is requested from memory by the CPU before its required to speed up instruction throughput
parallel processors
allows different parts of a program to be executed simultaneously, or multiple processes
heuristic
a problem-solving method that uses shortcuts to produce good-enough solutions given a limited time frame or deadline, using rule of thumbs
BRA
branch always, jump instruction that is always executed.
BRP
branch if the value in the accumulator is positive
sequence
execution of statements or functions one after another
selection
where flow of a program is interrupted and control is passed to another point
recursion
where a procedure or function calls itself, called a divide and conquer approach
global variable
a variable that is accessible from anywhere in the program. useful when a variable needs updating from multiple subprograms.
local variable
a variable declared and accessible from inside a subprogram, makes them less likely to be accidentally altered by other modules
function
an algorithm that takes an input and produces an output
procedures
subprograms that do not return a value
by reference (by ref)
passing a value by reference calls on the memory address the variable is stored in, it works directly with the original data and can therefore change it permanently.
by value (by val)
used to create a copy of a variable for temporary changes to the variable that will be lost when the function is no longer in use
source code
code written in a programming language that can be read and edited by other programmers
build
all actions taken to produce a finished working program: writing, compiling, linking, testing, packaging and documentation
IDE
integrated development environment, a place to write source code and test it
immutable
unchangeable
linear search
searching each location one after another until the searched for value is found
binary search
dividing the list into two each time until we find the item being searched for (only works on sorted lists)
bubble sort
goes linearly through a list, swapping items in the wrong order until no swaps take place in a pass.
insertion sort
divides a list in two sorted and unsorted, and goes through the unsorted list, inserting elements from the unsorted list into the sorted where relevant
merge sort
Merge sortrepeatedly breaks down a list into several sublists until each sublist consists of a single element andmergingthose sublists in a manner that results into asortedlist.
quick sort
It works by selecting a ‘pivot’ element from the array and partitioning the other elements into two sub-arrays, according to whether they are less than or greater than the pivot. The sub-arrays are thensortedrecursively.
Big o notation
used to show the time or space needed to execute a function on increasingly sized data
complexity
how well an algorithm scales to larger data sets
constant complexity o(1)
takes the same time to run regardless of the data set
linear complexity o(n)
complexity increases at the same rate as the input size increases
polynomial complextiy o(nk) (where k>=0)
complextity increases by a square number, creating a half parabola
exponential complexity o(kn) (where k>1)
do not scale well at all
logarithmic compexity o(log n)
the rate if complexity increase, decreases as the data set increases. scales extremely well
procedural programming
a program where instructions are given in a sequence
logic programming
a problem is stated as a set if facts which are used to find a given goal.
functional programming
a description of the solution is built up through a collection of functions
declarative programming
tell the computer the qualities the solution should have. e.g. SQL
opcode
instructions
operand
data
direct addressing
link directly to a memory location
immediate addressing
where the operand is the value we need, not a link to the values memory location
inheritance
allows us to create a class with all the methods and attributes of another parent class, as well as building on it to have attributes and methods of its own
polymorphism
when methods behave differently according to the context they are used in
encapsulation
the pattern of making attributes in a class private but allowing them to be changed and accessed through public methods
private
only accessible from within that class
applications software
allows a user to perform a task or produce something
word processors
used for writing letters, reports and other documents
spreadsheet packages
allow users to model complex situations and are often used for financial calculation
utility software
relatively small program that has one purpose, usually concerned with system maintenance
anti virus programs
detects and removes viruses
disk defragmentation
groups all parts of a file together so they can be read faster, instead of the parts of a file being scattered around memory
compression programs
reduces the amount of space data takes up in storage
file managers
allow files and directories to be moved, copied, deleted and renamed
backup utilities
these allow backups to be automatically made of specified data
operating system
software that manages the computer: manages hardware, installing and running, security and interface
multi tasking operating system
carrying out progressing for more than one thing by switching between tasks giving the illusion theyre working simultaneously
multi user operating system
allows more than one person to share a computers resources at the same time
distributed operating system
can control and coordinate many computers presenting them to the end user as though they were a single system
embedded operating system
computers built to perform one specific job, often more efficient and low powered
real time operating system
designed to carry out actions with a guaranteed amount of time even when left running for long periods
kernel
helps manage the system resources, including memory management and scheduling
memory management
allows programs to be stored in memory safely and effiencently, prevents programs changing each others data, efficient
virtual memory
secondary storage that appears as if its in the RAM, when its needed it will be moved back into the RAM, used when the RAM is full
scheduling
a program that manages the amount of time different processes have in the CPU
round Robin scheduling
each process is given a fixed amount of time
First come first served scheduling
the first process to arrive is dealt with firsr
shortest job first
performs the shortest job in the queue first
shortest remaining time
picks the process that will take the least amount of time to perform
multi level feedback queues
uses multiple queues with a different priority level, and moves jobs between these queues depending on the jobs behaviour
interrupts
when a device sends a signal to the processor to get attention
polling
when the CPU keeps checking each peripheral to see if it needs attention
interrupt service routines (ISR)
if an interrupt has a higher priority level than the current one it will move to servicing the new interrupt instead
device drivers
tells the operating system how to communicate with a device
virtual machines
a program that has the same functionality as a physical computer that runs on a computer
BIOS
basic input output system- gets the computer running, checks functionality installed memory and starts the processor
open source software
source code is available and can be modified, free
closed source software
commercial software that is paid for and the source code is hidden