0% found this document useful (0 votes)
33 views

ALevel Computer Science KO

This document provides definitions and explanations of key computer science terms related to processors, memory, storage, and operating systems. It defines common processor components like registers, buses, caches, and control units. It also explains differences between CISC and RISC processors, and uses of GPUs, multicore processors, and parallel systems. Regarding memory and storage, it describes magnetic, flash, and optical storage devices. It defines RAM and ROM, and the concept of virtual storage used by operating systems. Finally, it outlines the role of the operating system in managing hardware and software, and the need for abstraction and multitasking.

Uploaded by

Tadiamba
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

ALevel Computer Science KO

This document provides definitions and explanations of key computer science terms related to processors, memory, storage, and operating systems. It defines common processor components like registers, buses, caches, and control units. It also explains differences between CISC and RISC processors, and uses of GPUs, multicore processors, and parallel systems. Regarding memory and storage, it describes magnetic, flash, and optical storage devices. It defines RAM and ROM, and the concept of virtual storage used by operating systems. Finally, it outlines the role of the operating system in managing hardware and software, and the need for abstraction and multitasking.

Uploaded by

Tadiamba
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

OCR A Level Computer Science – Unit 1 – Glossary of terms

Strand Sub Strand Term Meaning

A small, fixed width piece of memory inside the CPU. Usually between 16-128 bits wide. Registers are used to
Register hold data or instructions as they are being worked on. Registers can also be used to represent the status of
various CPU components.
Program Counter A register used to hold the address of the next instruction to be executed. It is possible to switch tasks that the
(PC) CPU is carrying out by changing the address held in the PC.

Accumulator (ACC) A general purpose register, usually used to hold the result of the last calculation or instruction carried out

Memory Address
Used to hold the address in memory which will be accessed next.
Register (MAR)
1.1 The
characteristics
Memory Data
of Used to hold the data which ahs just been fetched from RAM or is about to be written to RAM
Register (MDR)
contemporary
processors, 1.1.1 Structure
Current Instruction
input, output and function of Where the instruction about to be run is decoded – held in the form Operator, Operand
Register (CIR)
and storage the processor
devices -
The connection between the CPU and RAM – literally a collection of wires. Used to send data between CPU and
Components Data Bus
RAM
of a computer
and their uses
Used to connect the various components in the CPU and also to RAM. Used to send control signals to co-ordinate
Control Bus
the timing/workings of the CPU and also to tell RAM whether a read/write operation is needed.

Used to connect the CPU and RAM so that addresses which need to be read from or written to can be sent to the
Address Bus
memory controller.

Used to coordinate the actions of the CPU during the FDE cycle. Sends signals down the control bus to
Control Unit
components.

The purpose of the CPU – the Fetch, Decode, Execute cycle. Happens continuously whilst power is on. The
FDE Cycle
number of FDE cycles per second is called the “clock speed” and is measured in Ghz (Gigahertz)
Performance - The number of FDE cycles a CPU can carry out per second. Has a direct impact on the speed at which program
Speed instructions can be executed. Measured in Ghz – billions of cycles per second.

Performance - A core is a discrete processing unit inside a CPU – The more cores a CPU has, the more instructions can be
Cores executed simultaneously. Has a direct impact on the multitasking ability of a CPU
Cache is a small amount of memory inside a CPU. Usually comes in different “levels” which differ in speed and
Performance - size. L1 cache is the fastest and smallest, L3 is the slowest and largest. All are much, much faster than accessing
Cache RAM and therefore it is used to hold frequently accessed instructions to speed up program execution. Uses
predictive algorithms to pre-fetch what the CPU thinks it will need to execute next.
(d) The use of
Pipelining is a method of processing instructions more efficiently. Instructions are ordered by the CPU in such a
pipelining in a
way as to avoid idle cycles where nothing is being executed. In simple terms, the CPU executes one instruction,
processor to
whilst decoding the second, whilst fetching a third.
improve efficiency.
(e) Von Neumann The Von Neumann architecture is the basic concept on which all modern computers are based. It loosely consists
and Harvard of input, output, a memory store to hold programs and a CPU which has an ALU, Control Unit and Registers. One
Architecture common criticism of it is the fact that instructions and data are stored in the same memory space. The Harvard
architecture seeks to remove that bottleneck by storing instructions separately to data.
CISC – Complex Instruction Set, RISC – Reduced Instruction Set. CISC processors are those made by AMD and
Intel, they have large instruction sets designed to make them easier to program for. However, there are
(a) The differences downsides. Complex instructions take more cycles to execute and the CPU’s are usually more power hungry and
between and uses produce more heat
of CISC and RISC RISC CPU’s are those found usually in phones such as those made by Apple, ARM, Snapdragon etc. They have the
processors. advantage that each instruction usually takes one cycle to execute, they consume low amounts of power and
produce less heat. However, they are have the disadvantage of fewer instructions, meaning more may be
1.1.2 Types of
needed to carry out similar tasks than on CISC processors
processor
(b) GPUs and their
Graphics Processors are highly optimised to perform calculations in parallel on large amounts of data. Other than
uses (including
making them ideal for generating graphics, this also makes them suitable for scientific research, medical
those not related
research, cryptography and cryptocurrency applications.
to graphics).
(c) Multicore and
See cores above.
Parallel systems.
Parallel systems are those that are optimised for running multiple tasks simultaneously.
(a) How different
1.1.3 Input, input, output and
output and storage devices Requires you to have a knowledge of common input and output devices – largely common sense.
storage can be applied to
the solution of
different problems.

