AQA · A-Level

Your journey to excellence inComputer Science

By Revision Genie

I want to study…
1What a Data Type IsRead next2Integers, Reals/Floats and When to Use EachRead next3Booleans and Boolean VariablesRead next4Characters vs StringsRead next5Date/Time Values in ProgramsRead next6Pointers and References: What They StoreRead next7Records as User-Defined Structured TypesRead next8Arrays as Collections of Same-Type ItemsRead next9Creating Your Own Data Types from Built-InsRead next10Variable Declarations and AssignmentsRead next11Constants and Why Named Constants MatterRead next12Sequence, Selection and Iteration in Real CodeRead next13Definite Iteration: Counting LoopsRead next14Indefinite Iteration: Condition-Controlled LoopsRead next15Conditions at the Start vs End of a LoopRead next16Nested Selection (If Inside If)Read next17Nested Iteration (Loops Inside Loops)Read next18Meaningful Identifier Names and Why They MatterRead next19Arithmetic Operators Including Integer Division and RemaindersRead next20Rounding vs Truncation in ComputationsRead next21Relational Operators and Building ConditionsRead next22Boolean Operators: NOT, AND, OR, XORRead next23String Length and Character PositionsRead next24Substrings and SlicingRead next25Concatenation and Building StringsRead next26Character Code Conversions (Char ↔ Code)Read next27Converting Between String and IntegerRead next28Converting Between String and FloatRead next29Converting Date/Time to and from StringsRead next30Random Number Generation and Typical UsesRead next31What Exception Handling Is ForRead next32Using Try/Catch (or Equivalent) in Your LanguageRead next33What a Subroutine Is (Procedure vs Function)Read next34Why Subroutines Improve Programs (Reuse, Readability, Testing)Read next35Parameters: Passing Data Into SubroutinesRead next36Designing Clear Subroutine InterfacesRead next37Returning Values from FunctionsRead next38Local Variables and Why They’re Good PracticeRead next39Global Variables and Their RisksRead next40Stack Frames: Return Addresses, Parameters and LocalsRead next41Recursion: Base Case and General CaseRead next42Solving Simple Problems Using RecursionRead next43Procedural Programming: Key CharacteristicsRead next44Object-Oriented Programming: Key CharacteristicsRead next45When to Choose Procedural vs OOPRead next46Classes and Objects: Definitions and DifferencesRead next47Instantiation and ConstructorsRead next48Encapsulation and Data Hiding in OOPRead next49Inheritance and “Is-a” RelationshipsRead next50Aggregation vs CompositionRead next51Polymorphism and OverridingRead next52Public, Private and Protected AccessRead next53Abstract, Virtual and Static MethodsRead next54Drawing Class Diagrams (UML Basics)Read next55Reading Class Diagrams (UML Notation)Read next56OOP Design Principles: Encapsulate What VariesRead next57OOP Design Principles: Favour CompositionRead next58OOP Design Principles: Program to InterfacesRead next
1What a Data Structure IsRead next2Single-Dimensional Arrays in SolutionsRead next3Two-Dimensional Arrays as MatricesRead next4Choosing 1D vs 2D vs nD ArraysRead next5Fields and Records in Data StorageRead next6Text Files: Reading and WritingRead next7Binary Files: Reading and WritingRead next8Abstract Data Types vs Concrete ImplementationsRead next9Static vs Dynamic Data StructuresRead next10When Static Structures Are BetterRead next11When Dynamic Structures Are BetterRead next12What a Queue Is and Where It’s UsedRead next13Linear Queue: Adding an ItemRead next14Linear Queue: Removing an ItemRead next15Linear Queue: Testing Empty and FullRead next16Circular Queue: Why It ExistsRead next17Circular Queue: Add, Remove, Empty, FullRead next18Priority Queue: What Priority MeansRead next19Priority Queue: Add and Remove RulesRead next20What a Stack Is and Where It’s UsedRead next21Stack Operations: PushRead next22Stack Operations: PopRead next23Stack Operations: Peek/TopRead next24Stack Tests: Empty and FullRead next25Graphs: Nodes, Edges and Real UsesRead next26Weighted Graphs and Why Weights MatterRead next27Directed vs Undirected GraphsRead next28Representing Graphs with an Adjacency MatrixRead next29Representing Graphs with an Adjacency ListRead next30Comparing Adjacency Matrices vs ListsRead next31Trees as Graphs with No CyclesRead next32Rooted Trees and Parent–Child RelationshipsRead next33Binary Trees and “At Most Two Children”Read next34Binary Search Trees and Sorted SearchingRead next35Hash Tables: Keys, Values and LookupsRead next36Simple Hash Functions (Applying a Hash)Read next37Collisions and Why They HappenRead next38Handling Collisions with RehashingRead next39Dictionaries as Key–Value CollectionsRead next40Using Dictionaries for Information RetrievalRead next41Vectors as Lists of NumbersRead next42Vectors as Functions (Index ↦ Value)Read next43Vector Addition as TranslationRead next44Scalar-Vector Multiplication as ScalingRead next45Convex Combinations of Two VectorsRead next46Dot Product: Calculating and InterpretingRead next47Dot Product Applications (Angle Between Vectors)Read next
1Solving Simple Logic Problems SystematicallyRead next2Checking Logic Solutions for CorrectnessRead next3What an Algorithm Is and Why It Must TerminateRead next4Writing Algorithms in PseudocodeRead next5Using Sequence, Assignment, Selection and Iteration in PseudocodeRead next6Hand-Tracing an Algorithm with Test DataRead next7Converting Pseudocode to Program CodeRead next8Explaining How a Program Works (Correctness Argument)Read next9Representational Abstraction: Removing Unnecessary DetailRead next10Generalisation and Categorisation AbstractionRead next11Information Hiding: Keeping Only Essential CharacteristicsRead next12Procedural Abstraction: Turning a Pattern into a ProcedureRead next13Functional Abstraction: Hiding the Computation MethodRead next14Data Abstraction: Separating Use from RepresentationRead next15Problem Reduction: Turning a Problem into a Solved FormRead next16Decomposition: Splitting into Sub-ProblemsRead next17Composition: Combining Procedures into Larger ProceduresRead next18Automation: From Model to Running SystemRead next19FSMs Without Output: State Diagrams and TablesRead next20FSMs With Output: Mealy MachinesRead next21Sets: Roster Notation and Set ComprehensionRead next22Empty Set and Basic Set VocabularyRead next23Finite, Infinite and Countably Infinite SetsRead next24Cardinality and What It MeasuresRead next25Cartesian Product and Ordered PairsRead next26Subset vs Proper SubsetRead next27Set Operations: Membership, Union, Intersection, DifferenceRead next28What a Regular Expression RepresentsRead next29Regex Metacharacters: *, +, ?, | and GroupingRead next30Writing Simple Regular Expressions for MatchingRead next31Regular Expressions and FSMs: How They RelateRead next32Converting an FSM to a Simple Regular ExpressionRead next33Converting a Simple Regular Expression to an FSMRead next34What a Regular Language IsRead next35Reading Syntax from BNFRead next36Using Syntax Diagrams to Check Valid StringsRead next37Writing Simple Production RulesRead next38Why BNF Can Describe More Than Regular ExpressionsRead next39Comparing Algorithms by Problem SizeRead next40Time Complexity vs Space ComplexityRead next41Functions Needed for Big-O (Linear, Polynomial, Exponential, Log)Read next42Big-O Growth: Constant, Log, Linear, Polynomial, ExponentialRead next43Deriving Big-O from an AlgorithmRead next44Limits of Computation: Hardware and ComplexityRead next45Tractable vs Intractable ProblemsRead next46Heuristics for Intractable ProblemsRead next47Computable vs Non-Computable ProblemsRead next48The Halting Problem: What It Says and Why It MattersRead next49Turing Machine Components: States, Alphabet, Tape, HeadRead next50Start States and Halting StatesRead next51Transition Functions vs State Transition DiagramsRead next52Hand-Tracing a Simple Turing MachineRead next53Why Turing Machines Matter for “Computable”Read next54The Universal Turing Machine IdeaRead next
1Natural Numbers and the Set of NaturalsRead next2Integers and Negative ValuesRead next3Rational Numbers as FractionsRead next4Irrational Numbers and Why They Don’t FractioniseRead next5Real Numbers as “Possible Real-World Quantities”Read next6Ordinal Numbers for PositionRead next7Counting vs Measurement (Natural vs Real)Read next8What a Number Base IsRead next9Decimal, Binary and Hexadecimal BasesRead next10Writing Base Notation with SubscriptsRead next11Converting Decimal to BinaryRead next12Converting Binary to DecimalRead next13Converting Between Binary and HexadecimalRead next14Why Hex Is a Shorthand for BinaryRead next15Bits as the Fundamental UnitRead next16Bytes as 8 BitsRead next17How n Bits Represent 2^n ValuesRead next18Binary Prefixes: Ki, Mi, Gi, TiRead next19Decimal Prefixes: k, M, G, TRead next20Why KB vs KiB Gets ConfusedRead next21Unsigned vs Signed Binary: The DifferenceRead next22Unsigned Binary Ranges for n BitsRead next23Converting Unsigned Binary ↔ DecimalRead next24Adding Unsigned Binary NumbersRead next25Multiplying Unsigned Binary NumbersRead next26Two’s Complement: Representing Negative IntegersRead next27Two’s Complement: Converting Signed Binary ↔ DecimalRead next28Two’s Complement Subtraction MethodRead next29Signed Range Calculations for n BitsRead next30Fixed Point Binary for FractionsRead next31Floating Point: Mantissa + Exponent (Simplified Model)Read next32Converting Fixed Point Binary ↔ DecimalRead next33Converting Floating Point Binary ↔ Decimal (Given Bits)Read next34Rounding Errors in Fixed and Floating PointRead next35Using Binary Fractions to Explain InaccuracyRead next36Absolute Error: Calculating ItRead next37Relative Error: Calculating ItRead next38Comparing Absolute vs Relative ErrorRead next39Range, Precision and Speed: Fixed vs Floating PointRead next40Normalising Floating Point ValuesRead next41Underflow vs Overflow and When They OccurRead next42Digit Character Code vs Numeric ValueRead next43ASCII: What It IsRead next44Unicode: Why It Was IntroducedRead next45Parity Bits for Error CheckingRead next46Majority Voting for Error CorrectionRead next47Checksums: What They DoRead next48Check Digits: Detecting Errors (eg ISBN-style)Read next49Bit Patterns Representing Images and SoundRead next50Analogue vs Digital DataRead next51Analogue vs Digital SignalsRead next52How an ADC Works in PrincipleRead next53How a DAC Works in PrincipleRead next54Bitmapped Images: Pixels, Resolution and Colour DepthRead next55Calculating Bitmap Storage RequirementsRead next56Bitmap Metadata: Typical ExamplesRead next57Vector Graphics: Objects and PropertiesRead next58Creating a Simple Vector Graphic with PrimitivesRead next59Vector vs Bitmap: Pros, Cons and Use CasesRead next60Sound Sampling Rate and Sample ResolutionRead next61Nyquist Theorem and Why It MattersRead next62Calculating Sound File SizesRead next63MIDI: Purpose and Event MessagesRead next64Why MIDI Can Be Better Than Audio SamplesRead next65Why Compression Is Used for MediaRead next66Lossless vs Lossy CompressionRead next67Run Length Encoding (RLE): The Core IdeaRead next68Dictionary-Based Compression: The Core IdeaRead next69What Encryption Means (Plaintext, Ciphertext, Cipher)Read next70Caesar Cipher: Encrypting and DecryptingRead next71Caesar Cipher: Why It’s Easy to CrackRead next72Vernam Cipher (One-Time Pad): Encrypting and DecryptingRead next73Vernam Cipher: Why It Has Perfect SecurityRead next74Computational Security vs Perfect SecurityRead next

