Logo
Birkdale Computing Revision   
Details taken from OCR J277 Computer Science syllabus
Home   status bar
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