AQA GCSE Computer Science

Last Accessed

Recently visited lessons will appear here for quick access.Start exploring your first lesson today!

Fundamentals of algorithms

Programming foundations

Python route

3.2.1, 3.2.7 - Data types, input and output (Python)A program needs data in a suitable form, a way to receive it and a way to communicate its results. This lesson introduces Python 3 values, keyboard input and display output for the written Python route.
3.2.2 - Variables, constants and sequence (Python)Programs store values under names and execute statements in a deliberate order. You will use variables, the Python convention for named constants and meaningful identifiers to write and interpret a short calculation.
3.2.3 - Arithmetic and division (Python)Arithmetic expressions calculate new values from stored data. You will distinguish ordinary division from whole-group counts and remainders, and choose Python operators that match a problem.
3.2.2, 3.2.4, 3.2.5 - Selection and Boolean conditions (Python)Selection lets a program choose an action from its data. You will build Python conditions from comparisons and Boolean operators, then use them to control clearly indented branches.
3.2.2 - Count-controlled iteration (Python)When the required number of repetitions is known, a count-controlled loop avoids writing the same instructions repeatedly. You will choose Python range limits and trace how repeated updates build a result.
3.2.2 - Condition-controlled iteration (Python)Some tasks repeat until an event occurs rather than for a known count. You will compare conditions tested before and after the body, then reason about how a loop reaches its stopping state.
3.2.2 - Nested selection and iteration (Python)A control structure can contain another structure. You will use indentation to identify which condition or counter controls each statement and trace nested Python decisions and loops.

C# route

