| 1.1 - Systems architecture |
|---|
| 1.1.1 | Architecture of the CPU | |
| 1.1.1.a The purpose of the CPU: | Stages of fetch-decode-execute cycle; The role/purpose of each component and what it manages, stores, or controls | | 1.1.1.b Common CPU components and their function: | ALU (Arithmetic Logic Unit), CU (Control Unit), Cache, Registers; The purpose of each register, what it stores (data or address) | | 1.1.1.c Von neumann architecture: | MAR (Memory Address Register), MDR (Memory Data Register), Program Counter, Accumulator; The difference between storing data and an address | | 1.1.2 | CPU performance | |
| 1.1.2.0 How common characteristics of CPUs can affect their performance: | Clock speed, Cache size, Number of cores; The effects of changing any of the common characteristics on system performance, either individually or in combination | | 1.1.3 | Embedded systems | |
| 1.1.3.a The purpose and characteristics of embedded systems | What embedded systems are, Typical characteristics of embedded systems | | 1.1.3.b Examples of embedded systems | Familiarity with a range of different embedded systems |
|
| 1.2 - Memory and Storage |
|---|
| 1.2.1 | Primary storage (Memory) | |
| 1.2.1.a The need for primary memory | Why computers have primary storage, How this usually consists of RAM and ROM | | 1.2.1.b The difference between RAM and ROM, The purpose of ROM and RAM in a computer system | Key characteristics of RAM and ROM | | 1.2.1.c Virtual memory | Why virtual memory may be needed in a system; How virtual memory works; Transfer of data between RAM and HDD when RAM is filled | | 1.2.2 | Secondary storage | |
| 1.2.2.a The need for secondary storage | Why computers have secondary storage | | 1.2.2.b Common types of storage: Optical, Magnetic, Solid state | Recognise a range of secondary storage devices/media; Differences between each type of storage device/medium | | 1.2.2.c Suitable storage devices and storage media for a given application | Compare advantages/disadvantages for each storage device; Be able to apply their knowledge in context within scenarios | | 1.2.2.d The advantages and disadvantages of different storage devices/media for specific characteristics: | Capacity, Speed, Portability, Durability, Reliability, Cost | | 1.2.3 | Units | |
| 1.2.3.a The units of data storage: (bits, bytes, etc) | Bit, Nibble (4 bits), Byte (8 bits), Kilobyte (1,000 bytes), Megabyte, Gigabyte, Terabyte, Petabyte | | 1.2.3.b How data needs to be converted into a binary format to be processed by a computer | Why data must be stored in binary format | | 1.2.3.c Data capacity and calculation of data capacity requirements | Data storage devices have different fixed capacities~ Calculate required storage capacity for a) sound file size = sample rate x duration (s) x bit depth~ b) image file size = colour depth x image height (px) x image width (px)~ c) text file size = bits per character x number of characters~ Allowance for metadata in calculations may be used | | 1.2.4 | Data storage | |
| 1.2.4.a Numbers: convert +ve denary integers to/from binary numbers | convert positive denary whole numbers to binary numbers (up to and including 8 bits) and vice versa | | 1.2.4.b Numbers: Add two binary integers together and explain overflow errors | How to add two binary integers together (up to and including 8 bits) and explain overflow errors which may occur | | 1.2.4.c Numbers: convert +ve denary integers to/from 2-digit hexadecimal numbers | How to convert positive denary whole numbers into 2-digit hexadecimal numbers and vice versa | | 1.2.4.d Numbers: convert binary integers to/from hexadecimal equivalents | How to convert binary integers to their hexadecimal equivalents and vice versa ~ Understanding of the terms `most significant bit`, and `least significant bit` | | 1.2.4.e Numbers: Binary shifts | Understand the effect of a binary shift (both left or right) on a number ~ Carry out a binary shift (both left and right) | | 1.2.4.f Characters: The use of binary codes to represent characters | | | 1.2.4.g Characters: The term `character set` | | | 1.2.4.h Characters: The use of binary codes to represent characters | The differences between and impact of each character set; Understand how character sets are logically ordered, e.g. the code for `B` will be one more than the code for `A`; Binary representation of ASCII in the exam will use 8 bits | | 1.2.4.i Characters: Number of bits per character versus number of symbols in a character set...ASCII, Unicode | The relationship between the number of bits per character in a character set, and the number of characters which can be represented, e.g. ASCII, Unicode | | 1.2.4.j Images: How an image is represented as a series of pixels, represented in binary | Each pixel has a specific colour, represented by a specific code | | 1.2.4.k Images: Metadata | Metadata stores additional image information (e.g. height, width, etc.) | | 1.2.4.l Images: The effect of colour depth and resolution on image quality / file size | The quality of the image; - The size of an image file; The effect on image size and quality when changing colour depth and resolution | | 1.2.4.m Sound: How sound can be sampled and stored in digital form | Analogue sounds must be stored in binary | | 1.2.4.n The effect of sample rate, duration and bit depth on playback quality / file size | The playback quality; - The size of a sound file; Sample rate - measured in Hertz (Hz); Duration - how many seconds of audio the sound file contains; Bit depth - number of bits available to store each sample (e.g. 16-bit) | | 1.2.5 | Compression | |
| 1.2.5.a The need for compression | Common scenarios where compression may be needed | | 1.2.5.b Types of compression: Lossy, Lossless | Lossy, Lossless; Advantages and disadvantages of each type of compression; Effects on the file for each type of compression |
|
| 1.3 - Computer networks |
|---|
| 1.3.1 | Networks and topologies | |
| 1.3.1.a Types of networks: LAN, WAN | LAN (Local Area Network), WAN (Wide Area Network); The characteristics of LANs and WANs including common examples of each | | 1.3.1.b Factors that affect the performance of networks | Understanding of different factors that can affect the performance of a network, e.g. Number of devices connected, Bandwidth | | 1.3.1.c The different roles of computers in a client-server and a peer-to-peer network | The concept of the Internet as a network of computer networks; A Domain Name Service (DNS) is made up of multiple Domain Name Servers; A DNS`s role in the conversion of a URL to an IP address | | 1.3.1.d The hardware needed to connect stand-alone computers into a Local Area Network: | Wireless access points (WAPs), Routers, Switches, NIC (Network Interface Controller/Card), Transmission media; The tasks performed by each piece of hardware | | 1.3.1.e The internet as a worldwide collection of computer networks: | DNS (Domain Name Server), Hosting, The Cloud, Web servers and clients; Concept of servers providing services (e.g. Web server " Web pages, File server " file storage/retrieval); Concept of clients requesting/using services from a server; The Cloud: remote service provision (e.g. storage, software, processing); Advantages and disadvantages of the Cloud | | 1.3.1.f Star and Mesh network topologies | Advantages and disadvantages of the Star and Mesh topologies; Apply understanding of networks to a given scenario | | 1.3.2 | Wired and wireless networks, protocols and layers | |
| 1.3.2.a Modes of connection: Wired: - Ethernet; Wireless: - Wi-Fi, - Bluetooth | Compare benefits and drawbacks of wired versus wireless connection; Recommend one or more connections for a given scenario | | 1.3.2.b Encryption | The principle of encryption to secure data across network connections | | 1.3.2.c IP addressing and MAC addressing | IP addressing and the format of an IP address (IPv4 and IPv6); A MAC address is assigned to devices; its use within a network | | 1.3.2.d Standards | The principle of a standard to provide rules for areas of computing; Standards allows hardware/software to interact across different manufacturers/producers | | 1.3.2.e Common protocols including: TCP/IP , HTTP, HTPPS, FTP, POP, IMAP, SMTP | The principle of a (communication) protocol as a set of rules for transferring data; That different types of protocols are used for different purposes; The basic principles of each protocol i.e. its purpose and key features | | 1.3.2.f The concept of layers | How layers are used in protocols, and the benefits of using layers; the 4-layer TCP/IP model |
|
| 1.4 - Network security |
|---|
| 1.4.1 | Threats to computer systems and networks | |
| 1.4.1.0 Forms of attack: | Malware, Social engineering, Brute-force attacks, DDoS, Data interception of theft, The concept of SQL injection; Threats posed to devices/systems; Knowledge/principles of each form of attack including: How the attack is used, The purpose of the attack | | 1.4.2 | Identifying and preventing vulnerabilities | |
| 1.4.2.0 Common prevention methods: | Penetration testing, Anti-malware software, Firewalls, User access levels, Passwords, Encryption, Physical security; Understanding of how to limit the threats posed in 1.4.1; Understanding of methods to remove vulnerabilities; Knowledge/principles of each prevention method: What each prevention method may limit/prevent; How it limits the attack |
|
| 1.5 - Systems software |
|---|
| 1.5.1 | Operating systems | |
| 1.5.1.0 The purpose and functionality of operating systems: | User interface, Memory management and multitasking, File management, Peripheral management and drivers, User management | | 1.5.2 | Utility software | |
| 1.5.2.a The purpose and functionality of utility sofware | Understand that computers often come with utility software, and how this performs housekeeping tasks | | 1.5.2.b Utility system software: Encryption, Defragmentation, Compression | Encryption software, Defragmentation, Data compression; Purpose of the identified utility software and why it is required |
|
| 1.6 - Impacts of digital technology |
|---|
| 1.6.1 | Ethical, legal, cultural and environmental impacts | |
| 1.6.1.a Impacts of digital technology on wider society including: | Ethical issues, Legal issues, Cultural issues, Environmental issues, Privacy issues | | 1.6.1.b Legislation relevant to Computer Science: | The Data Protection Act 2018, Computer Misuse Act 1990, Copyright Designs and Patents Act 1988 | | 1.6.1.c Software licences: | open source and proprietary licenses; The need to license software and the purpose of a software licence~ Features of open source (providing access to the source code and the ability to change the software)~ Features of proprietary (no access to the source code, purchased commonly as off-the-shelf)~ Recommend a type of licence for a given scenario including benefits and drawback |
|
| 2.1 - Algorithms |
|---|
| 2.1.1 | Computational thinking | |
| 2.1.1.0 Principles of computational thinking: | Abstraction, Decomposition, Algorithmic Thinking; Understanding of these principles and how they are used to define and refine problems | | 2.1.2 | Designing, creating and refining algorithms | |
| 2.1.2.a Identify the inputs, processes, and outputs for a problem | Identify the inputs, processes, and outputs for a problem | | 2.1.2.b Structure diagrams | Produce simple diagrams to show: The structure of a problem; Subsections and their links to other subsections | | 2.1.2.c Create, interpret, correct, complete, and refine algorithms using: Pseudocode | Complete, write or refine an algorithm using Pseudocode | | 2.1.2.d Create, interpret, correct, complete, and refine algorithms using: Flowcharts | Complete, write or refine an algorithm using Flowchart | | 2.1.2.e Create, interpret, correct, complete, and refine algorithms using: Reference / HLL | Complete, write or refine an algorithm using Reference Language / High Level Language | | 2.1.2.f Identify common errors | Identify syntax/logic errors in code and suggest fixes | | 2.1.2.g Trace tables | Create and use trace tables to follow an algorithm | | 2.1.3 | Searching and sorting algorithms | |
| 2.1.3.a Standard searching algorithms: | Binary search, Linear Search; Understand the main steps of each algorithm; Understand any pre-requisites of an algorithm; Apply the algorithm to a data set; Identify an algorithm if given the code or pseudocode for it | | 2.1.3.b Standard sorting algorithms: | Bubble sort, Merge Sort, Insertion Sort; Understand the main steps of each algorithm; Understand any pre-requisites of an algorithm; Apply the algorithm to a data set; Identify an algorithm if given the code or pseudocode for it |
|
| 2.2 - Programming fundamentals |
|---|
| 2.2.1 | Programming fundamentals | |
| 2.2.1.a The use of variables, constants, operators, inputs, outputs and assignments | Practical use of these concepts in a high-level language within the classroom | | 2.2.1.b The use of the three basic programming constructs used to control the flow of a problem: | Sequence, Selection, Iteration (count- and condition-controlled loops); Understanding of each technique | | 2.2.1.c The common arithmetic operators | Comparison operators ( == != > < >= <= ) and arithemtic ( + - * / ^ DIV MOD ) | | 2.2.1.d The common Boolean operators AND, OR and NOT | Boolean operators AND, OR and NOT | | 2.2.2 | Data types | |
| 2.2.2.a The use of data types: CRIBS | Integer, Real, Boolean, Character and string; Ability to choose suitable data types for data in a given scenario | | 2.2.2.b Casting | Understand that data types may be temporarily changed through casting, and where this may be useful | | 2.2.3 | Additional programming techniques | |
| 2.2.3.a The use of basic string manipulation | Ability to manipulate strings, including: Concatenation, Slicing | | 2.2.3.b The use of basic file handling operations: Open, Read, Write, Close | basic file handling operations: Open, Read, Write, Close | | 2.2.3.c The use of records to store data | | | 2.2.3.d The use of SQL to search for data | SQL commands: SELECT, FROM, WHERE | | 2.2.3.e The use of arrays (1D) and two-dimensional arrays (2D) | Arrays as fixed length or static structures; Use of 2D arrays to emulate database tables of a collection of fields, and records | | 2.2.3.f How to use sub programs (functions and procedures) to produce structured code | Where to use functions and procedures effectively; The use of local variables/constants; global variables/constants; arrays (passing and returning) | | 2.2.3.g Random number generation | Be able to create and use random numbers in a program |
|
| 2.3 - Producing robust programs |
|---|
| 2.3.1 | Defensive design | |
| 2.3.1.a Defensive design considerations: | Anticipating misuse, Authentication; Understanding of the issues a programmer should consider to ensure that a program caters for all likely input values | | 2.3.1.b Input validation | Understanding of how to deal with invalid data in a program; Authentication to confirm the identity of a user; Practical experience of designing input validation and simple authentication (e.g. username and password) | | 2.3.1.c Maintainability: Use of sub programs, Naming conventions, Indentation, Commenting | Use of sub programs, Naming conventions, Indentation, Commenting; Understand why commenting is useful and apply this appropriately | | 2.3.2 | Testing | |
| 2.3.2.a The purpose of testing | Ability to identify suitable test data for a given scenario; Ability to create/complete a test plan | | 2.3.2.b Types of testing: Iterative, Terminal | Iterative, Terminal; The difference between testing modules of a program during development and testing the program at the end of production | | 2.3.2.c Identifying syntax and logic errors | Syntax errors as errors which break the grammatical rules of the programming language and stop it from being run/translated; Logic errors as errors which produce unexpected output | | 2.3.2.d Selecting and using suitable test data: Normal, Boundary, Invalid/Erroneous | Normal = accepted, Boundary = accepted, Invalid = rejected, Erroneous = rejected | | 2.3.2.e Refining algorithms | Re-write exisiting algorithms to modify the results or improve efficiency |
|
| 2.4 - Boolean logic |
|---|
| 2.4.1 | Boolean logic | |
| 2.4.1.a Simple logic diagrams using the operators AND, OR and NOT | Recognition of each gate symbol | | 2.4.1.b Truth Tables | Knowledge of the truth tables for each logic gate | | 2.4.1.c Combining Boolean operators and using AND, OR and NOT | Understanding of how to create, complete or edit logic diagrams and truth tables for given scenarios | | 2.4.1.d Applying logical operators in truth tables to solve problems | Ability to work with more than one gate in a logic diagram |
|
| 2.5 - Programming languages & IDEs |
|---|
| 2.5.1 | Languages | |
| 2.5.1.a Characteristics and purpose of different programming levels : HLL, LLL | Characteristics and purpose of different levels of programming language: High-level languages, Low-level languages | | 2.5.1.b The purpose of translators | The need for translators | | 2.5.2 | The Integrated Development Environment (IDE) | |
| 2.5.2.0 Common tools and facilities available in an IDE: | Editors, Error diagnostics, Run-time environments, Translators; Knowledge of the tools that an IDE provides; How each of the tools and facilities listed can be used to help a programmer develop a program | | 2.5.2.c The characteristics of a compiler and an interpreter | The differences, benefits and drawbacks of using a compiler or an interpreter |
|