0% found this document useful (0 votes)
182 views24 pages

A Level Subject Content Clarification H446

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
182 views24 pages

A Level Subject Content Clarification H446

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

A Level Computer Science Subject Content Clarification

Component 1

1.1 The characteristics of contemporary processors, input, output and storage devices

Components of a computer and their Content clarification Links to other topics


uses

1.1.1 a) The Arithmetic and Candidates need to have an understanding of the purpose and function of the core components of a processor. 1.1.3 Input, output
Structure Logic Unit; ALU, Control Candidates need to understand the role and components of the ALU. and storage
and Unit and Registers Candidates need to understand the purpose and function or registers within the processor, including the PC, 1.2.4 Types of
function (Program Counter; PC, accumulator, MAR, MDR and CIR. Programming
Accumulator; ACC, Candidates need to understand the purpose, function and role of the data, address and control buses in the Language
of the
Memory Address processor.
processor Register; MAR, Memory Candidates need to understand how assembly language makes use of registers, and how data and addressed are http://www.teach-
Data Register; MDR, transferred between registers. ict.com/as_as_comp
Current Instruction Candidates need to understand the purpose and stages within the FDE cycle. Candidates need to understand how uting/ocr/H447/F453
Register; CIR). Buses: and when the registers are used within this cycle, and how and where data and addresses are transmitted to/from in /3_3_3/vonn_neuma
data, address and each part of this cycle. n/miniweb/pg3.htm
control: How this Candidates need to understand how the performance of the CPU can be affected by many factors. Candidates need
relates to assembly to understand how and why the performance is affected by the clock speed, the number of cores and the size, speed https://www.youtub
language programs. and cache. e.com/watch?v=KR2
b) The Fetch-Decode- Candidates need to have an understanding of the Von Neumann and Harvard architectures. They should be aware of ejxGq464
Execute Cycle, including the different approaches the architectures take to storing instructions and data in memory and the benefits of each
its effect on registers. approach. http://www.bbc.co.u
c) The factors affecting Candidates will not be asked about specific aspects of “contemporary processor architecture” unless k/education/guides/z
the performance of the explicitly named in the specification. They may, however, be asked to show an awareness of how mb9mp3/revision/4
CPU: clock speed, contemporary processors differ from a pure Von Neumann architecture in more open questions.
number of cores, cache. https://www.youtub
d) The use of pipelining in e.com/watch?v=tlt1X
a processor to improve _55y20
efficiency.
e) Von Neumann, Harvard https://www.youtub
and contemporary e.com/watch?v=7hB
processor architecture. 2SEZ3zqg
https://www.youtub
e.com/watch?v=V04
dtxEUjsI

http://web.cs.iastate.
edu/~prabhu/Tutoria
l/PIPELINE/pipe_title.
html

https://www.youtub
e.com/watch?v=WOE
IqDO_2Jg
1.1.2 a) The differences Candidates need to understand the differences between the CISC and RISC processors and the key features and 1.1.1 Structure and
Types of between, and uses of, benefits of each. They should be aware of the relative benefits of each architecture. function of the
processor CISC and RISC Candidates need to understand the purpose of GPUs and what applications they are used for (candidates need to processor
processors. understand how GPUs are used to aid graphics, but also other applications for example their use in modeling, data
b) GPUs and their uses mining, etc.). Candidates should understand the benefits and using GPUs and why they are suited to certain tasks https://cs.stanford.e
(including those not (specialist instructions, multiple cores and SIMD processing). du/people/eroberts/
related to graphics). Candidates need to understand what is meant by a parallel system and the benefits and limitations of parallel courses/soco/project
c) Multicore and Parallel processing. s/risc/risccisc/
systems. Candidates need to understand that parallel processing can be achieved through different (i.e. multiple processors in
the same computer or distributed or multiple cores in a CPU or GPU). https://www.youtub
Candidates need to understand the benefits of a multicore system in terms of parallel processing and running e.com/watch?v=J-
multiple programs at the same time. PJ7BNeImg

http://www.teach-
ict.com/as_as_comp
uting/ocr/H447/F453
/3_3_3/parallel_proc
essors/miniweb/pg5.
htm

https://www.youtub
e.com/watch?v=S3I5
WNHbnJ0

https://www.youtub
e.com/watch?v=jmJZ
UrRlE7Y
1.1.3 a) How different input Candidates need to have an understanding of a range of input, output and storage devices. Candidates do not need 1.1.1 Structure and
Input, output and storage to understand how the input and output devices work, but must be able to recommend appropriate devices for function of the
output devices can be applied specific situations and be able to justify choices made. processor
and as a solution of Candidates need to understand that there are different types of storage device. They need to know about the
different problems. characteristics of each type (magnetic, optical and flash) and understand the benefits and drawbacks of each, and be http://www.compute
storage
b) The uses of magnetic, able to recommend an appropriate type of device for a given situation and justify the choice. rhope.com/issues/ch
flash and optical Candidates need to understand the purpose of ROM and RAM within a computer system, their characteristics, and 001361.htm
storage devices. the role they play in the running of a range of different computers e.g. mobile devices, embedded systems etc.
c) RAM and ROM. Candidates need to understand why there is a need for virtual storage, how virtual storage works and the benefits https://www.youtub
d) Virtual storage. and drawbacks of using virtual storage. Virtual storage would be that which may appear to be local but is physically e.com/watch?v=LGY
located elsewhere on the network/remotely/in the cloud. w3KnqmKU

https://www.youtub
e.com/watch?v=U0A
QCIJOSr8
1.2 Software and software development

