OCR · A-Level

Your journey to excellence inComputer Science

By Revision Genie

I want to study…
1What Systems Software Is and Why It MattersRead next2Operating System Core Functions: UI, File, Device and Resource ManagementRead next3Process Management: Processes, Threads and MultitaskingRead next4Memory Management: Allocation, Protection and Virtual MemoryRead next5Paging and the Idea of a Page TableRead next6System Interrupts: Sources and OS ResponseRead next7Scheduling Goals: Throughput, Responsiveness and FairnessRead next8Scheduling Algorithms: FCFS, SJF and Round RobinRead next9Types of Operating System: Batch, Multi-User, Real-Time and EmbeddedRead next10BIOS and the Boot ProcessRead next11Device Drivers: Purpose and How They Enable Hardware AbstractionRead next12Virtual Machines: How They Work and Why They’re UsedRead next13Application Software vs Utility SoftwareRead next14Open Source vs Closed Source: Licensing and Development ImplicationsRead next15Translators: Assembler vs Compiler vs InterpreterRead next16Stages of Compilation: Lexing, Parsing, Code Generation and OptimisationRead next17Libraries: Why We Use Them and How They Speed DevelopmentRead next18Linkers and Loaders: From Object Code to Running ProgramRead next19Waterfall Model: Phases, Strengths and WeaknessesRead next20Agile Development: Iteration, User Stories and Continuous FeedbackRead next21Spiral Model: Risk-Driven IterationRead next22Rapid Application Development: Prototyping and User InvolvementRead next23Choosing a Development Methodology for a ScenarioRead next24Programming Paradigms: Procedural, OOP and Declarative OverviewRead next25Assembly Language: Why Low-Level Still MattersRead next26Little Man Computer: Modelling Machine-Level ExecutionRead next27Addressing Modes: Immediate, Direct, Indirect and IndexedRead next
1Lossless vs Lossy Compression: When Each Is AppropriateRead next2Run Length Encoding: Encoding and Decoding Worked ExamplesRead next3Dictionary Coding: Building a Dictionary and Representing DataRead next4Why Compression Works: Redundancy and PatternsRead next5Symmetric Encryption: Keys, Speed and Typical UsesRead next6Asymmetric Encryption: Public/Private Keys and Typical UsesRead next7Key Exchange and Real-World Secure CommunicationRead next8Hashing: What a Hash Is and What It’s ForRead next9Hashing Uses: Integrity Checking, Password Storage and VerificationRead next10Relational Databases: Tables, Rows, Columns and KeysRead next11Primary Keys, Foreign Keys and RelationshipsRead next12Entity Relationship Diagrams: Entities, Attributes and CardinalityRead next13Designing a Database Schema from a ScenarioRead next14Normalisation: Why We Do It (Redundancy and Anomalies)Read next15First Normal Form: Removing Repeating GroupsRead next16Second Normal Form: Removing Partial DependenciesRead next17Third Normal Form: Removing Transitive DependenciesRead next18SQL Basics: SELECT, WHERE, ORDER BY and AggregatesRead next19SQL Joins: Why They’re Needed and How They WorkRead next20Data Validation vs Verification in Data CaptureRead next21Capturing and Selecting Data: Sampling, Bias and Data QualityRead next22Transaction Processing: What It Is and Why It MattersRead next23ACID Properties: What Each One Protects AgainstRead next24Networks: LAN vs WAN and Typical FeaturesRead next25Client–Server vs Peer-to-Peer: Strengths and WeaknessesRead next26TCP/IP Model: Layers and What Happens at EachRead next27IP Addressing and Routing: Core IdeasRead next28DNS: Why It Exists and How a Lookup WorksRead next29Packet vs Circuit Switching: Comparing How Data MovesRead next30Network Hardware: Switches, Routers, WAPs and NICsRead next31Network Threats: Malware, Phishing, Man-in-the-Middle and DoSRead next32Network Security Controls: Firewalls, Encryption and AuthenticationRead next33Search Engine Indexing: Crawling, Indexing and RetrievalRead next34Page Ranking: Why Ordering Results Is HardRead next35Server-Side vs Client-Side ProcessingRead next36HTML Structure: Elements, Attributes and Semantic LayoutRead next37CSS: Selectors and Styling RulesRead next38JavaScript Basics: Variables, Selection and IterationRead next39JavaScript Functions: Parameters and Return ValuesRead next
1Primitive Data Types: Integer, Real, Boolean and CharacterRead next2Binary Place Value and Converting to DecimalRead next3Representing Positive Integers in BinaryRead next4Two’s Complement: Representing Negative IntegersRead next5Range, Overflow and What Happens When It BreaksRead next6Binary Addition Worked ExamplesRead next7Binary Subtraction Worked ExamplesRead next8Hexadecimal: Converting and Why It’s UsefulRead next9Floating Point Representation: Mantissa and ExponentRead next10Floating Point Precision and Rounding ErrorRead next11Floating Point Arithmetic: Common PitfallsRead next12Bitwise Operations: AND, OR, XOR and NOTRead next13Bit Shifts and Their UsesRead next14Masks: Setting, Clearing and Testing BitsRead next15Character Sets: ASCII vs UnicodeRead next16Arrays: Indexing, Traversal and Common OperationsRead next17Records, Lists and Tuples: When Each Fits BestRead next18Linked Lists: Nodes, Pointers and TraversalRead next19Linked List Operations: Insert and DeleteRead next20Stacks: LIFO and Push/Pop OperationsRead next21Queues: FIFO and Enqueue/Dequeue OperationsRead next22Graphs: Vertices, Edges and RepresentationsRead next23Adjacency Matrix vs Adjacency ListRead next24Graph Traversal: Visiting and Tracking StateRead next25Trees: Root, Parent/Child, Leaf and HeightRead next26Tree Traversal: Preorder, Inorder and PostorderRead next27Binary Search Trees: Ordering Rules and SearchRead next28BST Operations: Insert and DeleteRead next29Hash Tables: Hash Functions and CollisionsRead next30Collision Handling: Chaining vs Open AddressingRead next31Boolean Logic: Operators and Truth TablesRead next32Laws of Boolean Algebra and SimplificationRead next33De Morgan’s Laws in Logic ExpressionsRead next34Karnaugh Maps: Simplifying Boolean ExpressionsRead next35Flip-Flops: SR, D and JK as Memory ElementsRead next36Registers and Counters from Flip-FlopsRead next37Half Adder vs Full AdderRead next38Ripple Carry Adders: How Multi-Bit Addition WorksRead next
1From Problem Statement to RequirementsRead next2Input–Process–Output as a Starting FrameworkRead next3Selecting Data Types for a ProblemRead next4Arithmetic, Logical and Boolean Operators in CodeRead next5Sequence, Selection and Iteration in Real ProgramsRead next6Nested Selection and Nested LoopsRead next7Writing Modular Code with Functions and ProceduresRead next8Designing Clear Function InterfacesRead next9Parameter Passing: By Value vs By ReferenceRead next10Scope: Global vs Local VariablesRead next11Recursion: Base Case, Recursive Case and Stack BehaviourRead next12When Recursion Beats Iteration (and When It Doesn’t)Read next13Defensive Programming: Validation and Error HandlingRead next14Using an IDE: Breakpoints, Watches and Step-Through DebuggingRead next15Debugging Strategies: Tracing, Logging and Unit TestsRead next16OOP in Practice: Defining and Using ClassesRead next17Objects, Methods and Attributes in CodeRead next18Encapsulation: Protecting State with Access ControlRead next19Inheritance: Reuse and SpecialisationRead next20Polymorphism: Interfaces and OverridingRead next21Problem Recognition: Identifying the Real TaskRead next22Problem Decomposition: Structuring a Large SolutionRead next23Divide and Conquer: Splitting Work RecursivelyRead next24Backtracking: Searching with UndoRead next25Heuristics: “Good Enough” Strategies for Hard ProblemsRead next26Data Mining Concepts: Patterns, Trends and UsesRead next27Performance Modelling: Estimating Time/Space NeedsRead next28Visualisation: Using Diagrams to Understand a SystemRead next
1Primitive Data TypesRead next2Binary Representation of IntegersRead next3Sign and Magnitude RepresentationRead next4Two’s Complement RepresentationRead next5Binary Addition and SubtractionRead next6Hexadecimal Representation of IntegersRead next7Converting Between Binary, Hexadecimal, and DenaryRead next8Floating Point Representation in BinaryRead next9Floating Point ArithmeticRead next10Bitwise Manipulation and MasksRead next11Character Sets: ASCII and UnicodeRead next12Arrays (Up to 3 Dimensions)Read next13Records, Lists, and TuplesRead next14Linked Lists: Creation and TraversalRead next15Graphs: Directed and UndirectedRead next16Stacks: Operations and ApplicationsRead next17Queues: Operations and ApplicationsRead next18Trees and Binary Search TreesRead next19Hash Tables: Storage and RetrievalRead next20Boolean Logic FundamentalsRead next21Simplifying Boolean ExpressionsRead next22Karnaugh Maps for Boolean SimplificationRead next23De Morgan’s Laws in Boolean AlgebraRead next24Logic Gate Diagrams and Truth TablesRead next25D Type Flip FlopsRead next26Half and Full AddersRead next27Bubble Sort AlgorithmRead next28Insertion Sort AlgorithmRead next29Merge Sort AlgorithmRead next30Quick Sort AlgorithmRead next31Binary Search AlgorithmRead next32Linear Search AlgorithmRead next33Dijkstra’s Shortest Path AlgorithmRead next34A* AlgorithmRead next35Big O Notation and Algorithm ComplexityRead next36Comparison of Algorithm ComplexitiesRead next37Depth-First Tree TraversalRead next38Breadth-First Tree TraversalRead next
1The Data Protection Act 1998Read next2The Computer Misuse Act 1990Read next3The Copyright, Designs and Patents Act 1988Read next4The Regulation of Investigatory Powers Act 2000Read next5Computers in the WorkforceRead next6Automated Decision MakingRead next7Artificial Intelligence Risks and OpportunitiesRead next8Environmental Effects of Digital TechnologyRead next9Censorship and the InternetRead next10Monitoring Behaviour with TechnologyRead next11Analyzing Personal InformationRead next12Piracy and Offensive CommunicationsRead next13Layout and Colour Paradigms in Digital InterfacesRead next14Character Sets and AccessibilityRead next15Ethical Considerations in Surveillance TechnologyRead next16Ethical Issues in Data PrivacyRead next17Cultural Impacts of Global ConnectivityRead next18Legal Implications of Cybersecurity BreachesRead next19Ethical Challenges in AI DevelopmentRead next20Social Impacts of Automation in IndustryRead next21Moral Questions in Internet CensorshipRead next22Balancing Privacy and Security in TechnologyRead next23Digital Divide and Access InequalityRead next24Cultural Sensitivity in Software DesignRead next25Ethical Use of User Data in ApplicationsRead next26Impact of Technology on Employment PatternsRead next27Environmental Costs of Hardware ProductionRead next28Ethics in Algorithmic Decision MakingRead next29Impact of AI on Creative IndustriesRead next30Legal Frameworks for Intellectual Property OnlineRead next31Challenges in Regulating AI and AutomationRead next32Ethical Implications of Predictive AnalyticsRead next33Moral Debates Around Internet AnonymityRead next34Cultural Effects of Global Digital PlatformsRead next35Ethical Issues in Data Mining PracticesRead next36Legal Responsibilities in Data StorageRead next37Social Implications of Digital SurveillanceRead next38Privacy Concerns in Wearable TechnologyRead next39Cultural Impact of Social Media AlgorithmsRead next40Ethical Concerns in Biometric Data UsageRead next41Legal Challenges in Cross-Border Data SharingRead next42Moral Issues in Online Content ModerationRead next43Cultural Adaptation in Global Software ProductsRead next44Ethics of Targeted Advertising AlgorithmsRead next45Legal and Ethical Issues in Cloud ComputingRead next46Impact of Technology on Cultural Heritage PreservationRead next47Social Consequences of Internet AddictionRead next48Ethical Dilemmas in Genetic Data AnalysisRead next
1Defining Computational ThinkingRead next2Abstraction in Problem SolvingRead next3Decomposition of ProblemsRead next4Logic in Decision MakingRead next5Concurrent Thinking in ProgrammingRead next6Inputs and Outputs in Problem AnalysisRead next7Identifying Preconditions for SolutionsRead next8Caching Benefits and DrawbacksRead next9Reusable Program ComponentsRead next10Breaking Problems into ComponentsRead next11Ordering Steps in Problem SolutionsRead next12Sub-Procedures in Problem SolvingRead next13Logical Conditions in Decision MakingRead next14Impact of Decisions on Program FlowRead next15Concurrent Processing Trade-offsRead next16Programming Constructs: SequenceRead next17Programming Constructs: IterationRead next18Programming Constructs: BranchingRead next19Understanding RecursionRead next20Recursion vs Iterative ApproachesRead next21Global vs Local VariablesRead next22Modularity in ProgrammingRead next23Functions and ProceduresRead next24Parameter Passing: By Value vs By ReferenceRead next25Using an IDE for DebuggingRead next26Object-Oriented Programming TechniquesRead next27Recognizing Solvable Problems ComputationallyRead next28Problem Recognition TechniquesRead next29Divide and Conquer StrategiesRead next30Using Abstraction in Problem SolvingRead next31Backtracking in AlgorithmsRead next32Data Mining for Problem SolutionsRead next33Heuristics in Problem SolvingRead next34Performance Modeling TechniquesRead next35Pipelining in Computational MethodsRead next36Visualization for Problem SolvingRead next37Algorithm Analysis TechniquesRead next38Designing Algorithms for SituationsRead next39Algorithm Suitability for TasksRead next40Measuring Algorithm EfficiencyRead next41Understanding Big O NotationRead next42Comparing Algorithm ComplexitiesRead next43Algorithms for Stacks and QueuesRead next44Tree Traversal AlgorithmsRead next45Bubble Sort AlgorithmRead next46Insertion Sort AlgorithmRead next47Merge Sort AlgorithmRead next48Quick Sort AlgorithmRead next49Dijkstra’s Shortest Path AlgorithmRead next50A* Pathfinding AlgorithmRead next51Binary Search AlgorithmRead next52Linear Search AlgorithmRead next
1Identifying a Computational ProblemRead next2Justifying Computational ApproachesRead next3Understanding Stakeholders in the ProjectRead next4Defining Stakeholder NeedsRead next5Researching Similar ProblemsRead next6Analyzing Existing SolutionsRead next7Specifying Solution RequirementsRead next8Defining Success CriteriaRead next9Breaking Down the ProblemRead next10Structuring the SolutionRead next11Designing Algorithms for the SolutionRead next12Incorporating Usability FeaturesRead next13Selecting Key Variables and Data StructuresRead next14Validating Data Structures and VariablesRead next15Planning Test Data for DevelopmentRead next16Planning Post-Development Test DataRead next17Iterative Development ProcessRead next18Creating Prototype SolutionsRead next19Annotating Code for MaintenanceRead next20Implementing Modular ProgrammingRead next21Validating Code ElementsRead next22Testing During DevelopmentRead next23Addressing Failed TestsRead next24Post-Development Function TestingRead next25Robustness Testing of Final ProductRead next26Usability Testing with FeedbackRead next27Evaluating Success Against CriteriaRead next28Addressing Unmet Success CriteriaRead next29Evaluating Usability FeaturesRead next30Discussing Maintenance of the SolutionRead next31Identifying Further Development OpportunitiesRead next32Documenting the Problem AnalysisRead next33Documenting the Solution DesignRead next34Documenting Development IterationsRead next35Documenting Testing ProcessesRead next36Documenting Final EvaluationRead next37Creating a Project ReportRead next38Using Agile Development PrinciplesRead next39Selecting an Appropriate Programming LanguageRead next40Ensuring Solution ScalabilityRead next41Avoiding Trivial Problem SelectionRead next42Authenticating Student WorkRead next43Understanding NEA Marking CriteriaRead next44Applying Best-Fit Assessment PrinciplesRead next45Avoiding Malpractice in the NEARead next46Referencing Research Sources ProperlyRead next47Using AI Appropriately in ProjectsRead next48Recognizing AI Risks in DevelopmentRead next49Ensuring Originality in Project WorkRead next

Community Lessons

Browse all