Specification points
OCR A-level Computer Science H446
144 points in 2 topics, with OCR's codes and titles.
Grade boundaries·OCR command words
Codes and titles are read by a script from OCR's published specification and have not been checked by a person. What each point covers is in the specification itself: OCR’s specification.
1 Computer systems
- 1.1 The characteristics of contemporary processors, input, output and storage devices
- 1.1.1 Structure and function of the processor
- 1.1.1(a) CPU components, registers and buses
- 1.1.1(b) Fetch-decode-execute cycle
- 1.1.1(c) Factors affecting CPU performance
- 1.1.1(d) Pipelining
- 1.1.1(e) Von Neumann, Harvard and contemporary architecture
- 1.1.2 Types of processor
- 1.1.2(a) CISC and RISC processors
- 1.1.2(b) GPUs and their uses
- 1.1.2(c) Multicore and Parallel systems
- 1.1.3 Input, output and storage
- 1.1.3(a) Choosing input, output and storage devices
- 1.1.3(b) Magnetic, flash and optical storage
- 1.1.3(c) RAM and ROM
- 1.1.3(d) Virtual storage
- 1.2 Software and software development
- 1.2.1 Systems Software
- 1.2.1(a) Purpose of operating systems
- 1.2.1(b) Memory management
- 1.2.1(c) Interrupts and interrupt service routines
- 1.2.1(d) Scheduling algorithms
- 1.2.1(e) Types of operating system
- 1.2.1(f) BIOS
- 1.2.1(g) Device drivers
- 1.2.1(h) Virtual machines
- 1.2.2 Applications Generation
- 1.2.2(a) Choosing applications
- 1.2.2(b) Utilities
- 1.2.2(c) Open source vs closed source
- 1.2.2(d) Interpreters, compilers and assemblers
- 1.2.2(e) Stages of compilation
- 1.2.2(f) Linkers, loaders and libraries
- 1.2.3 Software Development
- 1.2.3(a) Software development methodologies
- 1.2.3(b) Merits of development methodologies
- 1.2.3(c) Writing and following algorithms
- 1.2.4 Types of Programming Language
- 1.2.4(a) Programming paradigms
- 1.2.4(b) Procedural languages
- 1.2.4(c) Assembly language and Little Man Computer
- 1.2.4(d) Memory addressing modes
- 1.2.4(e) Object-oriented languages
- 1.3 Exchanging data
- 1.3.1 Compression, Encryption and Hashing
- 1.3.1(a) Lossy vs Lossless compression
- 1.3.1(b) Lossless compression: run length and dictionary coding
- 1.3.1(c) Symmetric and asymmetric encryption
- 1.3.1(d) Different uses of hashing
- 1.3.2 Databases
- 1.3.2(a) Relational databases, keys, ERDs and normalisation
- 1.3.2(b) Capturing, managing and exchanging data
- 1.3.2(c) Normalisation to 3NF
- 1.3.2(d) SQL
- 1.3.2(e) Referential integrity
- 1.3.2(f) Transaction processing and ACID
- 1.3.3 Networks
- 1.3.3(a) Networks, protocols and standards
- 1.3.3(b) Structure of the internet
- 1.3.3(c) Network security, firewalls, proxies and encryption
- 1.3.3(d) Network hardware
- 1.3.3(e) Client-server and peer to peer
- 1.3.4 Web Technologies
- 1.3.4(a) HTML, CSS and JavaScript
- 1.3.4(b) Search engine indexing
- 1.3.4(c) PageRank algorithm
- 1.3.4(d) Server and client side processing
- 1.4 Data types, data structures and algorithms
- 1.4.1 Data Types
- 1.4.1(a) Primitive data types
- 1.4.1(b) Binary representation of integers
- 1.4.1(c) Negative binary numbers
- 1.4.1(d) Addition and subtraction of binary integers
- 1.4.1(e) Hexadecimal
- 1.4.1(f) Converting binary, hexadecimal and denary
- 1.4.1(g) Floating point representation and normalisation
- 1.4.1(h) Floating point arithmetic
- 1.4.1(i) Bitwise operations and masks
- 1.4.1(j) Character sets: ASCII and Unicode
- 1.4.2 Data Structures
- 1.4.2(a) Arrays, records, lists and tuples
- 1.4.2(b) Linked lists, graphs, stacks, queues, trees and hash tables
- 1.4.2(c) Operations on data structures
- 1.4.3 Boolean Algebra
- 1.4.3(a) Defining problems with Boolean logic
- 1.4.3(b) Karnaugh maps and Boolean simplification
- 1.4.3(c) Boolean algebra rules
- 1.4.3(d) Logic gate diagrams and truth tables
- 1.4.3(e) Flip-flops, half adders and full adders
- 1.5 Legal, moral, cultural and ethical issues
- 1.5.1 Computing related legislation
- 1.5.1(a) The Data Protection Act 1998
- 1.5.1(b) The Computer Misuse Act 1990
- 1.5.1(c) Copyright, Designs and Patents Act
- 1.5.1(d) Regulation of Investigatory Powers Act
- 1.5.2 Moral and ethical Issues
2 Algorithms and programming
- 2.1 Elements of computational thinking
- 2.1.1 Thinking abstractly
- 2.1.1(a) The nature of abstraction
- 2.1.1(b) The need for abstraction
- 2.1.1(c) Abstraction and reality
- 2.1.1(d) Devising abstract models
- 2.1.2 Thinking ahead
- 2.1.2(a) Identifying inputs and outputs
- 2.1.2(b) Preconditions for a solution
- 2.1.2(c) Caching
- 2.1.2(d) The need for reusable program components
- 2.1.3 Thinking procedurally
- 2.1.3(a) Components of a problem
- 2.1.3(b) Components of a solution
- 2.1.3(c) Ordering steps of a solution
- 2.1.3(d) Identifying sub-procedures
- 2.1.4 Thinking logically
- 2.1.4(a) Decision points in a solution
- 2.1.4(b) Logical conditions for decisions
- 2.1.4(c) Decisions and program flow
- 2.1.5 Thinking concurrently
- 2.1.5(a) Parts of a problem to tackle concurrently
- 2.1.5(b) Benefits and trade-offs of concurrent processing
- 2.2 Problem solving and programming
- 2.2.1 Programming techniques
- 2.2.1(a) Programming constructs
- 2.2.1(b) Recursion compared with iteration
- 2.2.1(c) Global and local variables
- 2.2.1(d) Modularity, functions and parameter passing
- 2.2.1(e) Using an IDE
- 2.2.1(f) Object-oriented techniques
- 2.2.2 Computational methods
- 2.2.2(a) Problems solvable by computation
- 2.2.2(b) Problem recognition
- 2.2.2(c) Problem decomposition
- 2.2.2(d) Divide and conquer
- 2.2.2(e) Abstraction in problem solving
- 2.2.2(f) Problem-solving techniques to apply
- 2.3 Algorithms
- 2.3.1 Algorithms
- 2.3.1(a) Analysing and designing algorithms
- 2.3.1(b) Suitability of algorithms: time and space
- 2.3.1(c) Algorithm efficiency and Big O notation
- 2.3.1(d) Comparison of the complexity of algorithms
- 2.3.1(e) Algorithms for data structures and traversals
- 2.3.1(f) Standard sorting, searching and pathfinding algorithms