Types of software and the different Content clarification Links to other topics
methodologies used to develop software
1.2.1 a) The need for, function Candidates need to have an understanding of why an operating system is required, along with the different tasks it 1.1.1 Structure and
Systems and purpose of performs within a computer system (e.g. resource management, file management, interrupt handling, security, function of the
Software operating systems. providing a platform for software to run, providing a user interface and providing utilities). processor
b) Memory management Candidates need to understand how operating systems manage memory. They need to understand the need for, 1.1.2 Types of
(paging, segmentation purpose and function of paging to divide memory into useable fixed-size pages and how this aids in the transfer of processor
and virtual memory). memory for example virtual memory. Candidates need to understand what is meant by segmentation and how 1.1.3 Input, output
c) Interrupts, the role of memory is divided into segments to allow access to memory. Candidates need to understand what is meant by and storage
interrupts and Interrupt virtual memory and why this is needed in a computer system. Candidates need to understand how paging is used in 1.2.2 Applications
Service Routines (ISR), virtual memory, and the benefits and drawbacks of having and using virtual memory in a computer system. Generation
role within the fetch Candidates need to understand the purpose of interrupts within a computer system, they need to understand why an
decode execute cycle. interrupt might be generated, and what happens within CPU and memory in order to call an interrupt service routine. http://www.teach-
d) Scheduling: round Candidates need to understand the need for scheduling of tasks by an operating system and the benefits that ict.com/as_as_compu
robin, first come first scheduling brings. Candidates need to understand that there are different scheduling algorithms, which each have ting/ocr/H447/F453/3
served, multi-level benefits and drawbacks for tasks with specific characteristics. Candidates need to understand how the following _3_1/memory%20ma
feedback queues, scheduling algorithms work; round robin, first come first served, multi-level feedback queue, shortest job first and nagement/miniweb/p
shortest job first and shortest remaining time. g9.htm
shortest remaining Candidates need to understand the different (and often overlapping) classifications of operating systems (distributed,
time. embedded, multi-tasking, multi-user and real time), including the key features of each. They should be able to https://www.youtube
e) Distributed, embedded, recommend (and justify) a type of operating system for a given scenario. .com/watch?v=LKe7x
multi-tasking, multi- Candidates need to understand the role of the BIOS in a computer system, and the steps that the BIOS goes through K0bF7o
user and real time to start a computer.
operating systems. Candidates need to understand what is meant by ‘device drivers’ and why they are needed for communication http://www.studytoni
f) BIOS. between hardware and the operating system. ght.com/operating-
g) Device drivers. Candidates should be able to describe what is meant by a virtual machine, how they can be used to execute system/cpu-
h) Virtual machines, any intermediate code, how they can be used to run a software driven machine inside a physical machine and the scheduling
instance where benefits and drawbacks of each approach.
software is used to take https://www.tutorials
on the function of a point.com/operating_
machine, including system/os_types.htm
executing intermediate
code or running an http://homepage.cs.u
operating system within ri.edu/faculty/wolfe/b
another. ook/Readings/Readin
g07.htm
a) The nature of Candidates need to understand the purpose of applications, and should have knowledge and experience of a range of 2.2.1 Programming
applications, justifying different application software (for example database, word processor, web browser, graphics manipulation etc.). techniques
suitable applications for Candidates should be able to recommend the use of specific and generic applications for given scenarios, justifying
a specific purpose. their use and function(s) for a scenario. https://www.youtube
b) Utilities. Candidates need to understand the purpose and role of utility software in a computer system. Candidates should be .com/watch?v=_PAsX
c) Open source vs closed familiar with a range of utility software (e.g. disk defragmentation, file management, device driver, system cleanup, KddNF4
source. security etc.)
d) Translators: Candidates need to be able to explain the differences between open and closed source software, the benefits and https://www.youtube
interpreters, compilers drawbacks to creator and user of each of the licensing models, and be able to recommend which is used (with .com/watch?v=yxu7N
and assemblers. justification) for a specific scenario. qu1ZuQ
e) Stages of compilation Candidates need to understand the need for translators when writing programs. They need to have knowledge of
(Lexical analysis, Syntax the differences in operation of interpreters and compilers, from these they need to be able to assess the benefits and https://www.itgct.co
analysis, Code drawbacks of using each type, and recommend with justification which should be used in a specific scenario. m/whats-the-
generation and Candidates need to understand the role of an assembler and how it differs from interpreters and compilers. difference-between-
Optimisation). Candidates need to understand that there are a number of stages involved in compilation. Candidates need to open-source-and-
f) Linkers and loaders and understand how lexical analysis works and how the code is converted into tokens with the removal of unnecessary closed-source-
use of libraries. element (e.g. comments and whitespace). Candidates need to understand how rules of the languages. Candidates software/
need to understand how syntax errors are identified and reported at the end of the syntax analysis. Candidates need
to understand how the abstract syntax tree will be fed into the next stage of code generation, and that the object https://www.youtube
code is then created. Candidates need to understand why optimisation is important the result of lexical analysis .com/watch?v=UutE0I
feeds into syntax analysis, and how the tokens are checked to ensure they meet the during (and after) code AWzBA
generation.
Candidates need to understand what code libraries are, how they are used and the benefits and drawbacks from https://www.tutorials
using libraries. Candidates should have experience of using libraries to write programs. Candidates should point.com/compiler_
understand how libraries are used during compilation, and how linkers and loaders are used to combine the code and design/compiler_desi
library code into the final executable file. gn_lexical_analysis.ht
m

https://www.tutorials
point.com/compiler_
design/compiler_desi
gn_syntax_analysis.ht
m

https://www.tutorials
point.com/compiler_
design/compiler_desi
gn_code_generation.
htm

https://www.tutorials
point.com/compiler_
design/compiler_desi
gn_code_optimization
.htm
1.2.3 a) Understand the Candidates need to understand the following models that can be followed to produce a software system, the https://www.tutorials
Software waterfall lifecycle, agile waterfall lifecycle, agile methodologies (specifically extreme programming) the spiral model and rapid application point.com/sdlc/sdlc_
Developm methodologies, development). They need to understand the tasks, processes, benefits and drawbacks of each model and the waterfall_model.htm
ent extreme programming, similarities and differences between each. They need to understand where each model is most suitable to use, and
the spiral model and be able to justify the use in a situation. http://agilemethodol
rapid application Candidates need to be able to write algorithms using pseudocode and/or program code. Candidates need to be able ogy.org/
development. to follow the code as shown in the OCR pseudocode guide, but are not expected to write code in this syntax.
b) The relative merits and Candidate’s code is not expected to be syntactically correct, but must use appropriate code structures. https://www.tutorials
drawbacks of different point.com/sdlc/sdlc_r
methodologies and ad_model.htm
when they might be
used. https://narbit.wordpr
c) Writing and following ess.com/2012/06/10/
algorithms. the-differences-
between-life-cycle-
models-advantages-
and-disadvantages/
1.2.4 a) Need for and Candidates need to understand that there are a variety of types of programming paradigms such as procedural, OOP, 2.2.1 Programming
Types of characteristics of a low-level, and that each has its strengths and weaknesses in specific scenarios, topics or areas. techniques
Programm variety of programming Candidates need to have knowledge and experience of using a procedural programming language for example 2.3.1 Algorithms
ing paradigms. Python, VB.NET etc. Candidates need to be experienced in using procedural programming features such as (but not
Language b) Procedural languages. limited to) variables, constants, selection, iteration, sequence, subroutines, string handling, file handling, Boolean and https://www.techope
c) Assembly language arithmetic operators. Candidates need to be able to read, trace, amend and write procedural program code. dia.com/definition/89
(including following and Candidates need to have an understanding of the purpose and need for assembly language. They need to be familiar 82/procedural-
writing simple programs with the instructions given in Appendix 5d. They should be able to read, write, trace and amend programs written in language
with the Little Man the Little Man Computer language.
Computer instruction Candidates need an understanding of addressing, which should be integrated with assembly language. Candidates https://www.youtube
set). See appendix 5e. should have experience of using immediate, direct, indirect and indexed addressing in the writing, reading and .com/watch?v=v2Fkpl
d) Modes of addressing tracing of programs written in assembly language. TqRI4
memory (immediate, Candidates need to understand object-oriented code (as specified in the pseudocode guide). They need to have an
direct, indirect and understanding of classes, objects, attributes and methods. They need to understand the difference between private http://peterhigginson.
indexed). and public attributes and methods. Candidates need to understand encapsulation and the use of get and set co.uk/lmc/
e) Object-oriented methods to access private attributes. Candidates need to understand the purpose and principles of inheritance.
languages (See appendix Candidates need to have an understanding of polymorphism and how it can be used within a program. Candidates http://www.yorku.ca/
5e for pseudocode style) need to be able to read, trace, amend and write code that makes use of these object-oriented techniques. sychen/research/LMC
with an understanding /
of classes, objects,
methods, attributes, https://www.codepro
inheritance, ject.com/Articles/227
encapsulation and 69/Introduction-to-
polymorphism. Object-Oriented-
Programming-Concep