Magnetic storage includes hard drives and backup tapes. Hard drives are largely being phased out in favour of
solid state drives, even in server based systems as longevity and capacity increases as costs fall.
(b) The uses of Flash storage is any non-volatile storage which uses flash memory chips to store data. Has huge advantages over
magnetic, flash other methods of storage including physical size (tiny), density of storage, low power requirements and
and optical storage robustness.
devices. Optical storage is largely relegated to games consoles and tv connected media players. A range of discs which are
read via a laser can be used to store data. Examples are DVD, CD and Blu-Ray. Blu-Ray is the most common
standard for data storage due to its capacity of between 25-50gb
RAM = Random Access Memory. Used to hold open, running programs and data. Has to be managed by the
operating system to avoid programs over writing each other or, worse, accessing the data for another program.
(c) RAM and ROM.
ROM = Read Only Memory. Used to hold program code in a non-volatile flash memory chip. Usually refers to the
BIOS/UEFI which is the code used to boot up a system at power on.
The concept of expanding the amount of RAM available for open, running programs. The operating system uses a
(d) Virtual storage. section of secondary storage and makes it “appear” as extra memory. The OS manages the movement of pages
of data in and out of physical memory as and when necessary
The operating system is software which controls all hardware and software in the system. Consists of a user
(a) The need for, interface, kernel and drivers. Operating systems provide a platform for all software to run on – what this
function and purpose of basically means is it provides a core set of services so you don’t have to write code in every single program
operating systems for simple things like controlling mouse movement, printing, saving and so forth. The OS will also control the
resources available in a “fair” way to prevent programs monopolising the CPU, RAM or Storage
Memory management is a key role of the OS. RAM is split into “pages” and these are allocated to programs.
(b) Memory
They provide flexibility and efficiency because they can be moved around an re-organised as necessary. The
Management (paging,
OS allocates RAM to programs, ensures programs cannot overwrite each other or access memory that does
segmentation and
not belong to them. It also includes the handling of virtual memory where necessary. Without memory
virtual memory).
management, an OS could not offer multitasking or multiprogramming.
(c) Interrupts, the role of
Interrupts are a key hardware feature of all CPU’s. an interrupt is a request for CPU time – in other words,
interrupts and Interrupt
something has happened and it requires CPU execution time to process. Interrupts can be “requested” by
Service Routines (ISR),
1.2 Software hardware devices or software. The CPU recognises an interrupt has occurred but it is not the job of the CPU
role within the Fetch-
and software to decide when an interrupt should be serviced – this is controlled by an algorithm in the OS.
Decode-Execute Cycle.
development -
(d) Scheduling: round
Types of
robin, first come first Scheduling is the algorithm used by the OS to decide when a program should be executed by the CPU. The
software and
served, multi-level scheduling algorithm must perform a careful balancing act to ensure all processes receive attention from the
the different 1.2.1 Systems
feedback queues, CPU, that programs receive adequate execution time so that they appear to run smoothly and finally, must
methodologies Software
shortest job first and not allow a process to prevent others from executing.
used to
shortest remaining time.
develop
(e) Distributed,
software Operating systems are usually optimised/specialised to handle a certain type of environment. Most devices
embedded, multi-
we use are single user operating systems designed to give full access to all system resources to one user and
tasking, multi-user and
their requirements. However, in a networked environment or distributed, the OS needs to handle the
Real Time operating
resources of multiple machines and users to ensure that performance is maintained for all users.
systems.
Basic Input Output System. More modern systems make use of UEFI – Unified, Extensible Firmware Interface.
Both exist to boot a PC, the code is stored in ROM on the motherboard and called by the CPU at power on.
(f) BIOS.
The BIOS is designed to detect hardware, perform basic self tests and then find a device to boot from such as
SSD/HDD
A device driver is a piece of software which allows hardware to communicate with the operating system. An
OS provides “generic” services and hardware calls, it is up to the manufacturers of specific devices to write
the code which will allow their hardware to interact with an operating system, taking care of all the specifics
(g) Device drivers.
of how it works. This is essential as it simply isn’t possible for OS developers to write code for every possible
device that may be connected to a system, it also enables future devices to work with operating systems
without the need for them to be updated
(h) Virtual machines,
any instance where
software is used to take Virtual machines are software which emulates (pretends to be) all of the hardware in a PC system. They are
on the function of a extremely useful in server environments as they allow “machines” to be more easily managed. For example,
machine, including one physical server may run many virtual machines – a much more efficient use of hardware and ensures that
executing intermediate resource use is maximised. VM’s can also be backed up, moved, restored as necessary as well as have their
code or running an states saved – making it possible to recover to an earlier known good point in the case of failure.
operating system within
another.
(a) The nature of
This is common sense – you should be able to suggest an appropriate application for a given task. For
applications, justifying
example “suggest an application for the gathering and storage of large volumes of customer information” you
suitable applications for
would suggest… a database!
a specific purpose.

Small programs which usually run in the background. They normally have one specific purpose and are often
used for the maintenance of systems. For example, a backup utility would run regularly and save changes to
(b) Utilities
the backup device specified. Other examples include anti-virus, compression, encryption and file
management
Open source is where the code for a program is made freely available. Usually it can be used, re-used,
changed and re-released as necessary. It can be excellent for the rapid development of new systems and can
reduce workload because parts of the code will be pre-written. The only downside is there is no guarantee as
1.2.2 (c) Open source vs to the quality of the code, how robust it will be and whether it will be supported in future.
Applications closed source
Generation Closed source or “proprietary” code is usually the property of a company or individual that has chosen not to
share the code with anyone outside their organisation. This is usually done to protect the intellectual
property of the developer and enable them to make money from their work/creations.
Tools used to turn high level code into machine code. Remember that the CPU cannot understand anything
other than binary strings which relate to an instruction in the instruction set.
Assemblers are specific to assembly language and are one of the first types of translators to be developed.
They allow the quick conversion of assembly in to machine code, usually producing an executable. An
(d)
assembler will take care of some memory management, the automatic calculation of addresses and simple
Translators/Interpreters,
variable control, but they offer very little support to developers beyond that.
compilers and
Compilers take high level code and convert to an executable in one go. They link/load other libraries as
assemblers.
necessary and build this code into the executable automatically. Compiled programs usually run more quickly
than interpreted and can be easily distributed between similar systems
Interpreters are usually used to provide cross platform compatibility for code – think java script on the
WWW. An interpreter is installed on the local machine which takes the code, converts it as it is executed,
producing machine specific code as it does so. This has the huge advantage of “write once, run anywhere”
but has the obvious overhead of several different interpreters needing to be created.