Previews load for the first 60 in this unit.

1Hardware vs Software: Clear DefinitionsRead next2System Software vs Application SoftwareRead next3Why Different Software Types ExistRead next4Operating Systems: Core PurposeRead next5OS as a Hardware Complexity “Hider”Read next6Resource Management: CPU, Memory and I/ORead next7Utility Programs and Typical ExamplesRead next8Libraries and Why Programmers Use ThemRead next9Translators: Why They’re NeededRead next10Low-Level Languages: Machine Code BasicsRead next11Low-Level Languages: Assembly BasicsRead next12High-Level Imperative Languages: What They AreRead next13Machine Code vs Assembly vs High-Level: Pros and ConsRead next14Assembler: Role and OutputRead next15Compiler: Role and OutputRead next16Interpreter: Role and OutputRead next17Compilation vs Interpretation: When Each Is BetterRead next18Bytecode and Why Some Compilers Produce ItRead next19Source Code vs Object/Executable CodeRead next20Logic Gate Symbols and ConventionsRead next21NOT Gate: Truth Table and UseRead next22AND Gate: Truth Table and UseRead next23OR Gate: Truth Table and UseRead next24XOR Gate: Truth Table and UseRead next25NAND Gate: Truth Table and UseRead next26NOR Gate: Truth Table and UseRead next27Interpreting Multi-Gate Circuit DiagramsRead next28Completing Truth Tables for Whole CircuitsRead next29Writing Boolean Expressions from CircuitsRead next30Drawing Circuits from Boolean ExpressionsRead next31Boolean Identities for Simplifying ExpressionsRead next32De Morgan’s Laws in SimplificationRead next33Half-Adder: What It DoesRead next34Half-Adder Circuit: Building and TracingRead next35Full-Adder: What It DoesRead next36Full-Adder Circuit: Recognising and TracingRead next37D-Type Flip-Flop as a Memory UnitRead next
1Core Internal Components of a Computer SystemRead next2Processor, Main Memory and I/O ControllersRead next3The Address Bus: Purpose and DirectionRead next4The Data Bus: Purpose and DirectionRead next5The Control Bus: Purpose and SignalsRead next6Why Buses Are Needed for CommunicationRead next7Von Neumann Architecture: Key IdeaRead next8Harvard Architecture: Key IdeaRead next9Where Von Neumann Is Typically UsedRead next10Where Harvard Is Typically UsedRead next11Addressable Memory: What It MeansRead next12The Stored Program ConceptRead next13ALU, Control Unit and Clock: RolesRead next14General-Purpose Registers: Why They ExistRead next15Program Counter (PC): RoleRead next16Current Instruction Register (CIR): RoleRead next17Memory Address Register (MAR): RoleRead next18Memory Buffer Register (MBR): RoleRead next19Status Register: RoleRead next20Fetch Stage: What HappensRead next21Decode Stage: What HappensRead next22Execute Stage: What HappensRead next23Register Use Through the Fetch–Execute CycleRead next24Instruction Sets and Why They’re Processor-SpecificRead next25Opcodes and Operands in InstructionsRead next26Immediate Addressing: Meaning and ExamplesRead next27Direct Addressing: Meaning and ExamplesRead next28Assembly/Machine Operations: LOADRead next29Assembly/Machine Operations: ADD and SUBTRACTRead next30Assembly/Machine Operations: STORERead next31Branching: Conditional vs UnconditionalRead next32COMPARE and Using Flags/StatusRead next33Bitwise Operators: AND, OR, NOT, XORRead next34Shifts: Left Shift vs Right ShiftRead next35HALT and Program TerminationRead next36Multiple Cores and Performance EffectsRead next37Cache Memory and Why It Speeds Up ExecutionRead next38Clock Speed vs Real PerformanceRead next39Word Length and What It AffectsRead next40Address Bus Width and Maximum Addressable MemoryRead next41Data Bus Width and ThroughputRead next42Input/Output Devices: Characteristics and SuitabilityRead next43Barcode Readers: How They’re UsedRead next44Digital Cameras: Inputs and Data ConsiderationsRead next45Laser Printers: Output CharacteristicsRead next46RFID: Purpose and Typical UseRead next47Why Secondary Storage Is NeededRead next48Hard Disks: How They Work and When They FitRead next49Optical Disks: Characteristics and Use CasesRead next50SSDs: How They Work (High Level) and Why They’re FastRead next51Comparing Storage Media by Speed and CapacityRead next
1Serial vs Parallel TransmissionRead next2Why Serial Often Beats Parallel in PracticeRead next3Synchronous vs Asynchronous TransmissionRead next4Start Bits and Stop Bits: PurposeRead next5Baud Rate vs Bit RateRead next6Bandwidth: Meaning in Data TransmissionRead next7Latency: Meaning and ImpactRead next8What a Protocol IsRead next9Bit Rate and Bandwidth RelationshipRead next10Physical Star Topology: How It’s WiredRead next11Logical Bus Topology: How It BehavesRead next12Star vs Bus: Differentiating Physical and LogicalRead next13Peer-to-Peer Networking: When It FitsRead next14Client–Server Networking: When It FitsRead next15WiFi as a Wireless LAN StandardRead next16Wireless Adapter vs Wireless Access PointRead next17Securing WiFi: WPA/WPA2 and Other MeasuresRead next18CSMA/CA: Collision Avoidance IdeaRead next19RTS/CTS: Why It HelpsRead next20SSID: What It Is and Why It MattersRead next21Internet Structure: Networks of NetworksRead next22Packet Switching: Why It’s UsedRead next23Routers: Role in Forwarding PacketsRead next24Gateways: Role Between NetworksRead next25What’s Inside a Packet (Key Components)Read next26How Routing Works Across the InternetRead next27URLs: What They IdentifyRead next28FQDN vs Domain Name vs IP AddressRead next29How Domain Names Are OrganisedRead next30DNS: Purpose and How It Supports Domain LookupsRead next31Internet Registries: What They Do and Why NeededRead next32Firewalls: Packet FilteringRead next33Firewalls: Proxy ServersRead next34Firewalls: Stateful InspectionRead next35Symmetric Encryption: What It IsRead next36Asymmetric Encryption: Public/Private KeysRead next37Key Exchange: The Core Problem and IdeaRead next38Digital Certificates: What They ProveRead next39Digital Signatures: What They ProveRead next40Worms vs Trojans vs VirusesRead next41Vulnerabilities Malware ExploitsRead next42Reducing Malware Risk: Code Quality and MonitoringRead next43TCP/IP Layers: Application, Transport, Network, LinkRead next44Sockets: How Applications Use the StackRead next45MAC Addresses and Local Network DeliveryRead next46Well-Known Ports vs Client PortsRead next47FTP: What It’s ForRead next48Anonymous vs Non-Anonymous FTP AccessRead next49HTTP vs HTTPS: Core DifferencesRead next50POP3 and Retrieving EmailRead next51SMTP and Sending EmailRead next52SSH: Secure Remote ManagementRead next53SSH Clients and Remote Port ConnectionsRead next54Email Servers: Receiving, Storing, SendingRead next55Web Servers: Serving Pages and ResourcesRead next56Web Browsers: Fetching and RenderingRead next57IP Address: Network Part vs Host PartRead next58Subnet Masks: Identifying the Network PartRead next59IPv4 vs IPv6: What Changed and WhyRead next60Public vs Private IP AddressesRead next61DHCP: Automatic IP ConfigurationRead next62NAT: Why It’s UsedRead next63Port Forwarding: Why It’s UsedRead next64Client–Server Messages: Request and ResponseRead next65WebSockets: Persistent Full-Duplex ConnectionsRead next66CRUD: Create, Retrieve, Update, DeleteRead next67REST: Mapping CRUD to HTTP MethodsRead next68REST and Database Operations (GET/POST/PUT/DELETE)Read next69JSON vs XML: Similarities and DifferencesRead next70Thin Client vs Thick Client ComputingRead next

Previews load for the first 60 in this unit.

Community Lessons

Browse all