https://www.youtube
.com/watch?v=qgepc
WImUAU

https://www.youtube
.com/watch?v=MiVEc
bahOTA

https://www.youtube
.com/watch?v=rsUbu
vABV8w

https://www.youtube
.com/watch?v=TS3K3
Qj6CBs
https://www.youtube
.com/watch?v=Pjvo3A
KtrgM

http://www.teach-
ict.com/as_as_compu
ting/ocr/H447/F453/3
_3_8/lowlevel/miniw
eb/index.htm

1.3 Exchanging data

How data is exchanged between Content clarification Links to other topics


different systems

1.3.1 a) Lossy vs Lossless Candidates need to understand the need for compression, especially when transferring data via the Internet. 1.4.2 Data structures
Comp compression. Candidates need to understand the difference between lossy and lossless compression, and the benefits and
ressio b) Run length encoding and drawbacks of each type. Candidates need to be able to recommend a type of compression for a given scenario. https://www.youtub
n, dictionary coding for lossless Candidates need to understand how run-length encoding can reduce the size of a file for example a text file or image. e.com/watch?v=1tzkl
Encry compression. Candidates should understand how dictionary coding works by substituting entries with a unique code. Candidates qVE9rs
ption c) Symmetric and asymmetric should have practical experience of using these algorithms with small example files.
and encryption. Candidates should understand the need for encryption. Candidates should understand how symmetric and https://www.youtub
Hashi d) Different uses of hashing. asymmetric encryption work to encrypt and decrypt data. e.com/watch?v=ypd
ng Candidates should understand the need for and purpose of using hashing algorithms to store data. Candidates Nscvym_E
should be aware of different uses for hashing, such as the storing of passwords.
http://computer.how
stuffworks.com/encr
yption2.htm

https://www.youtub
e.com/watch?v=E5FE
qGYLL0o

https://www.youtub
e.com/watch?v=ERp8
420ucGs
1.3.2 a) Relational database, flat file, Candidates need to understand what is meant by a database. Candidates should be familiar with basic database http://www.studyton
Data primary key, foreign key, terminology such as fields, records and tables. Candidates should know the difference between a flat file and a ight.com/dbms/data
bases secondary key, entity relational database, and be able to explain the benefits and limitations of each approach. base-
relationship modeling, normalization.php
normalisation and indexing.
See appendix 5g. Candidates should be able to use Normalisation to produce a suitable database schema and explain the benefits of https://www.lucidch
b) Methods of capturing, doing so. They should be able to normalise up to 3NF. The should know and be able to apply the criteria for 1NF, art.com/pages/er-
selecting, managing and 2NF and 3NF. diagrams
exchanging data.
c) Normalisation to 3NF. Candidates should know what is meant by a primary key, foreign key and secondary key and how each are used in a https://www.youtub
d) SQL - Interpret and modify. database. Candidates should be able produce and follow Entity relationship diagrams which include 1:1, 1:M and e.com/watch?v=KgBd
See appendix 5e. M:M relationships. They should be able to identify how tables should be linked. 7TrR1Oc
e) Referential Integrity.
f) Transaction processing, ACID http://www.w3schoo
(Atomicity, Consistency, Candidates need to have an awareness of a range of methods for capturing data (such as forms, OCR, OMR and ls.com/sql/
Isolation, Durability), record sensors) selecting data (such as Query By Example and SQL), managing data (such as changing data by manipulating it
locking and redundancy. – e.g. arithmetic functions , adding, editing, deleting the data) and exchanging data (with commons formats such as http://searchsqlserve
CSV and JSON). Candidates won’t be specifically asked about any one of these methods but may be asked to r.techtarget.com/defi
discuss/justify suitable methods as part of a more open question. Candidates need to have an understanding of the nition/ACID
need to interrogate data within a database. Candidates should understand the purpose of indexing in a database and
the benefits of using indexing to optimise the searching for data. Candidates need to have experience of a range of http://www.service-
methods for capturing data (such as forms – what do they collect, what do they look like - data mining, where does architecture.com/arti
the data come from, how is it collected and analysed), selecting data (such as how to produce QBEs – adding fields, cles/database/acid_p
tables, criteria, sorting - selecting through Boolean expressions – AND, OR, NOT), managing data (such as changing roperties.html
data by manipulating it – e.g. arithmetic functions - , adding, editing, deleting the data) and exchanging data (such as
methods of transferring data – electronic i.e. memory stick, e-mail, and non-electronic e.g. paper based - appropriate https://www.youtub
formats for the transfer of data and communication mediums to transfer data – such as the structure, is it in a table e.com/watch?v=DgzL
or a list).(such as forms, data mining), selecting data (such as producing QBEs, selecting through Boolean RfqrDQs
expressions), managing data (such as manipulation, adding, editing, deleting) and exchanging data (such as methods
of transferring data, appropriate formats for the transfer of data and communication mediums to transfer data).

Candidates should have experience of using SQL to edit and modify data in a database. They should understand the
need for SQL as a standard language. Candidates should be able write and follow scripts using the SQL commands
listed in appendix 5e.
Candidates need to understand what is meant by referential integrity, and why this is desirable in a database.

