Book a lesson
HomeResourcesCoding Fundamentals
GCSE Computer Science

Coding Fundamentals

Programming is built on a small set of concepts that appear in every language. Understand these and learning any language โ€” including Python โ€” becomes far easier. This guide covers the ideas that sit underneath all code.

Book a sessionAll resources

What this guide covers

High-level vs low-level languages โ€” and why it matters for GCSE
The six core building blocks: variables, sequence, selection, iteration, functions, I/O
How the CPU executes code โ€” fetch, decode, execute, store
Decomposition, abstraction, and computational thinking
SEN-friendly strategies for learning programming

What does coding actually mean?

Coding โ€” also called programming โ€” is the process of writing instructions that a computer can follow. A program is a sequence of these instructions, written in a programming language, that tells the computer exactly what to do and in what order.

The word "coding" is often used loosely to mean anything from dragging blocks in Scratch to writing machine code in assembly language. At GCSE, it means writing programs in Python and understanding the concepts that sit underneath all programming languages.

High-level vs low-level languages

High-level languages like Python, Java, and JavaScript are designed to be readable by humans. They use words and structures close to natural language.

Low-level languages like assembly language and machine code are closer to what the processor actually executes. They are much harder to write but give precise control over hardware.

Translators

Programs written in high-level languages must be translated into machine code before the processor can run them.

Interpreters translate and run the code line by line (Python uses an interpreter).

Compilers translate the entire program into machine code first, then run it (C and C++ are compiled).

The core building blocks

All programming languages โ€” regardless of their syntax โ€” are built from the same small set of fundamental concepts. Understanding these means you can learn any language.

ConceptWhat it doesPython example
VariablesStore a value in memoryscore = 85
SequenceInstructions run in order, top to bottomprint("a") then print("b")
SelectionChoose a path based on a conditionif score > 50: print("Pass")
IterationRepeat a block of codefor i in range(10): print(i)
FunctionsNamed reusable blocks of codedef greet(name): return "Hi " + name
Input/OutputReceive data and display resultsname = input() / print(name)

The three fundamental structures

Every program uses exactly these โ€” in combination.

โ†’SEQUENCESteps runin order, one by one.A โ†’ B โ†’ CโŸจ?โŸฉSELECTIONA decision:IF true โ†’ this. ELSE โ†’ that.IF x > 5โ†ปITERATIONRepeat:loop until condition false.FOR / WHILE
key termVariableNamed storage that can change
key termConstantFixed value, never changes
key termFunctionReusable named block of code
key termParameterValue passed into a function
key termReturnValue a function sends back

How a computer executes code

Understanding what happens when a program runs helps you debug it. The processor follows a simple cycle, billions of times per second:

1
Fetch
The CPU reads the next instruction from memory
2
Decode
The control unit works out what the instruction means
3
Execute
The arithmetic logic unit (ALU) carries out the instruction
4
Store
The result is written back to a register or memory location

Decomposition and abstraction

Two of the most important ideas in computer science are decomposition and abstraction. These are part of what is called computational thinking.

Decomposition

Breaking a large problem into smaller, manageable sub-problems. Each sub-problem can then be solved separately and tested independently before being combined.

Example: building a quiz program can be decomposed into: load questions, display a question, accept an answer, check the answer, keep score, show the final result.

Abstraction

Removing or hiding unnecessary detail so you can focus on what matters. When you call print() in Python, you do not need to know how it works internally โ€” you just need to know what it does.

Abstraction is why you can write a Python program without knowing anything about transistors or machine code.

Pattern recognition

Identifying similarities between problems. If you have solved a problem before, recognising that a new problem follows the same pattern means you can reuse your solution.

Algorithm design

Planning the step-by-step solution before writing any code. Writing pseudocode first โ€” then translating it to Python โ€” leads to fewer errors and faster debugging.

Testing

Systematically checking that a program works correctly. Normal data (expected input), boundary data (edge cases), and erroneous data (invalid input) should all be tested.

SEN-friendly approach to learning programming

Many students find programming overwhelming because they try to understand everything at once. The most effective approach is to isolate one concept at a time.

Read before running

Before running a program, try to predict what it will output. Checking your prediction against the actual result builds understanding much faster than just running code.

Change one thing at a time

When debugging, change one thing, run the program, observe the result. Changing multiple things at once makes it impossible to know what fixed or broke something.

Explain it out loud

If you cannot explain in plain English what a block of code does, you do not fully understand it yet. Explaining to yourself (or a rubber duck) is a genuine technique.

Need help understanding programming concepts?

Miss ICT sessions focus on building genuine understanding โ€” not just getting through exercises. Sessions are calm, structured, and adapted to how you think.

Book a sessionPython for beginners

Frequently asked questions

What is the difference between coding and programming?

They mean the same thing. Coding refers to writing code; programming refers to the broader process of designing, writing, testing, and maintaining software. Both terms are used interchangeably.

Do I need to learn multiple programming languages for GCSE?

No. OCR GCSE Computer Science uses Python. You will also encounter pseudocode โ€” a language-neutral way of describing algorithms โ€” but you do not write it in a specific language.

What is an algorithm and how is it different from a program?

An algorithm is a set of instructions for solving a problem โ€” it describes what to do. A program is an implementation of an algorithm in a specific programming language โ€” it tells the computer exactly how to do it.

Related resources

GCSE

Algorithms Explained

How algorithms, pseudocode, and trace tables work

Python

Python for Beginners

Start writing Python with variables, loops, and functions

For parents

How Coding Works

A plain-English introduction to programming for non-technical readers

Tutoring

1-to-1 GCSE Tutoring

Expert support from a GCSE examiner โ€” ยฃ60/hour

๐ŸŽฎ Try Arcade โ†’
Free taster ยท No commitment