3.2.1, 3.2.7 - Data types, input and output (C#)Choose suitable types for a program's data, read keyboard input and display useful results. C# examples and written answers are native C#. C# execution is unavailable here; the runnable activity is an optional Python demonstration of the same idea.
3.2.2 - Variables, constants and sequence (C#)Use named data and the order of statements to build a program that performs a calculation correctly. Written answers use C#; native execution is unavailable here, so the runnable activity is an optional Python demonstration.
3.2.3 - Arithmetic and division (C#)Build arithmetic expressions and choose between a real quotient, an integer quotient and a remainder. Native written answers use C#. The optional runnable demonstration uses Python because C# execution is unavailable here.
3.2.2, 3.2.4, 3.2.5 - Selection and Boolean conditions (C#)Compare data, combine true/false conditions and choose which statements a C# program executes. Written tasks use native C# with no Run. C# execution is unavailable here; the runnable activity is an optional Python demonstration.
3.2.2 - Count-controlled iteration (C#)Repeat a known number of operations and trace how a counter and running total change. C# written tasks have no Run. C# execution is unavailable here; the runnable activity is an optional Python demonstration.
3.2.2 - Condition-controlled iteration (C#)Choose a loop when the number of repetitions depends on a condition, and explain when it will stop. Required answers use native C#; execution is unavailable here, with an optional Python demonstration for exploration.
3.2.2 - Nested selection and iteration (C#)Read and write control structures inside other control structures, following which condition controls each statement. Native C# execution is unavailable here; required written answers remain C# and the runnable activity is an optional Python demonstration.

VB.NET route

3.2.1, 3.2.7 - Data types, input and output (VB.NET)Choose suitable types for data, read keyboard input and display useful results in VB.NET. Native VB.NET answers are written here; execution is unavailable. The optional Python demonstration has its own Run control.
3.2.2 - Variables, constants and sequence (VB.NET)Use named storage and statement order to build a small VB.NET calculation. Native code is written without Run; the labelled optional Python demonstration supports experimentation.
3.2.3 - Arithmetic and division (VB.NET)Build arithmetic expressions and choose between real division, integer division and remainder in VB.NET. Written native answers have no Run; an optional Python demonstration explores the calculations.
3.2.2, 3.2.4, 3.2.5 - Selection and Boolean conditions (VB.NET)Compare values, combine conditions and choose which VB.NET statements execute. The required code answer is written in VB.NET without Run; Python appears only in the optional demonstration.
3.2.2 - Count-controlled iteration (VB.NET)Use a known repetition count to write and trace VB.NET loops. Native exam answers are written without Run; the optional Python demonstration explores the same accumulator idea.
3.2.2 - Condition-controlled iteration (VB.NET)Use conditions before or after a loop body and explain why a loop terminates. VB.NET answers remain written without Run; a labelled Python demonstration lets you explore a precondition.
3.2.2 - Nested selection and iteration (VB.NET)Trace control structures inside other control structures and use them to express repeated decisions. Native VB.NET code is written without Run; the optional Python demonstration explores a nested loop.

Data structures and modular programs

Python route

3.2.6 - One-dimensional arrays (Python)An indexed collection stores related values together so that one algorithm can process them. This lesson uses Python lists as the array equivalent for storing, traversing and updating a series of measurements.
3.2.6 - Two-dimensional arrays (Python)A two-dimensional collection models a table or grid. You will use Python lists of rows, access a value with two indexes and traverse the grid to solve a small counting problem.
3.2.6 - Records and fields (Python)Some related values describe one object but have different meanings and types. You will represent those values as named fields using Python dictionaries, the record equivalent used in this lesson.
3.2.8 - String operations and conversions (Python)String operations select and combine text, while conversions connect text with numeric processing. You will use Python indexes, slices, character codes and conversions without confusing their roles.
3.2.9 - Random number generation (Python)Random values can make a game or simulation vary between runs. You will generate Python integers in a stated range and use a generated value in ordinary selection and arithmetic.
3.2.2, 3.2.10 - Subroutines, parameters and return values (Python)Subroutines give a named task its own code. You will define and call Python subroutines, pass more than one parameter and return a calculated result for the caller to use.
3.2.10 - Local variables and modular design (Python)Structured programs divide work into modules with clear responsibilities. You will use local variables and documented parameter/return interfaces to keep a calculation understandable, reusable and testable.

C# route

3.2.6 - One-dimensional arrays (C#)Use an indexed collection to store and process related values without a separate variable for every item. Required written code is native C#; execution is unavailable here, with an optional Python demonstration for exploration.
3.2.6 - Two-dimensional arrays (C#)Store values arranged in rows and columns, then use nested loops to process the grid. Written answers use native C#. C# execution is unavailable here; the runnable activity is an optional Python demonstration.
3.2.6 - Records and fields (C#)Group differently typed information about one entity and use its named fields in a solution. Required written answers are native C#; execution is unavailable here, with an optional Python demonstration for exploration.
3.2.8 - String operations and conversions (C#)Find and extract characters, join text, and convert between characters, codes and numbers. Native C# written answers have no Run. C# execution is unavailable here; the runnable activity is an optional Python demonstration.
3.2.9 - Random number generation (C#)Generate values within a specified range and use each generated result consistently in a program. Required written answers use C#; native execution is unavailable here, with an optional Python demonstration.
3.2.2, 3.2.10 - Subroutines, parameters and return values (C#)Define reusable named code, pass data into it and return a result to its caller. Native C# written answers remain C#. C# execution is unavailable here; a labelled optional Python demonstration supports exploration.
3.2.10 - Local variables and modular design (C#)Keep a subroutine's temporary data local and connect program modules through clear interfaces. Native C# execution is unavailable here; required written answers remain C#, with an optional Python demonstration.

VB.NET route

3.2.6 - One-dimensional arrays (VB.NET)Organise values by index and process them with VB.NET loops. Native code answers are written without Run; the optional Python demonstration uses a list to explore indexed changes.
3.2.6 - Two-dimensional arrays (VB.NET)Use row and column indexes to represent and process a grid in VB.NET. Native answers are written without Run; the optional Python demonstration uses a list of rows.
3.2.6 - Records and fields (VB.NET)Group related fields into a record and use it in a VB.NET solution. Native code answers are written without Run; the optional Python demonstration uses a dictionary to explore named fields.
3.2.8 - String operations and conversions (VB.NET)Locate and extract text, join it, convert character codes and move between text and numeric values in VB.NET. Native code answers are written without Run; the optional Python demonstration explores a text transformation.
3.2.9 - Random number generation (VB.NET)Generate values within deliberate bounds and use them in a simple VB.NET simulation. Native code is written without Run; the optional Python demonstration explores repeatable learning tests.
3.2.2, 3.2.10 - Subroutines, parameters and return values (VB.NET)Define reusable VB.NET routines, pass data into them and return results to the caller. Native answers are written without Run; the optional Python demonstration explores the same data flow.
3.2.10 - Local variables and modular design (VB.NET)Keep intermediate values local and connect modules through clear documented interfaces. Native VB.NET answers are written without Run; an optional Python demonstration explores separate local state.

Robust and secure programs

Fundamentals of data representation

Computer systems

Fundamentals of computer networks

Cyber security

Relational databases and SQL

Impacts of digital technology