Candidates should understand what is meant by transaction processing, and scenarios where transaction processing
takes place. Candidates should understand the problems that arise from transaction processing, and how these can
be overcome. Candidates should understand the ACID rules for transaction processing, and why databases should be
built to these standards. Candidates should understand how record locking prevents the overriding of data, and
understand how record locking takes place.
1.3.3 a) Characteristics of networks Candidates need to understand the definition and purpose of a network. 1.3.4 Web
Netw and the importance of Candidates need to understand the purpose of, and importance of using protocols. They should be able to discuss Technologies
orks protocols and standards. examples of protocols that may be used in a network/the internet (but will not be asked to recall information about
b) The internet structure: any specific protocol). Candidates should understand the term standard and the purpose and need for standards in a https://www.youtub
• The TCP/IP Stack. network (or any situation where data is transferred). e.com/watch?v=jz2Jh
• DNS Candidates need to understand the purpose and benefits of layering protocols, particularly within the TCP/IP stack. UGZDjY
• Protocol layering. Candidates need to know the different layers within the TCP/IP stack and the purpose of each. Candidates need to
• LANs and WANs. understand how data is transmitted on the Internet, the use of IP addresses and packets in the transfer of data. (NB http://www.compute
• Packet and circuit Candidates are not expected to be familiar with the OSI model). rworld.com/article/2
switching. Candidates are expected to understand the terms LAN and WAN. 593382/networking/
c) Network security and threats, Candidates need to understand how the Domain Name System is used to find the IP of a URL is found. networking-packet-
use of firewalls, proxies and Candidates need to understand the purpose, function, benefits and drawbacks of both packet and circuit switching. switched-vs-circuit-
encryption. Candidates need to be able to suggest packet or circuit switching for a given scenario. switched-
d) Network hardware. Candidates need to understand that there are a range of security issues and threats involved with networked networks.html
e) Client-server and peer to computers. Candidates need to be aware of threats such as hackers, viruses, unauthorised access, denial of service,
peer. spyware, SQL injection, phishing and pharming. Candidates need to know about ways of minimising, or preventing https://www.youtub
these threats for example firewalls, secure passwords, anti-virus, anti-spyware etc. e.com/watch?v=WBB
Candidates need to have knowledge of the hardware required to connect to and/or build a network (e.g. modem, p13dTMS0
router, cable, NIC, Wireless Access Points, hub, switch etc). Candidates need to understand the purpose of the
hardware, but are not required to understand how they physically work. https://www.getcybe
Candidates need to understand the difference between a client-server and peer-to-peer network. Candidates need rsafe.gc.ca/cnt/rsks/c
to know the benefits and drawbacks of each type of network and be able to recommend one for a given scenario. mmn-thrts-en.aspx
1.3.4 a) HTML, CSS and JavaScript. Candidates need to understand the purpose of HTML, CSS and JavaScript. Candidates should have experience of 1.3.3 Networks
Web See appendix 5e. writing webpages using HTML, CSS and JavaScript. Candidates need to be able to recognise the code in Appendix 5d,
Tech b) Search engine indexing. and be able to read, write, amend and interpret code using HTML, CSS and JavaScript. http://www.w3schoo
nolog c) PageRank algorithm. Candidates should understand how and why search engine results are indexed. They should understand how ls.com/html/
ies d) Server and client side PageRank ranks these results. Candidates should understand how page rank works at a high level but are not
processing. expected to be able to code the algorithm. http://www.w3schoo
Candidates need to understand the difference between server and client side processing, and should be aware of ls.com/js/default.asp
examples (for example Javascript code vs PHP code) of processing on both sides. Candidates should be aware of the
benefits and drawbacks of both types of processing. http://www.w3schoo
ls.com/css/default.as
p

https://www.youtub
e.com/watch?v=1tzkl
qVE9rs

http://www.cs.prince
ton.edu/~chazelle/co
urses/BIB/pagerank.h
tm

https://www.youtub
e.com/watch?v=UfYf
rK6shWU

http://www.htmlbasi
ctutor.ca/search-
engine-indexing.htm
1.4 Data types, data structures and algorithms

How data is represented and stored Content clarification Links to other topics
within different structures. Different
algorithms that can be applied to these
structures
1.4.1 a) Primitive data types, integer, Candidates need to have an understanding of programming data types such as integer, real, Boolean, character string 1.4.3 Boolean
Data real/floating point, character, etc. Candidates need to be able to choose appropriate data types for a situation or given data. Candidates should Algebra
Type string and Boolean. have experience of programming solutions using these data types. Candidates should have knowledge of how to
s b) Represent positive integers in convert from one data type to another.
binary. Candidates should understand how and why computers store data as binary using switches, and that a binary http://www.bbc.co.uk
c) Use of sign and magnitude number can have a variety of different interpretations depending on what is being stored (e.g. numeric, text, image, /education/guides/zw
and two’s complement to sound). sbwmn/revision/7
represent negative numbers Candidates should be able to convert positive whole numbers to binary and from binary to decimal/denary.
in binary. Candidates should know how to store negative numbers using Sign and Magnitude and two’s complement. http://thestarman.pc
d) Addition and subtraction of Candidates should be able to convert denary numbers to sign and magnitude, and two’s complement – and vice- ministry.com/asm/he
binary integers. versa. xawhat.html
e) Represent positive integers in Candidates should be able to perform addition and subtraction on integer binary numbers. (These numbers could be
hexadecimal. positive or negative using two’s complement representation.) http://www.bbc.co.uk
f) Convert positive integers Candidates need to have an understanding of the purpose and potential uses of Hexadecimal for example where and /education/guides/zjf
between Binary Hexadecimal why they are used instead of binary and the benefits of using Hexadecimal over alternatives such as binary. gjxs/revision/5
and denary. Candidates should be able to convert denary numbers to hexadecimal and vice-versa and from binary to hexadecimal
g) Representation and and vice-versa. https://www.youtube
normalisation of floating Candidates should have an understanding of how (positive and negative) real numbers are represented in a binary .com/watch?v=49sh9
point numbers in binary. floating-point representation, and should be able to convert between a denary number and a real binary number. kuza9w
h) Floating point arithmetic, (NB the representation used for the exam is the mantissa and exponent both represented using two’s complement.)
positive and negative Candidates should understand the need for normalised floating point numbers. Candidates should be able to https://www.youtube
numbers, addition and normalise a floating point number. .com/watch?v=X7xDY
subtraction. Candidates should be able to perform addition and subtraction floating point arithmetic including addition and WXRjvE
i) Bitwise manipulation and subtraction of both positive and negative numbers.
masks: shifts, combining with Candidates should be able to perform right and left logical shifts. Candidates should understand the effect of right https://www.youtube
AND, OR, and XOR. and left shifts on a binary numbers. .com/watch?v=aQhXr
How character sets (ASCII and Candidates should understand the purpose of using masks with bitwise operators, and should have experience of up5k_4
UNICODE) are used to applying masks using AND, OR and XOR.
represent text. Candidates should have an understanding of how characters are represented in a computer and in binary. https://www.youtube
Candidates should understand the need for a character set and how a computer makes use of a character set. .com/watch?v=Ix9U1
Candidates should be aware of the ASCII and UNICODE character sets and be able to explain the differences between qR3c3Q
these and how these impact what can be stored. Candidates should be able to use a character set, or part of a
character set, to translate characters into binary and vice-versa. (Candidates are not expected to memorise any https://www.youtube
values in a character set) .com/watch?v=dm0Q
esrfBEo
1.4.2 a) Arrays (of up to 3 dimensions), Candidates should be able to describe what is meant by arrays (up to 3 dimensions), records, lists and tuples. They 1.2.4 Types of
Data records, lists, tuples. are expected to be able recognise when they can be used and incorporate them in their programs to store data. programming
Struc b) The following structures to Candidates need to have an understanding of the behaviour of linked-lists, graphs, stacks, queues, trees, binary language
tures store data: linked-list, graph search trees and hash tables. 2.2.1 Programming
(directed and undirected), techniques
stack, queue, tree, binary Candidates need to be able be aware of how the aforementioned data structures can be implemented. We would 2.3.1 Algorithms
search tree, hash table. recommend a general understanding of these principles that can be applied to a given scenario rather than trying to
c) How to create, traverse, add memorise code patterns. https://www.cs.cmu.e
data to and remove data from du/~adamchik/15-
the data structures mentioned Candidates should have experience of implementing these structures in a variety of contexts, for example through a 121/lectures/Stacks%
above. (This can be either procedural program, through a different data structure and through an object-oriented approach. Candidates need 20and%20Queues/Sta
using arrays and procedural to be able to read, trace and write code to implement features of these data structures. (Again we would recommend cks%20and%20Queue
programming or an object- a general understanding backed up with practice implementing them, rather than trying to memorise code patterns). s.html
oriented approach).
https://www.tutorials
point.com/data_struc
tures_algorithms/stac
k_algorithm.htm

