Save
OCR COMPSCI - AS Level
Paper 2
Save
Share
Learn
Content
Leaderboard
Learn
Created by
Grace Barry
Visit profile
Cards (39)
Linear Search
algorithm that moves through
every item
one at a time until it finds the item it's
looking for
Binary Search
divide and conquer algorithm
splits list into
smaller
lists until it finds the item its
searching
for
Bubble
Sort
passes through list, evaluating pairs of items and making sure the
larger
value is above the
smaller
one
Queues
first in first out
(
FIFO
)
often represented as
arrays
make use of
two pointers
front
holds position of
first element
back stores
next available space
operations carried out on queues are similar to those in stacks
Stacks
first in last out (
FILO
)
implemented as an
array
single
pointer
that keeps track of
top
of stack
points to
element
currently at the
top
initialised at
-1
, first element is position
0
Waterfall Lifecycle
stages completed in sequence, start to finish
clear
structure
makes it easy to
follow
to make a
change
programmers must
revisit
all stages between
low user involvement
Agile Methodologies
aim to improve flexibility of SDLCs
adapt quickly
to changes in user requirements
different sections
are developed in
parallel
so can be at different stages simultaneously
working prototype
delivered early on and improved in
iterative
manner
less
focus
on documentation
user
satisfaction
prioritised
Extreme Programming
agile
model
development team
is a pair of programmers and representative
end-user
user stories used to determine system requirements
produces high-quality code and highly usable software
programmers work no longer than 40 hours a week
hard to produce high quality documentation
Spiral Model
manages
risk-heavy
projects
project terminated if too
risky
specialised
risk-assessors
must be hired -
expensive
Spiral Model - Stages
analysing
system requirements
pinpointing
/
mitigating
risks
development
,
testing
and implementation
evaluating
to inform the next iteration
Rapid
Application Development
iterative
methodology which uses partially functioning prototypes
user requirements gathered using focus group
incomplete version of solution given to user to trial
user feedback used to generate improved prototype
final prototype matches user requirements fully
used where user requirements are
incomplete
or unclear at start
code may be
inefficient
Waterfall - Advantages
straightforward
to manage
clearly
documented
Waterfall - Disadvantages
lack of
flexibility
no
risk analysis
limited user involvement
Waterfall - Uses
static
, low risk projects that need
little
user input
Agile - Advantages
high
quality code
flexible
to changing requirements
regular
user input
Agile - Disadvantages
poor documentation
interaction between user and programmer
Agile - Uses
small
to
medium
projects with unclear initial requirements
Extreme - Advantages
high
quality code
constant
user involvement - high usability
Extreme - Disadvantages
high
cost of
two
people working together on one project
teamwork
is essential
end-user
needs to be present
Extreme - Uses
small
to medium projects with unclear initial
requirements
require
excellent
usability
Spiral - advantages
thorough risk-analysis
caters to
changing user needs
prototypes
produced throughout
Spiral
- disadvantages
expensive (hiring risk assessors)
lack of focus on code
efficiency
high
costs due to constant
prototyping
Spiral - uses
large,
risk-intensive
projects with a
high budget
RAD - advantages
caters to changing user
requirements
highly
usable finished product
focus on
core features
, reducing
development time
RAD - disadvantages
poorer
quality documentation
fast pace and
late
changes can reduce
code
quality
RAD
- uses
small
to medium,
low budget
projects with short time frames
Alpha
Testing
carried out
in-house
by software development teams
bugs are
pinpointed
and
fixed
Beta
Testing
carried out by
end users
feedback
from users inform next stage of
development
Whitebox testing
carried out by
software development teams
internal structure
of program is recognised
all possible
routes
through program are tested
Blackbox Testing
testers are not aware of
internal structure
of the software
test plan traces through
inputs
and
outputs
Local Variables
can only be accessed within
subroutine
where they were defined
multiple local variables with the same name can exist in
different
subroutines
they're
deleted
once the subroutine ends
using local variables ensures subroutines are
self-contained
Global Variables
can be accessed across whole program
useful for values that need to be used by
multiple
parts of the program
danger of being
unintentionally
edited
not
deleted
until program terminates - requires more
memory
Modular Programming
splits large,
complex
programs into
smaller
, self-contained modules
easier to
divide
tasks between a
team
and manage projects
simplifies process of
testing
and
maintenance
as each component can be deal with individually
improves
reusability
of components
Top-down Design/Stepwise Refinement
technique used to modularise programs
problem is broken into
sub-problems
until each is represented as an individual,
self contained
module that performs a certain task
modules form blocks of code called
subroutines
Passing by Value
copy of the value is passed to
subroutine
and
discarded
at the end
value outside subroutine remains
unaffected
Passing by Reference
address of parameter is given to
subroutine
value of parameter will be
updated
at given address
Integrated Development Environment (IDE)
provides a set of tools to make it
easier
for programmers to write, develop and
debug
code
IDE - Features
stepping
variable
watch
breakpoint
source
code editor
debugging
tools
Software Development Life Cycles (SDLCs) - stages
analysis
design
development
testing
implementation
evaluation
maintenance