Edexcel GCSE Computer Science
Last Accessed
Recently visited lessons will appear here for quick access.Start exploring your first lesson today!
Paper 1: Principles of Computer Science
Topic 1: Computational thinking
1.1.1-1.1.2 - Decomposition, abstraction and subprogramsSpecification point 1.1.1 is about making real-world problems manageable with decomposition and abstraction; 1.1.2 connects that thinking to the benefits of subprograms. By the end, you will be able to choose what to split, what detail to leave out, and explain precisely why those choices help.
1.2.1 - Control flow, input and outputAlgorithms are where a solution stops being a vague idea and becomes a route that someone else can follow. In this lesson, you will read and write sequence, selection, count-controlled repetition, condition-controlled repetition and iteration, while keeping input, processing and output clear. You...
1.2.2 - Variables, constants and data structuresA single name can keep track of one value, while a data structure can organise a whole collection without a tangle of separate names. In this lesson, you will follow and write short algorithms that use variables, constants, strings, records, and one- and two-dimensional arrays precisely.
1.2.3 - Operators in algorithmsOperators are the small symbols and words that make an algorithm calculate, compare and decide. By the end of this lesson, you will be able to follow their effect precisely and write arithmetic, relational and logical expressions that match a requirement.
1.2.4 - Trace tables and algorithm outputsAn algorithm can look fixed on the page while its variables keep changing underneath. In this lesson, you will expose those changes in a trace table, use supplied data to determine exact output, and find the value held by a variable at a named point.
1.2.5 - Program errors and logic correctionSome programs stop dramatically; others finish calmly with exactly the wrong answer. You will learn to distinguish syntax, runtime and logic errors, then use requirements and state evidence to locate and correct logic errors in written algorithms.
1.2.6 - Search and sorting algorithmsFinding one value and putting a whole list in order look simple until the list grows. This lesson will help you trace linear and binary search, follow bubble and merge sort, and explain exactly what each algorithm checks, swaps, splits or merges.
1.2.7 - Algorithm testing and efficiencyTwo algorithms can produce the same result yet demand very different amounts of work. In this lesson, you will use test data and logical reasoning to decide whether an algorithm is fit for purpose, then compare efficiency by counting comparisons, loop passes and memory use.
1.3.1 - Truth tables and Boolean logicA truth table is a small grid with no room for guesswork: every possible input combination must appear once. In this lesson, you will apply AND, OR and NOT accurately in truth tables with up to three inputs, then use them to solve short logic problems.
Topic 2: Data
2.1.1-2.1.3 - Binary states, unsigned and signed integersBinary is a pattern whose meaning comes from how it is interpreted. In 2.1.1 you will connect binary to data and instructions and count the states possible with a given number of bits; in 2.1.2 you will distinguish unsigned from two's-complement signed integers; and in 2.1.3 you will convert 8-bi...
2.1.4-2.1.5 - Binary arithmetic, shifts and overflowA row of bits can perform arithmetic, but its fixed width sets a hard limit. In 2.1.4, you will add positive binary patterns and apply logical and arithmetic shifts with the correct fill rule. In 2.1.5, you will recognise and explain when the exact result cannot fit in the available bits.
2.1.6 - HexadecimalLong strings of 0s and 1s are awkward to handle, but hexadecimal gives each group of four bits a single symbol. By the end of this lesson, you will be able to explain why people use this notation and convert accurately in both directions.
2.2.1 - Character encoding with ASCIITo us, A, a and a blank space are obvious; to a computer, each needs an agreed binary pattern. In this lesson, you will use 7-bit ASCII to encode and decode short text, and explain why seven bits provide 128 different codes.
2.2.2 - Bitmap imagesZoom far enough into a bitmap and the smooth picture becomes a grid of coded squares. In this lesson, you will turn binary patterns into pixels, reason about resolution and colour depth, and explain how those choices affect detail and raw image size.
2.2.3 - Digital soundSpecification point 2.2.3 turns a changing sound wave into a sequence a computer can store. You will connect amplitude, sample rate, sample interval and bit depth, then use those links to explain why two digital recordings can represent the same sound with different accuracy.
2.2.4 - Limits of binary representationA tiny change from four bits to five doubles the number of possible codes. This lesson shows how a fixed bit limit can restrict characters, colours and sound levels, and how to choose a bit width that is large enough for the job.
2.3.1 - Storage units and file-size calculationsStorage labels such as KiB and MiB look deceptively similar, but each step changes by a factor of 1024. In this lesson, you will rank binary storage units, convert between them, and construct reliable expressions for capacity, image data and audio data without losing track of bits and bytes.
2.3.2 - Lossy and lossless compressionA smaller file is easier to store and send, but making it smaller can involve an important choice: must every original bit be recoverable? This lesson will help you explain why compression is needed, distinguish lossless from lossy compression, and choose the suitable method for a given purpose.
Topic 3: Computers
3.1.1 - Von Neumann architecture and fetch-decode-executeA processor does not run a whole program in one leap: it moves one instruction through a precise sequence of small steps. In this lesson, you will follow those movements through RAM, CPU registers and buses, then explain how fetch, decode and execute work together. By the end, the names will desc...
3.1.2 - Secondary storageSwitch a computer off and its saved work should not vanish. In this lesson, you will explain the role of secondary storage, describe how magnetic, optical and solid-state technologies hold data, and choose a suitable type from evidence rather than labels.
3.1.3 - Embedded systemsA washing machine can sense water temperature, time a cycle and control a motor without being a laptop in disguise. In this lesson, you will learn what makes its controller an embedded system, how information moves from sensors to outputs, and how to explain why embedded systems suit particular j...
3.2.1 - Operating systemsAn operating system is the quiet coordinator behind every open file, running app and connected device. This lesson shows how it controls hardware and software, shares limited resources, and gives each user an appropriate way into the system. By the end, you will be able to explain file, process,...
3.2.2 - Utility softwareA corrupted file, a failed drive and a slow magnetic hard disk do not need the same fix. This lesson makes the five utilities in 3.2.2 precise enough for you to choose one and explain how its action solves a stated problem.
3.2.3 - Robust software and vulnerability detectionA program can appear reliable until an unexpected value or a hidden weakness puts it under pressure. In this lesson, you will judge what makes software robust, connect vulnerabilities to their exploitation, and use audit trails and code reviews to find evidence of weaknesses.
3.3.1 - High- and low-level languagesA line of code can hide the processor's details or expose them almost instruction by instruction. In this lesson, you will compare high- and low-level languages and choose a suitable level by linking each task's needs to a language characteristic.
3.3.2 - Compilers and interpretersThe same high-level source code can take two very different routes before a processor can follow it. You will learn how compilation and interpretation work, compare their consequences, and justify which approach fits a given situation.
Topic 4: Networks
4.1.1-4.1.2 - Network purposes, LANs and WANsNetworks turn separate devices into systems that can share data, resources and work. In 4.1.1 you will explain why computers are connected; in 4.1.2 you will distinguish a LAN from a WAN and justify which one fits a situation. By the end, a school with two distant sites will no longer look like j...
4.1.3 - Internet structure, IP addresses and routersSending one request across the Internet can involve several independently run networks and a chain of router decisions. In this lesson, you will learn how backbones and connection points fit together, how IP addresses identify destinations, and how each router chooses the next step.
4.1.4 - Wired and wireless performanceIn specification point 4.1.4, you will learn why two connections to the same network can feel very different. You will separate bandwidth from actual speed and latency, then compare the range and performance of copper, fibre, Wi-Fi, Bluetooth, Zigbee, RFID and NFC. By the end, you will be able to...
4.1.5 - Transmission calculationsA download time is not guesswork: it follows from how much data must move and how quickly bits are sent. You will learn to read network-speed units, make the units compatible, and construct expressions for file size, transmission rate and time.
4.1.6 - Network and email protocolsOne web page or email can use several protocols, with each set of rules doing a different job. In specification point 4.1.6, you will learn how Ethernet, Wi-Fi, TCP/IP, HTTP, HTTPS, FTP, POP3, SMTP and IMAP cooperate, then choose and justify the right protocol for a situation.
4.1.7 - The four-layer TCP-IP modelA message does not leap straight from an app onto a cable or radio wave. This lesson follows data down the four TCP/IP layers at the sender and back up at the receiver, so you can identify what each layer contributes and explain the journey precisely.
4.1.8 - Bus, star and mesh topologiesThe shape of a network changes what happens when a cable fails, a device is added or reliability matters most. This lesson makes bus, star and mesh structures easy to recognise and gives you a precise way to justify which one fits a situation.
4.2.1 - Network vulnerabilities and protectionA secure network must protect its data, services and equipment without blocking legitimate users. In this lesson, you will learn why weaknesses matter, how authorised penetration testing and ethical hacking reveal them, and how access control, physical security and firewalls protect different rou...
Topic 5: Issues and impact
5.1.1 - Environmental impacts of digital technologyA digital device may look clean and quiet on a desk, but its environmental story begins before it is switched on and continues after it is replaced. In 5.1.1, you will connect energy use, manufacture, replacement cycles and disposal into precise cause-and-consequence chains. You will also judge h...
5.2.1 - Personal data, privacy and consentA single app account can reveal far more than a username: where someone goes, what they do and who they know. This lesson makes the boundaries around personal data clear, then shows how privacy, ownership, consent, misuse and data protection create both ethical and legal questions. You will learn...
5.2.2 - AI, machine learning and roboticsAI can recommend who gets an interview, while a robot can turn a software decision into movement in the physical world. This lesson makes four questions precise: who must answer for the system, how harm is prevented, how unfair patterns arise, and who may be legally responsible when something goe...
5.2.3 - Intellectual-property protectionA software product is not just one thing: its code, technical inventions, brand and permitted uses can each need different protection. Specification point 5.2.3 will help you distinguish copyright, patents, trademarks and licensing, then select and justify the right protection in a Paper 1 context.
5.3.1 - Malware, vulnerabilities and social engineeringCyberattacks often succeed by combining harmful software, a weakness in technology and a decision made by a person. This lesson will help you distinguish malware types, explain how technical vulnerabilities are exploited, identify social-engineering techniques and follow their effects through a c...
5.3.2 - Protecting systems and dataA single security measure cannot do every job. In 5.3.2, you will learn how anti-malware, encryption, acceptable-use policies, backup and recovery protect systems and data, then match each method to a risk and explain its effect precisely.
Paper 2: Application of Computational Thinking
Foundations
6.3.1–6.3.2 – Values, variables and constantsChoose suitable primitive values, trace assignments and conversions, and distinguish changing variables from named constants. Build a small data setup whose values and types match its requirements.
6.4.1 – User input and outputLearn to ask for information, store the user's answer and respond clearly. Use text and numeric input in small Python programs, predict an interaction before running it, and build a complete interaction from stated requirements.
6.5.1 – Arithmetic in programsChoose arithmetic operators from a program’s requirements, distinguish three kinds of division, and control calculation order. Trace results and test small calculation programs against independently worked answers.
6.5.2–6.5.3 – Comparisons and Boolean logicCompare values, combine Boolean results and express precise boundary rules. Predict and repair conditions before using them to control branches and loops in later lessons.
6.2.2 – Sequence and selectionFollow ordered statements and choose the right path with if, elif and else. Use indentation, mutually exclusive alternatives and nested decisions to make every input follow its intended route.
Control flow and data
6.2.2 – Count-controlled loopsUse for and range to repeat a block a planned number of times. Trace start, stop and step, accumulate results, and reason through nested loops and zero-pass cases.
6.3.1 – One-dimensional listsStore related values in one-dimensional lists, read and replace items by index, and trace changes that shift positions. Use slices and indexed loops to copy and update a complete array.
6.2.2 – Condition-controlled loops and iterationControl repetition with changing state, process input until a sentinel, and iterate directly over stored values. Explain zero-pass cases and show why a loop terminates.
6.3.3 – String positions and substringsTreat text as a sequence with precise positions. Measure strings, extract substrings, build new strings and handle empty or boundary cases before accessing characters.
6.3.3 – Processing and formatting stringsChoose string methods for searching, cleaning, splitting and classification. Combine transformations and use the supported format descriptors to produce clear labels, aligned fields and precise decimal displays.
6.4.3 – Validate inputChoose checks that match an input rule, put them in a safe order and ask again when data is unsuitable. You will use presence, length, range and pattern checks, and distinguish valid data from a true fact.
6.3.1 – Records and two-dimensional listsRepresent related fields as records, select and update values with two indexes, and process rectangular tables without confusing rows with fields.
Subprograms and program reasoning
6.6.1 – Built-in and library subprogramsUse built-in, library and supplied custom subprograms. Choose the right numeric operation, preserve returned values, and reason about random results and deliberate pauses.
6.6.2 – Functions, procedures and parametersWrite functions and procedures with and without parameters. Follow arguments and returned values, and place a subprogram’s exit so its whole task finishes.
6.6.3 – Local and global variablesTrace local and global names, choose where values should live, and repair scope errors by passing inputs and returning results.
6.2.1 – Identify program componentsIdentify every main program component in context, distinguish definitions from calls, and use complete block boundaries to explain how a program is organised.
6.1.1 – Decompose and abstract a problemTurn a requirement into relevant data, clear subproblems and a workable plan. Connect the jobs through explicit inputs and results, then check that the solution covers the requirement.
6.1.2 – Read, analyse and refine programsTrace state in a complete program, connect code to its requirements, and refine behaviour while checking that unaffected results stay correct.
6.1.3 – Turn algorithms into PythonTranslate informal pseudocode and an actual flowchart into Python. Preserve decisions, loop bounds and block boundaries, then check that the program follows the same routes.
Quality and debugging
6.1.4 – Make programs readableUse layout, indentation, names, comments and white space to make code easier to understand and maintain while preserving its behaviour.
6.1.5 – Find and fix program errorsIdentify syntax, runtime and logic faults from evidence, trace a failure to its cause, and repair a complete program without losing correct behavior.
6.1.6 – Test and refine a programChoose test data from the requirements, distinguish expected and observed results, and use failed tests to guide a repair. Retest the change against boundaries and earlier correct behavior.
6.1.6 – Compare program efficiencyCompare correct programs using named comparisons, loop passes and additional data stored. Explain when early stopping or retaining data helps the stated purpose, and when it does not.
Files and complete programs
6.4.2 – Read CSV text filesRead simple CSV text as records and fields, follow the file position, and convert values for useful processing. Compare reading one line, reading all remaining lines and streaming through a file.
6.4.2 – Write and append CSV text filesCreate complete CSV reports, append records without losing existing data, and choose file modes from the required repeat-run behavior. Build and inspect real output files with explicit separators and newlines.
6.4.4 – Authenticate with a lookupAuthenticate a fictional ID and password by preserving their stored relationship. Trace same-record and aligned-list lookups, expose cross-account errors and distinguish success, wrong-password and absent-ID outcomes when a task requires them.
6.6.1 – Turtle graphicsCreate and control named turtles using the Python subset. Predict positions and headings, draw separate and filled shapes, understand circles and modes, and inspect whether a drawing meets its requirements.
6.1.1–6.1.6 – Build, test and refine a complete programTurn a complete brief into a readable program, check its behavior against planned results, and refine it without losing correct behavior. You will combine decomposition, algorithms, debugging, tests and CSV files in one attendance report before attempting a different independent program.