https://www.tutorials
point.com/data_struc
tures_algorithms/dsa
_queue.htm

https://www.cs.bu.ed
u/teaching/c/stack/ar
ray/

https://www.youtube
.com/watch?v=sFVxsg
lODoo

https://www.youtube
.com/watch?v=okr-
XE8yTO8

https://www.cs.bu.ed
u/teaching/c/queue/a
rray/types.html

https://www.tutorials
point.com/data_struc
tures_algorithms/link
ed_lists_algorithm.ht
m
1.4.3 a) Define problems using Candidates should be familiar with AND, OR, NOT and XOR. Candidates should be familiar with the logic of each 1.4.1 Data types
Bool Boolean logic. See appendix Boolean operator, and the truth tables. Candidates should be able to construct logic gate diagrams from a Boolean
ean 5e. expression and vice-versa. Candidates should be able to construct truth tables from Boolean expressions and logic http://www.ee.surrey
Alge b) Manipulate Boolean gate diagrams. .ac.uk/Projects/Labvie
bra expressions, including the use Candidates should have an understanding that Boolean expressions can be simplified and should have experience of w/minimisation/karna
of Karnaugh maps to simplify simplifying expressions using Karnaugh maps. Candidates should be able to create, complete and interpret Karnaugh ugh.html
Boolean expressions. maps to simplify Boolean expressions.
c) Use the following rules to Candidates should be aware of the given De Morgan’s laws and should be able to apply these to a Boolean http://www.32x8.com
derive or simplify statements statement. Candidates should have experience of manipulating and simplifying Boolean statements using these rules /
in Boolean algebra: De of distribution, commutation, association and double negation.
Morgan’s Laws, distribution, Candidates need to understand the purpose and principles of D type flip flops and how and where they are used in a https://www.youtube
association, commutation, computer. They should be able to recognise how they can be triggered by a clock pulse (see practice paper 2 for an .com/watch?v=0Btcqx
double negation. example). Candidates are not expected to memorise the logic gates that make up a D-type flip flop. p_ypo
d) Using logic gate diagrams and
truth tables. See appendix 5e. Candidates need to understand the purpose and function of an adder circuit, and the difference between a half and https://www.youtube
e) The logic associated with D full adder. They should be able to recognise and draw the logic gates and truth tables for full and half adders. .com/watch?v=dU_oe
type flip flops, half and full b4m40s
adders.
https://www.youtube
.com/watch?v=GuYuB
sO15FM

http://theteacher.info
/index.php/computin
g-principles-01/1-4-
data-types-structures-
and-algorithms/1-4-3-
boolean-
algebra/2253-d-type-
flip-flops

https://www.youtube
.com/watch?v=_UTVE
qtwPu4

http://www.ee.surrey
.ac.uk/Projects/Labvie
w/boolalgebra/

https://www.youtube
.com/watch?v=WfA4z
lARZ7k
1.5 Legal, moral, cultural and ethical issues

The individual (moral), social (ethical) and Content clarification Links to other topics
cultural opportunities and risks of digital
technology. Legislation surrounding the
use of computers and ethical issues that
can or may in the future arise from the use
of computers
1.5.1 a) The Data Protection Act Candidates need to have an understanding of the need for and purpose of laws relating to the use of computers. http://www.legislatio
Comput 1998. Candidates should be familiar with the purpose and role of the Data Protection Act, candidates will need to n.gov.uk/ukpga/2000/
ing b) The Computer Misuse Act understand the different rules that are within the DPA and how these impact the use of computers and the storage 23/contents
related 1990. of data by organisations, this should include what organisations can and cannot do.
legislati c) The Copyright Design and Candidates need to understand the purpose and principles of the Computer Misuse Act, including the actions that it https://www.youtube
on Patents Act 1988. prohibits. .com/watch?v=tWy65
The Regulation of Candidates need to understand the purpose and principles of the Copyright and Patents Act, including the actions hmOkWU
Investigatory Powers Act that it prohibits.
2000. Candidates need to understand the purpose and principles of the Regulation of Investigatory Powers Act, and what https://www.youtube
this allows in the interception and monitoring of electronic communication. .com/watch?v=adKnb
Candidates need to understand how the regulations impact organisations and the use of computers and electronic -eZzCc
communication.