Compilation is not a simple operation of “code in, binary out.”


Lexical analysis removes unnecessary data and information such as comments and spaces, it outputs a token
(e) Stages of compilation
stream which represents the code written.
(lexical analysis, syntax
Syntax analysis takes the token stream and checks it is valid and outputs an abstract syntax tree
analysis, code
Code generation is the complex part which parses the syntax tree and then generates appropriate machine
generation and
code for each part, links in external libraries and produces the executable.
optimisation).
Optimisation is carried out by the compiler to increase execution speed and reduce executable size. For
example, it may re-order the instructions into a sequence it thinks is more likely to happen.
External code libraries allow developers to use standard code, which is fully tested and robust. Operating
systems are full of libraires, and developers are free to make their own. A 3d game engine would be an
example of this.
Libraries contain code which is likely to be used over and over again in programs, so instead of re-inventing
the wheel, we put it in a library and simply import it into our code and reference it.
(f) Linkers and loaders
The problem with this is that executables can rapidly grow in size and so we mostly use dynamic linking of
and use of libraries.
libraries (DLL’s in Windows) which means that the code can reference a library, but then it is only loaded into
memory when it is required, saving space.
Static libraries, such as those which may be created by a developer themselves, are included in the
executable. This has one advantage – it is guaranteed that the library is available. Dynamic libraries may not
be present for some reason or may have been updated and now be incompatible.
(a) Understand the
waterfall lifecycle, agile
methodologies, extreme Software development projects should follow a lifecycle. The purpose of a life cycle is to manage the stages
programming, the spiral of development to ensure that the intended outcomes actually happen, deadlines are met and budgets are
model and rapid not exceeded. Each of the specified methods have their own specific goal, drawbacks and advantages.
application
1.2.3 Software development.
Development Briefly:
(b) The relative merits Waterfall: the most traditional model, followed from analysis to review with each step having to be fully
and drawbacks of completed before the next can begin. Rigid in structure and inflexible if requirements change, however, there
different methodologies is always documentation and accountability throughout the project
and when they might be Spiral: An iterative model which recognises the need for regular review and development. Each iteration sees
used. the phases grow longer, more expensive and hopefully more productive. It is said to be “risk aware” in that
the regular reviews allow developers and managers to spot and fix issues as they happen.
Agile: Extreme programming and RAD are actually methods of implementing an agile lifecycle. As the name
suggests, the agile methodology is designed to be fully flexible in order to meet the demands of customers.
Agile lifecycles are determined mainly by developers who decide how long each prototyping/iteration cycle
will take and what they think can be produced in that time scale. Overall the focus is on the rapid production
of software with the flexibility to change/add in requirements as necessary.

(c) Writing and following


This objective is down to you – this is the part of the exam spec where it says you should be able to
algorithms.
program….!

Paradigms are the concepts on which a language are built, but simply just boils down to “different ways of
doing the same thing.” In terms of programming it is the study of/acknowledgment that different languages
(a) Need for and may achieve the same things in different ways and there are subtle advantages/disadvantages to this.
characteristics of a Each language has its own specific goal – Some are aimed at logic and mathematical modelling (R for
variety of programming example), some are designed to be as safe as possible for mission critical systems, some focus on AI such as
paradigms. LISP and so forth. Each tailors its syntax, key words and structure to best suit the intended application.
Bottom line – recognise that whilst you can do something in a language, doesn’t always mean you should or
that it’s the “correct” language for the job.
Procedural languages are those which are designed to create programs which are structured in small “blocks”
of code called procedures or functions. A Procedure is simply a block of code, with a name, which can be
“called” from anywhere within the code. They have the obvious advantage of simplicity of design and the fact
(b) Procedural
that these code blocks can be reused.
languages.
Procedural languages are intrinsically linked to the concept of Stacks – each time a procedure is called, the
1.2.4 Types of
current state of the program must be pushed to the stack. There are hardware and software implications of
Programming
this.
Language
Assembly language consists of short three or four letter mnemonics which directly represent a machine code
(c) Assembly language
CPU instruction. It exists purely to make machine code programming human accessible. Instead of writing
(including following and
programs in pure binary, we can write in assembly language and then use an assembler to convert the code
writing simple programs
back into binary. One of the earliest/first types of programming language.
with the Little Man
Computer instruction
LMC is a “learning language” designed to introduce you to assembly through 10 simple commands and is
set). See appendix 5e.
essential that you practise for your exam.
When issuing an assembly language instruction, it usually comes in the form Operator – Operand, or more
(d) Modes of addressing simply Instruction, Data.
memory (immediate,
direct, indirect and The data in an instruction can either be:
indexed). A number
An address
An offset

The type of data is determined by its “addressing mode” which is represented by a symbol.

Immediate: interpret as a number


