OCR A-Level Computer Science Topics
All 24 H446 topics in specification order, each with notes, flashcards and past paper questions. Search by spec code, topic name or any keyword that appears in the content.
Paper 1: Computer Systems
Sections 1.1 to 1.5 · 2 hours 30 minutes · 140 marks
1.1 The characteristics of contemporary processors, input, output and storage devices
Structure and function of the processor
ALU, Control Unit, registers (PC, ACC, MAR, MDR, CIR), buses, FDE cycle, Von Neumann vs Harvard architecture
Types of processor
CISC and RISC characteristics, GPUs, parallel systems (SISD, SIMD, MISD, MIMD)
Input, output and storage
I/O devices, secondary storage types (magnetic, optical, solid state), RAM, ROM, virtual and cloud storage
1.2 Software and software development
Systems software
Operating systems, memory management (paging, segmentation, virtual memory), interrupts, scheduling, BIOS, device drivers, virtual machines
Applications generation
Programming paradigms, compilers, interpreters, assemblers, linkers, loaders, libraries
Software development
Development methodologies (waterfall, RAD, agile), testing (unit, integration, black/white box), maintenance types
Types of programming language
High vs low level, imperative vs declarative, assembly language, addressing modes (immediate, direct, indirect, indexed)
1.3 Exchanging data
Compression, encryption and hashing
Lossy and lossless compression, symmetric/asymmetric encryption, hashing for passwords and data integrity
Databases
Relational databases, tables, keys, relationships, ER diagrams, normalisation (1NF, 2NF, 3NF), SQL queries, ACID transactions
Networks
Network types (PAN, LAN, WAN, VPN), topologies, protocols (TCP/IP, HTTP, FTP, POP3, IMAP, SMTP), IP addressing, packet switching
Web technologies
HTML structure and presentation, CSS, search engines and PageRank, cookies and security issues
1.4 Data types, data structures and algorithms
Data types
Primitive data types, binary representation of integers (two's complement), fixed and floating point, character sets (ASCII, Unicode), images and sound representation
Data structures
Arrays (1D and 2D), lists, tuples, records, stacks, queues, trees (binary, BST), graphs, hash tables and collision handling
Boolean algebra
Logic gates (AND, OR, NOT, XOR, NAND, NOR), truth tables, Boolean expressions, simplification, Karnaugh maps, D-type flip flops
1.5 Legal, moral, cultural and ethical issues
Computing related legislation
Data Protection Act 2018 and GDPR, Computer Misuse Act 1990, Copyright Designs and Patents Act 1988, Regulation of Investigatory Powers Act 2000
Moral and ethical issues
Computers in the workforce, automated decision making, AI accountability, environmental effects, privacy vs surveillance, censorship, software piracy
Paper 2: Algorithms and Programming
Sections 2.1 to 2.3 · 2 hours 30 minutes · 140 marks
2.1 Elements of computational thinking
Thinking abstractly
Nature of abstraction, representational abstraction, generalisation, data and procedural abstraction, devising abstract models
Thinking ahead
Identifying inputs and outputs, preconditions for solutions, caching and its benefits, reusable program components
Thinking procedurally
Problem decomposition into sub-problems, using sub-procedures, interface design, parameter passing
Thinking logically
Identifying decision points, determining logical conditions, understanding decision impact on program flow
Thinking concurrently
Concurrent processing, how it is achieved, benefits and drawbacks of concurrent systems
2.2 Problem solving and programming
Programming techniques
Variables, constants, operators, inputs, outputs, sequence, selection, iteration, subroutines, recursion, global and local variables, modularity and parameters
Computational methods
Problem recognition, decomposition, divide and conquer, backtracking, data mining, heuristics, performance modelling, pipelining, visualisation
2.3 Algorithms
Algorithms
Big O notation and complexity, searching algorithms (linear, binary), sorting algorithms (bubble, merge, insertion, quick), Dijkstra's shortest path, A* algorithm