We are aware the law is constantly changing and some of the mentioned laws (most notably the DPA) are likely to
change over the course of the specification. Answers will be accepted that use an interpretation of the law based on
when the specification was started or when the examination was sat.
1.5.2 a) The individual (moral), Candidates need to understand what is meant by moral, social, ethical and cultural issues in relation to the use of http://www.bbc.co.uk
Ethical, social (ethical) and cultural computers. /ethics/introduction/i
moral opportunities and risks of Candidates need to understand how the use of computers, and the increasing use of computers in the work force has ntro_1.shtml
and digital technology: moral, social, ethical and cultural implications and risks to a variety of people such as the employees, employers,
cultural • Computers in the society and organisations. http://aitopics.org/to
issues workforce Candidates need to understand how the use of computers to make decisions automatically has moral, social, ethical pic/ethics-social-
• Automated and cultural implications and risks to a variety of people such as those people who make the decisions, the people issues
decision making the decisions affect, and the need for additional collection of information to ensure the decisions are accurate and
• Artificial valid. https://philosophyno
intelligence Candidates need to understand how the development of artificial intelligence has moral, social, ethical and cultural w.org/issues/110/Sur
• Environmental impacts on a variety of people. veillance_Ethics
effects Candidates need to understand how the environmental effects of computers (such as disposal, energy use) have
• Censorship and the moral, social, ethical and cultural implications. http://www.informati
Internet Candidates need to understand how the Internet, and censorship on the Internet has moral, social, ethical and onisbeautiful.net/visu
• Monitor behavior cultural implications. alizations/colours-in-
• Analyse personal Candidates need to understand the moral, social, ethical and cultural implications of using computers to monitor cultures/
information behaviour (such as CCTV, tracking phone calls, GPS, monitoring emails and privacy issues associated with this).
• Piracy and Candidates need to understand the moral, social, ethical and cultural implications of using computers to analyse http://www.empower
offensive personal information (such as the gathering, storing and analysing of medical records). -yourself-with-color-
communications Candidates need to understand the moral, social, ethical and cultural implications of piracy and offensive psychology.com/cultu
• Layout, colour communications on a range of people including those performing the actions, and those they are put upon. ral-color.html
paradigms and Candidates need to understand how different cultures impact on the use of and creation of computers and programs.
character sets. For example languages make use of different characters, and how this in turn impacts the use of character sets.
Some languages read left to right, and others right to left. Candidates should understand how colours have different
meanings in different cultures for example red means danger in one culture, and luck in another. Candidates need to
consider how these will impact the creation of computer applications.
Component 2

2.1 Elements of computational thinking


Understand what is meant by Content clarification Links to other topics
computational thinking
2.1.1 a) The nature of abstraction. Candidates need to understand the term abstraction and its purpose in the design and creation of computer 2.1.2 Thinking ahead
Thinking b) The need for abstraction. programs. Candidates need to understand the benefits of abstraction and apply these benefits to a specific scenario. 2.1.3 Thinking
abstractl c) The differences between Candidates may be given a scenario and be asked how abstraction can be applied to it, how it has been applied or procedurally
y an abstraction and reality. how further abstraction can be applied. Candidates need to have an understanding of how reality differs to 2.1.4 Thinking
d) Devise an abstract model abstraction and understand the differences between reality and abstraction. Candidates may be given a logically
for a variety of situations. scenario/example and be asked how the abstraction differs from the reality. 2.1.5 Thinking
concurrently

http://www.bbc.co.uk
/education/guides/ztt
rcdm/revision

http://whatis.techtarg
et.com/definition/abs
traction

2.1.2 a) Identify the inputs and Candidates need to understand that situations/programs require input and output, and that the outputs can be in 2.1.1 Thinking
Thinking outputs for a given digital and/or hard copy format. Candidates may be given a description, diagram, or pseudocode for a scenario, and abstractly
ahead situation. they will need to demonstrate an understanding of the inputs and outputs required and/or are used in that scenario. 2.1.3 Thinking
b) Determine the For a description (or similar) of a program, candidates need to be able to determine what additional conditions they procedurally
preconditions for devising need to know before they can produce a solution, and how this information may affect the solution. 2.1.4 Thinking
a solution to a problem. Candidates need to have an understanding of the purpose of caching in programming, and how it can be used when logically
c) The nature, benefits and writing a program. Candidates need to be able to apply their knowledge of caching to a scenario to demonstrate an 2.1.5 Thinking
drawbacks of caching. understanding of how it can be used. Candidates need to understand the benefits and drawbacks of using caching in concurrently
d) The need for reusable a program.
program components. https://www.youtube
.com/watch?v=hwnHf
oLFeR8

https://www.youtube
.com/watch?v=nERzjx
7fzYQ

https://www.youtube
.com/watch?v=b5v9a
ElYU2I
2.1.3 a) Identify the components of Candidates need to be able to deconstruct a program and identify its component marks, for example listing the parts 2.1.1 Thinking
Thinking a problem. or completing a structure chart. Candidates may be given some component parts and be asked to add to, or abstractly
procedur b) Identify the components of complete these, from a written description of pseudocode code for a program. 2.1.2 Thinking ahead
ally a solution to a problem. Candidates need to be able to identify the steps that will take place to complete an algorithm, or program, and be 2.1.4 Thinking
c) Determine the order of the able to write these in a suitable format (such as a flowchart or pseudocode), and put a given list into the correct logically
steps needed to solve a order to produce a working program. Candidates may need to write pseudocode, code, or draw a flowchart to show 2.1.5 Thinking
problem. a sequence of steps. concurrently
d) Identify sub-procedures Candidates need to understand the use and purpose of sub-procedures in program. They need to be able to identify
necessary to solve a where sub-procedures may be used, and write appropriate pseudocode, code and/or flowchart(s) for these sub- http://www.bbc.co.uk
problem. procedures, making use of parameters where appropriate. /guides/z8ngr82
Candidates may be given a structure diagram that they will need to interpret, or complete, to identify these sub-
procedures. https://www.youtube
.com/watch?v=ZLQ4lt
DnHh4

2.1.4 a) Identify the points in a Candidates need to understand that decisions are made within programs, and they need to be able to identify where 2.1.1 Thinking
Thinking solution where a decision these decisions will take place within an algorithm or program. They need to understand what these decisions are, abstractly
logically has to be taken. and the impact of these decisions (and the outcomes) on the algorithm/program. Candidates need to understand 2.1.2 Thinking ahead
b) Determine the logical that there can be many different routes through a program, and understand how decisions influence these routes 2.1.3 Thinking
conditions that affect the and outcomes. procedurally
outcome of a decision. 2.1.5 Thinking
c) Determine how decisions concurrently
affect flow through a
program. https://www.youtube
.com/watch?v=L-
4GHnp2QoQ