Direct: interpret as an address
Indirect: an address which, when visited in memory, holds the address we actually want
Indexed: a base address which we then add an offset to, in order to find the address we want.
(e) Object-oriented
languages (see appendix
5e for pseudocode style) Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which
with an understanding can contain data and code: data in the form of fields (often known as attributes or properties), and code, in
of classes, objects, the form of procedures (often known as methods).
methods, attributes,
inheritance, There are countless object oriented languages, most commonly Java, C++, C# and Python
encapsulation and
polymorphism.

Lossy compression reduces the size of files by removing unnecessary information, or by reducing quality in a
way which is either “acceptable” or likely to not be noticed by the user. In music, for example, MP3 removes
frequencies that the human ear cannot resolve. This has the obvious advantage of large reductions in file size,
(a) Lossy vs Lossless but the disadvantage that we can never restore the original quality.
compression.
Lossless compression reduces the file size without losing any quality or the ability to reproduce the original
file. Common techniques include dictionary and run length encoding which reduce data by removing the need
1.3 Exchanging
to represent repeated data explicitly.
data - How
1.3.1 Run length encoding – anywhere in a file where there is repeated data (colour in an image, words or letters in
data is
Compression, (b) Run length encoding a text file), store only the colour and number of pixels, or store only the letter and the number of repetitions.
exchanged
Encryption and and dictionary coding This reduces the amount of data stored.
between
Hashing for lossless Dictionary encoding – commonly used to compress text. Represents each new word as a “token” in a lookup
different
compression. table. The document is then reduced to a collection of numbers. This reduces overall file size due to only
systems
storing each word once.
Symmetric encryption is any form of encoding in which the process to encrypt is the simply reversed in order
to decrypt. This is obviously very insecure.
(c) Symmetric and
asymmetric encryption. Asymmetric encryption uses the concept of public and private keys in order to encode and decode data. It
relies on an incredibly complex mathematical discovery that it is possible to create “one way” algorithms
where the method to encode cannot be simply reversed in order to return to the original data. This is further
helped by the fact that “key pairs” mean one key can be published and used to encrypt and then a separate,
secret, key can be used to decrypt. This is essential for secure transmission of data.

Hashing uses the concept of an algorithm which, for any given input, will always produce the same output. It
also has the useful property that a small change in the input will result in a large, obvious change in the
(d) Different uses of
output. This has several applications including:
hashing.
File hashing – a quick and convenient way of ensuring two copies of a file are indeed identical and have not
been corrupted or tampered with.
File systems – a quick method of locating a files by generating a hash which points to its location.
Databases are “an organised collection of information” which are usually manipulated using SQL.
Flat file: The simplest type of database – all data is kept in one table. Has significant disadvantages such as
repeated data (redundancy) and difficulty keeping data accurate/up to date
(a) Relational database, Relational: A database where each entity has its own table (e.g. customer, appointment etc). Each table is
flat file, primary key, linked by primary/foreign keys which helps to reduce redundancy.
foreign key, secondary Primary key: A unique identifier for a record in a database table
key, entity relationship Foreign key: A primary key from another table acting as a link
modelling, Normalisation: The process of taking database design and turning it into a relational design. Normalisation
normalisation and removes repetition, separates data into tables and ensures that there are no many to many relationships.
indexing. See appendix There are 3 normal forms that we care about in the A Level
5g. Entity: An object in a database, e.g. “Vehicle”, “Customer.” Always singular.
Entity relationship modelling: A method of displaying the relationships between tables in a database.
Relationships can be 1:1, 1:Many, Many:Many. A many to many relationship breaks normalisation rules and
1.3.2 Databases indicates a link table must be created.
(b) Methods of
capturing, selecting, This is down to you – same as with input and output devices, you should be able to suggest sensible methods
managing and of collecting data in a database.
exchanging data
1NF: A table is in First Normal Form (1NF) if there are no repeating groups. In other words, each column must
contain only a single value and each row must have an item in every column. This can usually be done by
putting the data into two tables ... separating the repeated data into a separate group.
(c) Normalisation to 2NF: To move to 2NF, any partial dependencies must be removed. This basically means each record should
3NF. not have a composite primary key (the primary key should be unique in its own right). This removes many to
many relationships and repeated data
3NF: 3rd Normal Form removes something called “Transitive Dependency.” In plain English this means that
the data in each table should only be related to the primary key. If it isn’t, then it needs to be in another table.
SELECT (fields) FROM (table name) WHERE (criteria)
(d) SQL – Interpret and INSERT INTO (table) VALUES (comma separated list of values)
modify. See appendix UPDATE (table) SET (field=criteria) WHERE (criteria)
5e DELETE FROM (table) WHERE (criteria)
DROP (table)
Referential integrity refers to the accuracy and consistency of data within a relationship.

In relationships, data is linked between two or more tables. This is achieved by having the foreign key (in the
associated table) reference a primary key value (in the primary – or parent – table). Because of this, we need
(e) Referential integrity
to ensure that data on both sides of the relationship remain intact.

