Homeschool Guide: These lesson plans are a guide for parents. Content may contain errors — always cross-reference with official exam board specifications.
programming languages & translators
FoundationHigherAll Boards
4 detailed 50-minute lessons with teaching scripts, worked examples, parent guides, and assessment criteria.
Lesson Overview
Total Lessons: 4 Tier: Foundation and Higher Duration: 50 minutes per lesson (200 minutes total) Exam Boards: AQA, Edexcel, OCR, Eduqas, CCEA
Learning Objectives
Explain the key ideas of programming languages & translators
Apply programming languages & translators to exam-style questions
Basic skills: reading the summary notes and answering the practice questions there
Materials & Equipment
Exercise book, coloured pens
Ruler
Printed revision notes (link below)
Internet for videos (see Resources)
Lesson 1: Introduction: programming languages & translators
Duration: 50 minutes
Starter Activity (5 minutes)
Quick Recall
Write down everything you already know about programming languages & translators. Then check against the key terms: Key Concept, GCSE Computer Science Exam Tips. Use a mini-whiteboard or paper.
Main Content (35 minutes)
Parent/Teacher Guide: Before lesson: Read the script below. Pre-teach key vocab: Key Concept, GCSE Computer Science Exam Tips. If stuck: Re-read the revision notes (link above), then break the content into smaller steps. Extension: See the Stretch & Challenge ideas in Lesson 4.
Teaching Script (35 mins): Mins 0-5 - Hook: "Today: programming languages & translators. By the end you will be able to answer exam questions on it unaided. It connects to the rest of Computer Science because the ideas here recur across the spec." Mins 5-20 - Direct Instruction: Work through the core ideas below one at a time; after each, ask your student to explain it back in their own words. Mins 20-30 - Guided Practice: Model the worked example together, then let your student attempt the first practice question with guidance. Mins 30-35 - Independent Practice: 2-3 practice questions from Lesson 3 below, with immediate feedback.
First Look
Start with the revision notes summary, then attempt: Explain the difference between machine code and assembly language.
Plenary (5 minutes)
Check Out
Your student states one thing they learned and one question they still have about programming languages & translators.
Lesson 2: Core Concepts: programming languages & translators
Duration: 50 minutes
Starter Activity (5 minutes)
Review Previous Lesson
Quick recap: write 3 key points from Lesson 1 on programming languages & translators. Check them against the notes below.
Main Content (35 minutes)
Key Concept: Programming languages exist at different levels of abstraction from the hardware. Low-level languages are close to what the CPU understands. High-level languages are closer to human language and abstract away hardware details.
Definition: Machine code is the fundamental language of the computer, consisting entirely of binary (0s and 1s). It is the only language the CPU can execute directly without translation.
Definition: Assembly language is a low-level programming language that uses mnemonics (short, memorable codes) to represent machine code instructions. Each mnemonic corresponds to exactly one machine code instruction.
Definition: High-level languages are programming languages designed to be easy for humans to read and write. They use English-like keywords and abstract away hardware details like memory addresses and registers.
Definition: A translator is a program that converts code written in one programming language into another. The three types are: compiler, interpreter, and assembler.
Note: Some languages use both. Java is first compiled to bytecode, then the bytecode is interpreted by the Java Virtual Machine (JVM). This gives some of the advantages of both approaches.
Term
Meaning
Example
MOV
Move
Copies a value to a register or memory location
ADD
Add
Adds a value to a register
SUB
Subtract
Subtracts a value from a register
CMP
Compare
Compares two values and sets flags
JMP
Jump
Jumps to another instruction (unconditional)
JE
Jump if Equal
Jumps if the previous comparison was equal
LD
Load
Loads data from memory into a register
ST
Store
Stores data from a register into memory
Practice (10 minutes)
Q: Explain the difference between machine code and assembly language.
Answer: Machine code is binary (0s and 1s) that the CPU executes directly. Assembly language uses mnemonics (short text codes like MOV, ADD) that are easier for humans to read. Each mnemonic corresponds to one machine code instruction. Assembly must be translated by an assembler.
Plenary (5 minutes)
Explain Back
Your student teaches the key points back to you without looking. Fill any gaps immediately.
Lesson 3: Application: programming languages & translators
Duration: 50 minutes
Starter Activity (5 minutes)
Quick Recall
Recall the key terms: Key Concept, GCSE Computer Science Exam Tips. Define each in one sentence.
Main Content (35 minutes)
Parent/Teacher Guide: Let your student attempt each question alone first, then compare with the model answer. Award method marks for correct working even if the final answer is wrong.
Q1: Explain the difference between machine code and assembly language.
Answer: Machine code is binary (0s and 1s) that the CPU executes directly. Assembly language uses mnemonics (short text codes like MOV, ADD) that are easier for humans to read. Each mnemonic corresponds to one machine code instruction. Assembly must be translated by an assembler.
Q2: Compare a compiler and an interpreter in terms of how they translate code and when they find errors.
Answer: A compiler translates all source code into machine code at once, creating an executable. It finds syntax errors during compilation (before running). An interpreter translates and executes one line at a time. It finds errors at runtime (while the program is running).
Q3: Why might a programmer choose to write in assembly language instead of a high-level language?
Answer: To have direct control over hardware (registers, memory addresses), to write very fast-executing code, or to write code for embedded systems with limited resources where high-level languages may be too resource-heavy.
Q4: What is the role of an assembler?
Answer: An assembler is a translator program that converts assembly language code (mnemonics) into machine code (binary). It performs a one-to-one translation where each mnemonic becomes one machine code instruction.
Q5: Give two advantages and two disadvantages of using a high-level language compared to assembly language.
Answer: Advantages: easier to read/write/debug, portable across different platforms, one statement does more work (fewer lines needed). Disadvantages: slower execution (needs translation), less direct hardware control, the programmer doesn't control exactly what the CPU does.
Plenary (5 minutes)
Error Review
Review any questions answered incorrectly. Identify whether the error was knowledge, method, or reading the question.
Lesson 4: Exam Practice: programming languages & translators
Duration: 50 minutes
Starter Activity (5 minutes)
Command Words
Review what these command words require: state (one point), describe (say what happens), explain (say why), compare (both sides), evaluate (judgement).
Main Content (35 minutes)
Extended Answer
Extended question: Full-Mark Response Compare high-level and low-level programming languages, giving two advantages of each. Explain why a device driver might be written in a low-level language. [5 marks] <div class="
High-level languages (e.g. Python, Java): Advantage 1: Easier to read, write and debug because they use English-like commands Advantage 2: Portable — code can run on different hardware architectures with minimal changes Low-level languages (e.g. assembly): Advantage 1: Direct hardware control — can access specific memory addresses and CPU registers Advantage 2: More efficient — produces faster, more compact code with no unnecessary instructions A device driver would be written in a low-level language because it needs direct access to hardware components (ports, registers, memory-mapped I/O). High-level languages abstract away these hardware details, making them unsuitable for the precise, hardware-specific operations a driver must perform. Low-level code ensures the driver can communicate with the device at the register level.
Exam Tips: Know the three language levels and their key characteristics | Be able to compare compiler vs interpreter across all key properties | Remember: assembly language is the LANGUAGE, assembler is the TRANSLATOR | Use specific examples of high-level languages (Python, Java, C++) | When asked "when to use each," consider: need for speed, hardware control, portability, debugging | Machine code is the ONLY language the CPU understands directly
Common Errors: ✗ Thinking assembly language is the same as machine code ✓ Assembly language uses mnemonics (ADD, MOV, LDR) which are human-readable. Machine code is pure binary (1s and 0s) that the CPU executes directly. ✗ Believing high-level languages are always better than low-level languages ✓ High-level languages are easier to write and portable, but low-level languages give direct hardware control and can be more efficient for specific tasks like device drivers. ✗ Confusing assembly language mnemonics with high-level language commands ✓ Assembly mnemonics (LDR, STR, ADD, MOV) correspond to single CPU instructions. High-level commands (print, if, for) may translate to many machine code instructions. ✗
Stretch & Challenge (Grade 8-9):
Synoptic links: explain how programming languages & translators connects to another Computer Science topic you have studied
Real-world: research one real-world use or example of programming languages & translators
Critical: "What are the limitations of the models used in programming languages & translators?"
Plenary (5 minutes)
Assessment Criteria
Got it: Confident explanation + correct worked examples
Getting there: Main points OK, needs support with detail
Not yet: Confused on key concepts - re-run Lesson 2
Homework & Consolidation
Consolidation: Re-answer any Lesson 3 practice questions answered incorrectly (20 mins)
Retrieval: Write flashcards for the key terms: Key Concept, GCSE Computer Science Exam Tips (10 mins)
Exam practice: One past-paper question on programming languages & translators from the board websites (15 mins)
Extension: Explain programming languages & translators to someone else in your own words (10 mins)