https://www.youtube
.com/watch?v=Xhk9F
3CTJQI
2.1.5 a) Determine the parts of a Candidates need to understand what is meant by thinking concurrently. They need to be able to work out which parts 2.1.1 Thinking
Thinking problem that can be of a program can be developed to take place (be processed) at the same time, and which parts are dependent on abstractly
concurre tackled at the same time. other parts. 2.1.2 Thinking ahead
ntly b) Outline the benefits and Candidates need to understand the benefits and trade offs that are brought from concurrent processing, and be able 2.1.3 Thinking
tradeoffs that might result to apply these to a given scenario. procedurally
from concurrent For example, candidates need to understand how concurrent processing could be applied to a specific program, why 2.1.4 Thinking
processing in a particular it would be applied to that program, and what problems might arise from using it. logically
situation.
http://searchoracle.te
chtarget.com/definiti
on/concurrent-
processing
2.2 Problem solving and programming

How computers can be used to solve Content clarification Links to other topics
problems and programs can be written
to solve them
(Learners will benefit from being able to
program in a procedure/imperative
language and object oriented language.)
2.2.1 a) Programming constructs: Candidates need to understand the constructs of sequence, iteration and branching. They must be able to use 2.3.1 Algorithms
Progra sequence, iteration, these constructs independently of each other, and combine them to produce a solution. These include the 1.4.1 Data types
mming branching. selection statements of IF (including ELSEIF and else) and select case statements. These also include both 1.4.2 Data structures
techniq b) Recursion, how it can be condition based iteration (e.g. while, repeat until) and count controlled iteration (e.g. FOR) – as well as how
used and compares to an condition based iteration can be used as count controlled. http://vle.moirahouse.co.uk
ues
iterative approach. Candidates need to have an understanding of the principle of recursion and the key features that produce a /studentwebsites/ict/thetea
c) Global and local variables. recursive algorithm such as a stopping condition. They need to be able to read and trace recursive functions, cherict/newalevel/cp1_2_1.
d) Modularity, functions and write recursive functions, and translate a recursive function to an iterative solution and vice-versa. Candidates htm
procedures, parameter need to have an understanding of the benefits and drawbacks of using both a recursive and iterative solution.
passing by value and by Candidates need to be able to read, create and trace code (for example using a trace table) that uses these http://users.csc.calpoly.edu
reference. three constructs. /~jdalbey/SWE/pdl_std.htm
e) Use of an IDE to Candidates need to understand the use and need for variables in a program, and must understand the l
develop/debug a difference, benefits and drawbacks of both global and local variables.
program. Candidates must be able to recognise where local and global variables are used, and the impact that these https://www.youtube.com/
f) Use of object oriented have on a program, for example the amount of memory used. Candidates need to understand how a program watch?v=aIQqy-xNVlo
techniques using global variables can be changed to use local variables – and vice-versa.
Candidates need to understand what is meant by modular code, and how this can be produced using functions https://www.youtube.com/
and procedures. Candidates need to understand the differences between functions and procedures and how watch?v=1uTKz7sk37s
each is used within a program. Candidates need to be able to read, trace and write code that uses functions
and procedures. Candidates need to understand the purpose and use of parameters within a program, and https://www.youtube.com/
how they are used in functions and procedures. Candidates need to be able to read, trace and write code that watch?v=ecjOXTXBAXs
makes use of parameters.
Candidates need to understand the difference between passing a parameter by value and by reference, and
they need to understand the benefits and drawbacks of each – recommending which should be used for a https://www.codeproject.c
given situation. Candidates need to be able to read, trace and write code that makes use of parameters om/Articles/22769/Introduc
passed both by value and by reference. tion-to-Object-Oriented-
Candidates should have had experience of using an IDE to produce code. Candidates need to understand how Programming-Concep
an IDE can be used to produce code, and understand the range of features and tools that are within an IDE,
that can be used to help produce and debug a program. https://www.youtube.com/
Candidates need to understand the purpose of object-oriented code. They need to have an understanding of watch?v=MiVEcbahOTA
classes, objects, properties, attributes, methods. They need to understand the difference between private and
public properties, attributes and methods. Candidates need to understand encapsulation and the use of get https://www.youtube.com/
and set methods to access private properties. Candidates need to understand the purpose and principles of watch?v=rsUbuvABV8w
inheritance, super-classes, parent-classes and sub-classes. Candidates need to have an understanding of
polymorphism and how it can be applied to classes. Candidates need to be able to read, trace and write code https://www.youtube.com/
that makes use of these object-oriented techniques. Candidates need to be able to interpret class diagrams to watch?v=TS3K3Qj6CBs
produce class definitions. Candidates need to be able to identify where object-oriented programming can be
used in a solution, and derive an object-oriented solution for a given scenario. https://www.cs.umd.edu/cl
ass/fall2002/cmsc214/Tutor
ial/recursion2.html

http://www2.hawaii.edu/~t
p_200/lectureNotes/recursi
on.htm

2.2.2 a) Features that make a Candidates need to be able to determine if a problem can be solved using computational methods, such as 2.1.1 Thinking abstractly
Comput problem solvable by decomposition, abstraction, calculations, storage of data. 2.1.2 Thinking ahead
ational computational methods. Candidates need to be able to recognise a problem from a description of scenario decompose the problem, 2.1.3 Thinking procedurally
methods b) Problem Recognition. and use abstraction to design a solution. 2.1.4 Thinking logically
c) Problem Decomposition. Candidates need to understand how divide and conquer can be used within a task, to split the task down into 2.1.5 Thinking concurrently
d) Use of divide and smaller tasks that are then tackled. Candidates also need to identify how tasks can be carried out
conquer. simultaneously to produce a solution.
e) Use of abstraction. Candidates need to understand the purpose of backtracking within an algorithm, for example when traversing https://www.tutorialspoint.
f) Learners should apply a tree. Candidates need to be able to read, trace and write code that makes use of backtracking for a given com/data_structures_algori
their knowledge of: scenario. thms/divide_and_conquer.h
• backtracking Candidates need to understand what is meant by data mining, and how data mining is used in a situation. tm
• data mining Candidates need to understand the complexities within data mining and how a program will search for and
• heuristics interrogate the data. http://algorithms.tutorialho
• performance Candidates need to understand what is meant by heuristics, and how they can be used within a program (for rizon.com/introduction-to-
modelling example the A* algorithm). Candidates should have some experience of programming a simple heuristic, and backtracking-programming/
• pipelining be able to apply their knowledge to a given scenario to explain the purpose and benefits of using heuristics in a
• visualisation to solution. https://www.youtube.com/
solve problems. Candidates need to understand the principles, and purpose of performance modelling, and how it is used in watch?v=R-sGvh6tI04
the production of software.
Candidates need to understand the principle of pipelining and how it is used within programming (for example http://theory.stanford.edu/
the result from a process feeds into the next process). ~amitp/GameProgramming/
Candidates need to understand how visualisation can be used to create a mental model of what a program will Heuristics.html
do or work, and that from this they can plan ahead what is going to happen or what they will need to do.
2.3 Algorithms