So, referential integrity requires that, whenever a foreign key value is used it must reference a valid, existing
primary key in the parent table.
Atomicity: All changes to data are performed as if they are a single operation. That is, all the changes are
performed, or none of them are. For example, in an application that transfers funds from one account to
another, the atomicity property ensures that, if a debit is made successfully from one account, the
corresponding credit is made to the other account.
(f) Transaction Consistency: Data is in a consistent state when a transaction starts and when it ends. For example, in an
processing, ACID application that transfers funds from one account to another, the consistency property ensures that the total
(Atomicity, Consistency, value of funds in both the accounts is the same at the start and end of each transaction.
Isolation, Durability), Isolation: The intermediate state of a transaction is invisible to other transactions. As a result, transactions
record locking and that run concurrently appear to be serialized (happen one at a time in sequence). For example, in an
redundancy. application that transfers funds from one account to another, the isolation property ensures that another
transaction sees the transferred funds in one account or the other, but not in both, nor in neither.
Durability: After a transaction successfully completes, changes to data persist and are not undone, even in
the event of a system failure. For example, in an application that transfers funds from one account to
another, the durability property ensures that the changes made to each account will not be reversed.
Network protocols are sets of established rules that dictate how to format, transmit and receive data so
computer network devices -- from servers and routers to endpoints -- can communicate regardless of the
(a) Characteristics of
differences in their underlying infrastructures, designs or standards.
networks and the
1.3.3 Networks
importance of protocols
To successfully send and receive information, devices on both sides of a communication exchange must
and standards.
accept and follow protocol conventions. Support for network protocols can be built into software, hardware
or both.
LAN: A Local area network, usually confined to one small geographic location (e.g. a house or office). A LAN is
an internal network, all devices are usually connected using switches and use dedicated equipment, meaning
bandwidth is not shared with any external device or organisation.
WAN: A Wide Area Network, covers a large geographic area and usually makes use of shared
telecommunications equipment meaning bandwidth is shared between multiple users.
DNS: Domain Name Server/Services, a hierarchy of public servers which are responsible for converting URL’s
(b) The internet into IP addresses.
structure: • The TCP/IP Protocol Layers: Protocols are complicated and therefore are usually split into different layers. Each layer will
Stack. • DNS • Protocol have distinct functionality and will be self contained. A Layer expects certain specific inputs and will provide
layering. • LANs and specific outputs to the next layer. The advantage of layers is that they can be implemented in hardware,
WANs. • Packet and software or split between both. This can have significant cost savings when developing a system, or could
circuit switching provide significant performance gains if implemented purely in hardware. A further advantage is that each
layer can be implemented, updated or developed separately without affecting the others.
Packets and Packet Switching: All data sent across a network is split into parts called packets. Packets are
small, fixed size pieces of data designed to improve the reliability of data transmission. If a packet is lost on a
network, the time taken to re-send it is far less significant than if an entire piece of data needs to be sent
again. Furthermore, packets can be sent through different paths on a mesh network like the internet meaning
they can take the most efficient/fastest path to their destination.
(c) Network security
Firewall:
and threats, use of
Proxy:
firewalls, proxies and
Encryption:
encryption. (d) Network
Networking Hardware:
hardware. (e) Client-
Client Server
server and peer to peer.
Peer to peer

(a) HTML, CSS and


See appendix 5 for details of the level of HTML, CSS and Javascript you need to know. I recommend the W3C
JavaScript. See
Schools tutorials for your revision here.
appendix 5e.

1.3.4 Web In order to allow you to search the WWW, a search engine must first know about the web pages that exist,
Technologies what they are about and have some way of categorising those pages. The process of finding, exploring and
storing data regarding web pages is called “indexing.”
(b) Search engine
To index pages, a search engine will use a program called a “crawler.” A crawler is simply a program which
indexing.
visits websites, finds all the hyperlinks on that page and then visits those. It is obvious that this process rapidly
grows in complexity and time requirements. As it visits each page it will store information it finds (meta data)
in the index.
Page rank is specific to Google. The initial idea came from a simple principle – The more times a website is
linked to, the more important it must be. Strangely, this concept had not been explored before Larry Page and
Sergey Brin attempted it, and it obviously turned out quite well. The principle was expanded to include adding
(c) PageRank algorithm
weighting to the quality of website that was linking to a site and other factors that could affect its
“reputation.” All of these factors are boiled down to return an indication of where each page should rank
when searched for.
Nearly all modern web pages and applications rely on some form of processing to generate dynamic or
responsive content. There are two choices for this processing – let it take place on the client machine or do
everything on the server.
Server side processing has the advantage that it is more secure and less prone to tampering. However, there
is the obvious hardware demands/requirements that come with this. The more clients there are, the bigger
(d) Server and client
the demand on the server will be. Server side processing is essential for websites that include things like
side processing
shopping carts, payments, profiles and so forth.
Client side processing is suitable for things like graphical effects, automatic updating of content and
interactive features that don’t rely on the retrieval of data (simple games for example). Client side processing
has the advantage of removing the demand on the web server, however, because there is no guarantee of
the type of device a client is running, then the code may run slowly, give variable performance or not even
run at all due to incompatibilities (such as wrong browser or script blocking)
Data types have a significant effect on the compilation of a program. Different data types require different
amounts of memory, methods of processing and so forth. Incorrect data type, e.g. integer when you need
(a) Primitive data types, real, can cause significant logic errors in a program.
integer, real/floating Integer = a whole number
point, character, string Real = a number with fractional parts
and Boolean. Character = a single letter, number or symbol
String = zero or more characters
Boolean = true or false

1.4 Data types,


data
(b) Represent positive
structures and See the notes hand out in the lesson folder for methods
integers in binary.
algorithms -
How data is
represented
and stored
within (c) Use of sign and
different magnitude and two’s
1.4.1 Data Types
structures. complement to See the notes hand out in the lesson folder for methods
Different represent negative
algorithms numbers in binary.
that can be
applied to
these
structures (d) Addition and
subtraction of binary See the notes hand out in the lesson folder for methods
integers.

(e) Represent positive


integers in See the notes hand out in the lesson folder for methods
hexadecimal.
(f) Convert positive
integers between
See the notes hand out in the lesson folder for methods
binary hexadecimal and
denary.

(g) Representation and


normalisation of
See the notes hand out in the lesson folder for methods
floating point numbers
in binary.

(h) Floating point


arithmetic, positive and
negative numbers, See the notes hand out in the lesson folder for methods
addition and
subtraction.

Shifting allows us to quickly perform integer division and multiplication, logical shifts ignore all sign bits and
(i) Bitwise manipulation
simply insert zeroes as necessary, arithmetic shifts preserve the sign bit.
and masks: shifts,
Masking is simply a method of applying a Boolean expression, usually to a register, in order to explore the
combining with AND,
state of individual bits, rather than changing the entire value stored. AND masks are used to check whether a
OR, and XOR.
bit is on or off, OR is used to set a bit and XOR masks are often used as a form of encoding/encryption.

Text in a computer is represented as numerical data. There are two standards – ASCII and UNICODE, and both
do the same thing, which is to assign a unique numeric value to each character that the computer is to
represent or store.
(j) How character sets ASCII is actually now part of the UNICODE standard. ASCII is traditionally a 7 bit standard, which can also be
(ASCII and UNICODE) represented in 8 bits per character. Obviously, the more bits per character a standards has, the more symbols
are used to represent it can represent, however there is the storage implication meaning it will take up more space to store each
text. character.
ASCII is limited to 127 characters, whereas UNICODE (depending on which version is used) is a 16 bit standard
and can store every printable character in the known world. Even languages that are “extinct” are available in
Unicode.
These standards are essential, as without them, computers and devices from different manufacturers could
not easily communicate.
Arrays: A data structure which acts like a table. Each “row” is accessed via an indexing system, usually zero
based. Arrays are fixed size and hold multiple values of the same data type and cannot hold values of differing
types.

Record: A custom data structure which holds values of differing data types. For example a record “person”
(a) Arrays (of up to 3 may contain fields such as “name”, “age”, “height” and so forth. Variables can then be declared as type
dimensions), records, “person” and the fields accessed through the object.property method
lists, tuples.
Lists: A dynamic data structure which can grow and shrink with the requirements of the program. Each node
in a list holds a piece of data and a pointer to the next piece of data in the list.

Tuples: A strange data type which holds a collection of data, usually ordered and it cannot be changed.
Accessed in much the same way as an array.
Linked list: a data structure consisting of nodes. Each node is a pair of “data” and “link” entities. The link
1.4.2 Data points to the next node in the list. By manipulating the links we can grow, shrink, re-arrange and otherwise
Structures manipulate the data stored within. Dynamic.
Graph: A data structure similar in nature to a linked list in that it consists of connected nodes. However, in a
graph each node can be connected to multiple other nodes.
(b) The following Stack: A FILO (First in, last out) data structure which is used in countless computing applications. Data is either
structures to store “pushed” on to the stack or “popped” off it. Elements cannot be accessed at random and must be stored and
data: linked-list, graph retrieved one at a time. Often used in programming (call stacks), operating systems, interrupts and so forth.
(directed and Queue: A First in, First Out (FIFO) data structure. Elements in the queue are removed in the order they were
undirected), stack, added.
queue, tree, binary Tree: A data structure consisting of nodes. Each node contains data and a number of pointers. The tree is
search tree, hash table. organised in a “root” and “leaf” structure. There is one root node at the top of the tree, this may have zero or
more “leaf” nodes coming off it. In turn, those leaf nodes may be connected to layers below. The only
difference between a tree and binary tree is that a binary tree node may only have a maximum of two child
nodes.
Hash Table: Basically a table of pointers to data. Each row of the table is accessed by hashing the input to
discover the row to be accessed.
(c) How to create,
traverse, add data to
and remove data from
the data structures
mentioned above. (NB
this can be either using See lesson.
arrays and procedural
programming or an
object-oriented
approach).

(a) Define problems


using Boolean logic. See See lesson notes
appendix 5e.

(b) Manipulate Boolean


expressions, including
the use of Karnaugh See lesson notes
1.4.3 Boolean
maps to simplify
Algebra
Boolean expressions.

(c) Use the following


rules to derive or
simplify statements in
Boolean algebra: De
Morgan’s Laws, See lesson notes
distribution,
association,
commutation, double
negation.
(d) Using logic gate
diagrams and truth
tables. See appendix 5e.
(e) The logic associated See lesson notes.
with D type flip flops,
half and full adders.

1.5 Legal, (a) The Data Protection


moral, See https://www.gov.uk/data-protection
Act 1998.
cultural and
ethical issues -
The individual (b) The Computer
1.5.1 See https://www.bbc.co.uk/bitesize/guides/z8m36yc/revision/5
moral, social, Misuse Act 1990
Computing
ethical and
related
cultural (c) The Copyright Design
legislation See https://www.york.ac.uk/records-management/copyright/law/
opportunities and Patents Act 1988.
and risks of
digital (d) The Regulation of
technology. Investigatory Powers Act See https://www.bbc.co.uk/bitesize/guides/zpjm6sg/revision/1
Legislation 2000.
surrounding The individual moral,
the use of social, ethical and This section will almost exclusively lead to long answer questions in the exam. To be able to answer any of
computers cultural opportunities these questions you need an understanding of what is going on in the wider world of technology. This
and ethical and risks of digital involves… reading! There’s no two ways around it. There are issues we will discuss in class, but there is no
issues that technology: substitute for you actively engaging in this aspect of your learning. Read through our school twitter feed for a
can or may in 1.5.2 Moral and
• Computers in the number of links to get you going.
the future ethical Issues
workforce. • Automated
arise from the decision making. • In summary, you need to be aware of how technology affects the wider world than merely consumers and the
use of Artificial intelligence. companies that provide them. The list of topics in the specification give you a clear picture of the things you
computers • Environmental effects. need to pay particular attention to and each one has clear, real world examples.
• Censorship and the
Internet. • Monitor
behaviour.
• Analyse personal
information.
• Piracy and offensive
communications.
• Layout, colour
paradigms and character
sets.
OCR A Level Computer Science – Glossary of Terms – Unit 2