The use of algorithms to describe Content clarification Links to other topics


problems and standard algorithms
2.3.1 a) Analysis and design Candidates need to be able to write algorithms using flow charts, pseudocode and program code. Candidates need to 2.2.1 Programming
Algorith of algorithms for a be able to follow the code as shown in the OCR pseudocode guide, but are not expected to write code in this. techniques
ms given situation. Candidates’ code is not expected to be syntactically perfect, but must use appropriate structures and techniques. 2.2.2 Computational
b) The suitability of Candidates need to understand that there are a range of possible solutions to a task, and that these algorithms may be methods
different algorithms different in respect to their execution time and the amount of memory they make use of. Candidates need to be able 1.4.2 Data structures
for a given task and to compare different algorithms for a given data set and demonstrate an understanding of which is more efficient in
data set, in terms of terms of speed and/or memory. Candidates need to be able to compare the use of one or more algorithms against http://bigocheatsheet.com/
execution time and several different data sets, to determine how they will differ in their use of memory and speed of execution.
space. Candidates need to understand how the efficiency of an algorithm is measured using Big O notation. Candidates need https://rob-
c) Measures and to be understand the meaning of constant, linear, polynomial, exponential and logarithmic complexity. They need to bell.net/2009/06/a-
methods to be able to recognise, and draw, each of these complexities of using a graph, and be able to read and write the beginners-guide-to-big-o-
determine the notation. Candidates need to know the best and worst case complexities for the searching and sorting methods. notation/
efficiency of Candidates need to understand the difference between best case, average case and worst case complexities, and how
different and why these can differ for an algorithm. https://www.youtube.com/
algorithms, Big O Candidates need to have an understanding of the situations where queues, stacks, trees etc. can be used, and be able watch?v=v4cd1O4zkGw
notation. (Constant, to recommend and justify their use In specific scenarios or programs.
linear, polynomial, Candidates need to have an understanding of a stack as a dynamic data structure. Candidates need to be able to add
exponential and and remove items to a stack. Candidates need to be able read, trace and write code to implement a stack structure https://www.youtube.com/
logarithmic (including adding and removing items). Candidates need to understand how a stack can be implemented using a watch?v=lyZQPjUT5B4
complexity) different data structure, such as a static array.
d) Comparison of the Candidates need to have an understanding of a queue as a dynamic data structure. Candidates need to be able to add https://www.youtube.com/
complexity of and remove data to/from a queue. Candidates need to be able to read, trace and write code to implement a queue watch?v=ROalU379l3U
algorithms. structure (including adding and removing items). Candidates need to understand how a queue can be implemented
e) Algorithms for the using a different data structure, such as a static array. https://www.youtube.com/
main data Candidates need to have an understanding of a tree structure, both binary and multi-branch trees. Candidates need watch?v=JQhciTuD3E8
structures, (Stacks, to be able to add and remove data to/from a tree. Candidates need to be able to read, trace and write code to
queues, trees, implement a tree structure (including adding and removing items). Candidates need to understand how a tree can be https://www.youtube.com/
linked lists, depth- implemented using a different data structure, such as a linked list. watch?v=o7WrR5vf3cw
first (post-order) Candidates need to understand why and how trees are traversed. Candidates need to understand how a depth-first
and breadth-first (post-order) traversal works, and be able to perform the traversal on a tree. Candidates need to be able to read, trace https://www.cs.cmu.edu/~a
traversal of trees). and write code for a post-order traversal. Candidates need to understand how a breadth-first traversal works, and be damchik/15-
f) Standard able to perform the search on a tree. Candidates need to be able to read, trace and write code for a breadth-first 121/lectures/Stacks%20and
algorithms (Bubble traversal on a tree. %20Queues/Stacks%20and%
sort, insertion sort, Candidates need to have an understanding of a linked list as a dynamic data structure. Candidates need to be able to 20Queues.html
merge sort, quick add, remove and search for data to/from/in a linked list. Candidates need to be able to read, trace and write code to
sort, Dijkstra’s implement a linked list (including adding, removing and search for items). https://www.tutorialspoint.c
shortest path Candidates need to have an understanding of the need for searching and sorting algorithms. Candidates need to have om/data_structures_algorith
algorithm, A* an understanding of pre-conditions required to perform a specific algorithm. ms/stack_algorithm.htm
algorithm, binary Candidates need to understand how a bubble sort works, and be able to perform a bubble sort on a set of data.
search and linear Candidates need to be able to read, trace and write code to perform a bubble sort. https://www.tutorialspoint.c
search). Candidates need to understand how a merge sort works, and be able to perform a merge sort on a set of data. om/data_structures_algorith
Candidates need to be able to read, trace and write code to perform a merge sort. ms/dsa_queue.htm
Candidate need to understand how a quick sort works, and be able to perform a quick sort on a set of data.
Candidates need to be able to read, trace and write code to perform a quick sort. https://www.cs.bu.edu/teac
Candidates need to understand how Dijkstra’s shortest path algorithm works. Candidates need to be able to calculate hing/c/stack/array/
the shortest path in a graph or tree using Dijkstra’s shortest path algorithm. Candidates need to be able to read and
trace code that performs Dijkstra’s shortest path algorithm. https://www.youtube.com/
Candidates need to understand how the A* algorithm works. Candidates need to be able to calculate the shortest watch?v=sFVxsglODoo
path in a graph or tree using the A* algorithm. Candidates need to be able to read and trace code that performs the https://www.youtube.com/
A* algorithm. watch?v=okr-XE8yTO8
Candidates need to understand how a binary search works, and be able to perform a binary search on a set of data.
Candidates need to be able to read, trace and write code to perform a binary search. https://www.cs.bu.edu/teac
Candidates need to understand how a linear search works, and be able to perform a linear search on a set of data. hing/c/queue/array/types.ht
Candidates need to be able to read, trace and write code to perform a linear search. ml

https://www.tutorialspoint.c
om/data_structures_algorith
ms/linked_lists_algorithm.ht
m

https://www.tutorialspoint.c
om/graph_theory/

https://www.tutorialspoint.c
om/data_structures_algorith
ms/binary_search_tree.htm

https://www.tutorialspoint.c
om/data_structures_algorith
ms/hash_data_structure.ht
m

https://pythonschool.net/da
ta-structures-
algorithms/implementing-
the-stack-class-using-oop/

https://www.youtube.com/
watch?v=p5pBGtwHBKU
https://www.youtube.com/
watch?v=8Ls1RqHCOPw

http://web.mit.edu/eranki/w
ww/tutorials/search/

https://www.youtube.com/
watch?v=XaqR3G_NVoo

https://www.youtube.com/
watch?v=ywWBy6J5gz8

You might also like