Strand Sub Strand Criteria Meaning

Abstraction is the removal of unnecessary detail from a problem. Abstraction can also be the hiding of complexity
(a) The nature of from a user in order to make a system easier to use, for example, a GUI is an example of abstraction because it is
abstraction. intuitive and easy to use, yet hides the underlying complexity of what is really happening when a user performs
an action
2.1.1 Abstraction is necessary in algorithm design as it helps us to focus solely on the problem, it prevents the
(b) The need for
Thinking objectives becoming too broad. In HCI, abstraction helps us to ensure the system is as simple and easy to use as
abstraction.
abstractly possible for the end user.
(c) The differences Abstract concepts may not fully represent their real world counterparts. Attempting to mimic real world objects
between an is called “skeuomorphism.” for example a program in which we take notes may look like actual lined notepaper.
abstraction and An abstracted version of the same program would remove this detail as it is unnecessary to solve the
reality. problem/perform the task it is designed to do.
Input = data going IN to a computer system or program
(a) Input and output
2.1 Elements Output = data coming OUT of a computer system of program
of Criteria which must be met before something can happen. In terms of thinking ahead, pre-conditions are the
computational (b) Pre-Conditions things you must consider before designing a program or block of code – what inputs do you need, what data do
thinking - you need from external sources, what actions must/will the user perform etc.
Understand Caching (not in the CPU sense of the word Cache) is when small amounts of data are kept in memory or in a
what is meant buffer so that they are available to a program without delay. Caching data not only speeds up program execution
by (c) Caching but can also be used to smooth out variability in things like network connections (caching a video before playing
2.1.2
computational it, for example, would hide any dips in network performance as there would be enough data cached to continue
Thinking
thinking playback without interruption whilst the network performance increases again)
ahead
These are functions, procedures, classes, libraries or DLL’s. These are blocks of pre-written, pre-tested code
(d) Reusable program
which we can use in our programs to reduce the time taken to develop software. It has the distinct advantage
components.
that the code should be robust and reliable.
Sub procedures and functions are used to break up complex problems into smaller component parts. Each
(d) sub- function or procedure will perform a specific task and have a set of inputs and expected outputs. By using these
procedures/functions components it makes programs easier to design, reduces repetition, increases the reliability and robustness of
code and enables us to delegate parts of programs to different developers who can work on their own blocks of
code independently.
Concurrent processing usually makes use of “threads” which is where specific tasks may be carried out in parallel
2.1.5
(a) Concurrent to other tasks within a program. This usually speeds up execution as a programmer can design code which splits
Thinking
Processing complex tasks into threads that perform tasks simultaneously. Concurrent processing should also mean that a
concurrently
program rarely enters a wait state where it is doing nothing, waiting for an event to occur such as user input.
Sequence – a set of instructions executed in order
(a) Programming constructs: sequence, iteration, Iteration – looping or repeated execution of the same code
branching Branching – use of decisions or IF statements to change the flow
of execution depending on the evaluation of a rule.
The act of a procedure or function calling itself. A seemingly
complex concept whereby a problem can be defined in terms of
itself. Classic examples include factorial and Fibonacci
(b) Recursion.
sequences. Recursive code must have a “base case” which, when
hit, will result in the “call stack” unwinding itself, resolving all the
previous function calls to produce a final answer.
Global variables are those which are available to any procedure
or function, anywhere in code. Generally considered a bad thing
2.2 Problem solving and as if they are changed unexpectedly somewhere in the code it
programming may not be obvious that this has happened, or where, making
How computers can be debugging and code maintenance difficult.
used to solve problems (c) Global and local variables
and programs can be Local variables only have “scope” in the procedure or function in
written to solve them 2.2.1 which they are declared. This means once a procedure or
(Learners will benefit Programming function terminates, these variables no longer exist. They are the
from being able to techniques preferred method of using variables as it is easy to keep track of
program in a where a variable exists/belongs and how it is being accessed.
procedural/imperative Functions and procedures rely on data being sent to them as
language and object inputs. These inputs are called parameters and take the form of
oriented language.) variables that are sent to them when called. Parameters may be
(d) parameter passing by value and by reference.
passed by value – a copy of the variable is sent to the function
and discarded after use, or by reference – the variable is sent as
a pointer to the data and any changes are persistent.
IDE’s are a set of tools which allow programmers to edit, create,
debug and publish program code. Features usually include a
(e) Use of an IDE to develop/debug a program. code editor, syntax highlighting, code completion, break points,
variable watch, error diagnostics, a translator/interpreter and a
compiler.
OO is a technique used to write programs which attempt to
mimic real life “objects.” Each object is a “class” which is used as
(f) object oriented techniques. a template. When an object is “instantiated” then a copy of the
class is created which can be accessed (roughly) like an
“intelligent” variable.
A class will specify several methods (things it can do) which are
used to perform actions or manipulate the contents of variables.
A class will also posses “properties” which are data and variables
which describe the object.
OO has the advantage that classes should be completely
reusable across different projects and they should be “safe” to
use because of “encapsulation” which means variables and data
are “private” to a class and can only be accessed or manipulated
by calling class methods.
Computational methods = maths. Features that make a problem
solvable by computational methods = can you turn your problem
into a mathematical form? In other words, there are certain
(a) Features that make a problem solvable by problems which are well suited to computing – such as those
computational methods. which involve massive data sets, calculations, analysis of data,
repetitive tasks, complex maths/physics simulations. There are
others which are less trivial/suitable in nature and you should be
able to recognise these (image recognition for example)
Being able to extract the parts of a problem which need to be
(b) Problem recognition.
solved or could be solved with code.
Being able to break a problem down into a set of sub-tasks or
(c) Problem decomposition. problems which themselves could be easily turned into code (in
other words they are obviously functions, procedures or classes)
2.2.2 A method of problem solving by splitting the problem into ever
Computational (d) divide and conquer.
smaller tasks until they become trivially easy to solve.
methods
(e) abstraction As before.
A technique used to “retrace the steps” an algorithm has taken.
Backtracking has many applications, usually in well known
algorithms like Dijkstra’s algorithm and other path finding
backtracking
solutions. Backtracking means a path has been followed,
evaluated and found to be sub-optimal, the algorithm then goes
back to a previously known good point and continues from there
in an attempt to evaluate a better path.
The process of taking “big data” (extremely large data sets) and
creating queries which elicit useful data/conclusions. Data
data mining
mining recognises that a data set may be more useful than its
initial intended purpose. Techniques may include uses of AI,
Neural Networks or other machine learning techniques.
The use of a “best fit” approach to the solution of a problem, or
the use of “best guess.” Heuristics are used to solve problems
which are NP problems (in other words we cannot prove them to
heuristics be solvable and therefore there exists no known “complete”
solution). Heuristics may be used in other applications such as
anti virus software to monitor “virus like” behaviour and best
guess that a program may or may not be malicious.
As it says on the tin – the use of diagrams to simplify the finding
visualisation to solve problems
of solutions to problems.
The ordering of instructions into the most efficient form so that
program execution speed is maximised. Compilers and CPU’s will
both have pipelining optimisations which enable them to re-
pipelining order instructions into a more efficient or “likely” form. The
processor can then maximise its execution speed by
simultaneously executing one instruction, whilst decoding the
next, whilst fetching the next + 1 instruction.
The use of big O notation to investigate/represent the best and
performance modelling.
worst case time and space complexity of problems.
A mathematical representation of the best or worst case time and space complexity
Big O notation of a problem. Translated – how long will this take to execute and how much
memory will it require?
Constant The time taken will be the same regardless of the size of the problem/data set.
The time/space requirements will grow directly in proportion with the size of the
linear
data set.
The time/space requirements will grow as some form of function of n (the size of
polynomial
the data set)
The time/space requirements will grow at an exponential rate as the data set grows
Exponential
(as the data set increases, time/space doubles for each increase of n)
Usually a best case scenario, the time/space requirements will grow rapidly at first
logarithmic as data set size increased, however this will then “level out” and increasing the size
of a data set will have less and less of an effect.
You need to be able to recognise/create the code which will implement a stack.
Stacks – algorithm Stacks are LIFO data structures which can only be accessed from the top by
2.3 Algorithms - “Popping” data off the top of the stack.
The use of algorithms to You need to be able to recognise/create the code which will implement a queue
2.3.1
describe problems and Queues - algorithm using either an array or a list. A queue is a FIFO data structure which can only be
Algorithms
standard algorithms accessed at the “head” and “tail.”
Tree See Unit 1 notes.
Linked list See Unit 1 notes.
A method of searching a tree data structure by following the left most nodes until
Depth first traversal the bottom of the tree is reached and then backtracking up to each level and
traversing the right hand nodes.
A method of searching a tree by systematically accessing all nodes on the same level
Breadth first traversal
before then visiting nodes of a lower level.
A method of sorting data by comparing pairs of numbers in a list and swapping
when one is bigger than the other. Continues until no swaps are made.
bubble sort
Computationally very expensive due to the number of iterations and comparisons
made, grows exponentially in complexity/time requirements
A method of sorting data by creating two lists – sorted and unsorted. Each iteration
sees one value taken from the unsorted list and then “inserted” in the correct place
Insertion sort
using one of the following rules:
If the element is smaller than the first element of the sorted list – place at the start
If the element is bigger, then compare to the next element in the list. If bigger,
move to the next element, if smaller, place in the list before this element.
If the end of the list is reached, place at the end.
Splits numbers to be sorted into lists and then merges pairs of lists:
Merge sort Take the first number from each list. Compare. Place the smallest in the new list.
Repeat until both lists are empty.
A “divide and conquer” algorithm which splits a data set up into two arrays around
a “pivot” in the data set. All numbers bigger than the pivot are stored in one array,
Quick sort all smaller ones in the other array. This method is applied recursively, meaning it
splits the data until each array holds only one element and then winds back up the
call stack, placing elements in the correct positions.
A path finding algorithm using a graph structure which evaluates all possible paths
Dijkstra’s algorithm in order to find the shortest route to a destination. Best understood with a
demonstration…
A method of path finding often used in gaming and can be seen as an extension to
dijkstra’s algorithm. Used to find the shortest sensible path to a destination. Uses a
A* path finding
form of “best first” search to try and find the “least expensive” route to a
destination. Again, best understood visually/using an example.
A method of searching a data set, which must be sorted first. Finds the median
value and compares to the target. If they are equal then the value is found. If not,
the median is compared to the target again. If the target is larger than the median,
Binary search then all smaller numbers are discarded. If the target is smaller than the median then
all larger numbers are discarded. The algorithm then repeats until a match is found.
Can be implemented recursively. Has logarithmic complexity, meaning it is
extremely good for large data sets.
The most trivial of searching algorithms, each element in a list is systematically
compared to a target until it is found or the list exhausted. Has the advantage that
Linear search
the list does not have to be sorted, has the obvious disadvantage that it generally
slows down as the size of the data set increases.

You might also like