Library · 9618
A-Level Computer Science
Got a question wrong? Open the notes for that topic.
- 1Information representation
- 2Communication
- 3Hardware
- 4Processor Fundamentals
- 5System Software
- 6Security, privacy and data integrity
- 7Ethics and Ownership
- 8Databases
- 9Algorithm Design and Problem-solving
- 10Data Types and Structures
- 11Programming
- 12Software Development
- 13Data Representation
- 14Communication and internet technologies
- 15Hardware and Virtual Machines
- 16System Software
- 17Security
- 18Artificial Intelligence (AI)
- 19Computational thinking and Problem-solving
- 20Further Programming
Teaching this subject? Everything for the classroom in one place →
- Syllabus
- Revision Sheet
- Syllabus Checklist
- Scheme of Work
- Exam Technique
- Command Words — A3 poster
- Lesson Plans — one page per topic
- Class Mark Book
1. Information representation 16 files
2. Communication 8 files
3. Hardware 12 files
4. Processor Fundamentals 14 files
5. System Software 11 files
6. Security, privacy and data integrity 11 files
7. Ethics and Ownership 8 files
8. Databases 14 files
9. Algorithm Design and Problem-solving 11 files
10. Data Types and Structures 17 files
11. Programming 14 files
12. Software Development 14 files
13. Data Representation 14 files
14. Communication and internet technologies 11 files
15. Hardware and Virtual Machines 11 files
16. System Software 11 files
17. Security 8 files
18. Artificial Intelligence (AI) 8 files
19. Computational thinking and Problem-solving 11 files
20. Further Programming 11 files
2025 58 files
October / November session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
June session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
2024 58 files
October / November session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
June session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
2023 58 files
October / November session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
June session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
2022 58 files
October / November session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
June session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
2021 62 files
Specimen
- Specimen Questions 1
- Specimen Answers 1
- Specimen Questions 2
- Specimen Answers 2
- Specimen Insert 2
- Specimen Questions 3
- Specimen Answers 3
- Specimen Answers 4
October / November session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
June session
- Paper 11 Questions Answers
- Paper 12 Questions Answers
- Paper 13 Questions Answers
- Paper 21 Questions Answers Insert
- Paper 22 Questions Answers Insert
- Paper 23 Questions Answers Insert
- Paper 31 Questions Answers
- Paper 32 Questions Answers
- Paper 33 Questions Answers
- Paper 41 Questions Answers
- Paper 42 Questions Answers
- Paper 43 Questions Answers
- A-Level Computer Science — Question index
- 1.1 Data Representation
- 1.1.1 Data Representation
- 1.2 Multimedia
- 1.3 Compression
- 2.1 Networks including the internet
- 3.1 Computers and their components
- 3.2 Logic Gates and Logic Circuits
- 4.1 Central Processing Unit (CPU) Architecture
- 4.2 Assembly Language
- 4.3 Bit manipulation
- 5.1 Operating Systems
- 5.2 Language Translators
- 6.1 Data Security
- 6.2 Data Integrity
- 7.1 Ethics and Ownership
- 8.1 Database Concepts
- 8.2 Database Management Systems (DBMS)
- 8.3 Data Definition Language (DDL) and Data Manipulation Language (DML)
- 9.1 Computational Thinking Skills
- 9.2 Algorithms
- 10.1 Data Types and Records
- 10.2 Arrays
- 10.3 Files
- 10.4 Introduction to Abstract Data Types (ADT)
- 11.1 Programming Basics
- 11.2 Constructs
- 11.3 Structured Programming
- 12.1 Program Development Life cycle
- 12.2 Program Design
- 12.3 Program Testing and Maintenance
- 13.1 User-defined data types
- 13.2 File organisation and access
- 13.3 Floating-point numbers, representation and manipulation
- 14.1 Protocols
- 14.2 Circuit switching, packet switching
- 15.1 Processors, Parallel Processing and Virtual Machines
- 15.2 Boolean Algebra and Logic Circuits
- 16.1 Purposes of an Operating System (OS)
- 16.2 Translation Software
- 17.1 Encryption, Encryption Protocols and Digital Certificates
- 18.1 Artificial Intelligence (AI)
- 19.1 Algorithms
- 19.2 Recursion
- 20.1 Programming Paradigms
- 20.2 File Processing and Exception Handling
Topic quizzes
- 1. Information representation
- 2. Communication
- 3. Hardware
- 4. Processor Fundamentals
- 5. System Software
- 6. Security, privacy and data integrity
- 7. Ethics and Ownership
- 8. Databases
- 9. Algorithm Design and Problem-solving
- 10. Data Types and Structures
- 11. Programming
- 12. Software Development
- 13. Data Representation
- 14. Communication and internet technologies
- 15. Hardware and Virtual Machines
- 16. System Software
- 17. Security
- 18. Artificial Intelligence (AI)
- 19. Computational thinking and Problem-solving
- 20. Further Programming
Starter quizzes
Unit tests
- 1. Information representation
- 2. Communication
- 3. Hardware
- 4. Processor Fundamentals
- 5. System Software
- 6. Security, privacy and data integrity
- 7. Ethics and Ownership
- 8. Databases
- 9. Algorithm Design and Problem-solving
- 10. Data Types and Structures
- 11. Programming
- 12. Software Development
- 13. Data Representation
- 14. Communication and internet technologies
- 15. Hardware and Virtual Machines
- 16. System Software
- 17. Security
- 18. Artificial Intelligence (AI)
- 19. Computational thinking and Problem-solving
- 20. Further Programming
Mock papers
Course companion
Glossary
Topic handouts
- 1. Information representation
- 2. Communication
- 3. Hardware
- 4. Processor Fundamentals
- 5. System Software
- 6. Security, privacy and data integrity
- 7. Ethics and Ownership
- 8. Databases
- 9. Algorithm Design and Problem-solving
- 10. Data Types and Structures
- 11. Programming
- 12. Software Development
- 13. Data Representation
- 14. Communication and internet technologies
- 15. Hardware and Virtual Machines
- 16. System Software
- 17. Security
- 18. Artificial Intelligence (AI)
- 19. Computational thinking and Problem-solving
- 20. Further Programming
Programming references
- Python Handout (EN)
- Python 讲义 (中文)
- Java Handout (EN)
- Java 讲义 (中文)
- C Handout (EN)
- C 讲义 (中文)
- SQL Handout (EN)
- SQL 讲义 (中文)
- HTML & CSS Handout (EN)
- HTML 与 CSS 讲义 (中文)
Chapters
- Python Handout · 1. Getting started
- Python Handout · 2. Variables, types & operators
- Python Handout · 3. Strings
- Python Handout · 4. Selection
- Python Handout · 5. Iteration
- Python Handout · 6. Lists & 2-D lists
- Python Handout · 7. Dictionaries
- Python Handout · 8. Functions & abstraction
- Python Handout · 9. Errors, exceptions & testing
- Python Handout · 10. Files
- Python Handout · 11. Algorithm design
- Python Handout · 12. Data structures
- Python Handout · 13. Searching, sorting & efficiency
- Python Handout · 14. OOP & paradigms
- Python Handout · 15. Data representation
- Python Handout · 16. Computing concepts
- Python Handout · 17. Putting it together
- Java Handout · 1. Java basics
- Java Handout · 2. Operators & expressions
- Java Handout · 3. Booleans & selection
- Java Handout · 4. Loops
- Java Handout · 5. Strings
- Java Handout · 6. Arrays
- Java Handout · 7. ArrayList
- Java Handout · 8. Writing classes
- Java Handout · 9. Inheritance & polymorphism
- Java Handout · 10. Recursion
- Java Handout · 11. Searching & sorting
- Java Handout · 12. Files & the FRQ
- C Handout · 1. C basics
- C Handout · 2. Selection
- C Handout · 3. Loops
- C Handout · 4. Functions
- C Handout · 5. Arrays
- C Handout · 6. Pointers
- C Handout · 7. Strings
- C Handout · 8. Structs
- C Handout · 9. Dynamic memory
- C Handout · 10. Data structures
- C Handout · 11. Searching, sorting & recursion
- C Handout · 12. Files & errors
- C Handout · 13. Bits & data
- C Handout · 14. Preprocessor & qualifiers
- SQL Handout · 1. Querying basics
- SQL Handout · 2. Filtering & logic
- SQL Handout · 3. Sorting & limiting
- SQL Handout · 4. Aggregates & grouping
- SQL Handout · 5. Joins
- SQL Handout · 6. Modifying data
- SQL Handout · 7. Defining tables
- SQL Handout · 8. Database design
- HTML & CSS Handout · 1. HTML basics
- HTML & CSS Handout · 2. Lists, links & images
- HTML & CSS Handout · 3. Page structure
- HTML & CSS Handout · 4. Tables & forms
- HTML & CSS Handout · 5. Boxes & sections
- HTML & CSS Handout · 6. CSS basics
- HTML & CSS Handout · 7. Colours & text
- HTML & CSS Handout · 8. The box model
- HTML & CSS Handout · 9. Layout
- HTML & CSS Handout · 10. Going further
- 1.1 Data Representation
- 1.2 Multimedia
- 1.3 Compression
- 2.1 Networks including the internet
- 3.1 Computers and their components
- 3.2 Logic Gates and Logic Circuits
- 4.1 Central Processing Unit (CPU) Architecture
- 4.2 Assembly Language
- 4.3 Bit manipulation
- 5.1 Operating Systems
- 5.2 Language Translators
- 6.1 Data Security
- 6.2 Data Integrity
- 7.1 Ethics and Ownership
- 8.1 Database Concepts
- 8.2 Database Management Systems (DBMS)
- 8.3 Data Definition Language (DDL) and Data Manipulation Language (DML)
- 9.1 Computational Thinking Skills
- 9.2 Algorithms
- 10.1 Data Types and Records
- 10.2 Arrays
- 10.3 Files
- 10.4 Introduction to Abstract Data Types (ADT)
- 11.1 Programming Basics
- 11.2 Constructs
- 11.3 Structured Programming
- 12.1 Program Development Life cycle
- 12.2 Program Design
- 12.3 Program Testing and Maintenance
- 13.1 User-defined data types
- 13.2 File organisation and access
- 13.3 Floating-point numbers, representation and manipulation
- 14.1 Protocols
- 14.2 Circuit switching, packet switching
- 15.1 Processors, Parallel Processing and Virtual Machines
- 15.2 Boolean Algebra and Logic Circuits
- 16.1 Purposes of an Operating System (OS)
- 16.2 Translation Software
- 17.1 Encryption, Encryption Protocols and Digital Certificates
- 18.1 Artificial Intelligence (AI)
- 19.1 Algorithms
- 19.2 Recursion
- 20.1 Programming Paradigms
- 20.2 File Processing and Exception Handling
Lesson slides
- 1. Information representation
- 2. Communication
- 3. Hardware
- 4. Processor Fundamentals
- 5. System Software
- 6. Security, privacy and data integrity
- 7. Ethics and Ownership
- 8. Databases
- 9. Algorithm Design and Problem-solving
- 10. Data Types and Structures
- 11. Programming
- 12. Software Development
- 13. Data Representation
- 14. Communication and internet technologies
- 15. Hardware and Virtual Machines
- 16. System Software
- 17. Security
- 18. Artificial Intelligence (AI)
- 19. Computational thinking and Problem-solving
- 20. Further Programming
Lesson slides
- 1.1 Data Representation
- 1.1.1 1.1.1
- 1.2 Multimedia
- 1.3 Compression
- 2.1 Networks including the internet
- 3.1 Computers and their components
- 3.2 Logic Gates and Logic Circuits
- 4.1 Central Processing Unit (CPU) Architecture
- 4.2 Assembly Language
- 4.3 Bit manipulation
- 5.1 Operating Systems
- 5.2 Language Translators
- 6.1 Data Security
- 6.2 Data Integrity
- 7.1 Ethics and Ownership
- 8.1 Database Concepts
- 8.2 Database Management Systems (DBMS)
- 8.3 Data Definition Language (DDL) and Data Manipulation Language (DML)
- 9.1 Computational Thinking Skills
- 9.2 Algorithms
- 10.1 Data Types and Records
- 10.2 Arrays
- 10.3 Files
- 10.4 Introduction to Abstract Data Types (ADT)
- 11.1 Programming Basics
- 11.2 Constructs
- 11.3 Structured Programming
- 12.1 Program Development Life cycle
- 12.2 Program Design
- 12.3 Program Testing and Maintenance
- 13.1 User-defined data types
- 13.2 File organisation and access
- 13.3 Floating-point numbers, representation and manipulation
- 14.1 Protocols
- 14.2 Circuit switching, packet switching
- 15.1 Processors, Parallel Processing and Virtual Machines
- 15.2 Boolean Algebra and Logic Circuits
- 16.1 Purposes of an Operating System (OS)
- 16.2 Translation Software
- 17.1 Encryption, Encryption Protocols and Digital Certificates
- 18.1 Artificial Intelligence (AI)
- 19.1 Algorithms
- 19.2 Recursion
- 20.1 Programming Paradigms
- 20.2 File Processing and Exception Handling
Vocabulary lists
- 1. Information representation
- 2. Communication
- 3. Hardware
- 4. Processor Fundamentals
- 5. System Software
- 6. Security, privacy and data integrity
- 7. Ethics and Ownership
- 8. Databases
- 9. Algorithm Design and Problem-solving
- 10. Data Types and Structures
- 11. Programming
- 12. Software Development
- 13. Data Representation
- 14. Communication and internet technologies
- 15. Hardware and Virtual Machines
- 16. System Software
- 17. Security
- 18. Artificial Intelligence (AI)
- 19. Computational thinking and Problem-solving
- 20. Further Programming
Flashcards
- Flashcards — print and cut
- Python Handout — Flashcards
- Java Handout — Flashcards
- C Handout — Flashcards
- SQL Handout — Flashcards
- HTML & CSS Handout — Flashcards
Weekly vocab tests
- Week 1 · Topics 1–4 · Information representation, Processor Fundamentals
- Week 2 · Topics 1–2 · Information representation, Communication
- Week 3 · Topic 2 · Communication
- Week 4 · Topics 2–3 · Communication, Hardware
- Week 5 · Topic 3 · Hardware
- Week 6 · Topics 3–4 · Hardware, Processor Fundamentals
- Week 7 · Topics 4–5 · Processor Fundamentals, System Software
- Week 8 · Topics 5–6 · System Software, Security, privacy and data integrity
- Week 9 · Topic 6 · Security, privacy and data integrity
- Week 10 · Topics 6–7 · Security, privacy and data integrity, Ethics and Ownership
- Week 11 · Topics 7–8 · Ethics and Ownership, Databases
- Week 12 · Topics 8–9 · Databases, Algorithm Design and Problem-solving
- Week 13 · Topics 9–10 · Algorithm Design and Problem-solving, Data Types and Structures
- Week 14 · Topics 4–11 · Processor Fundamentals, Algorithm Design and Problem-solving, Data Types and Structures, Programming
- Week 15 · Topics 9–12 · Algorithm Design and Problem-solving, Programming, Software Development
- Week 16 · Topics 1–12 · Information representation, Communication, Processor Fundamentals, Data Types and Structures, Programming, Software Development
- Week 17 · Topics 1–3 · Information representation, Communication, Hardware
- Week 18 · Topics 3–11 · Hardware, Processor Fundamentals, Security, privacy and data integrity, Ethics and Ownership, Algorithm Design and Problem-solving, Data Types and Structures, Programming
- Week 19 · Topics 13–20 · Data Representation, Communication and internet technologies, Hardware and Virtual Machines, System Software, Security, Artificial Intelligence (AI), Computational thinking and Problem-solving, Further Programming
- Week 20 · Topics 13–14 · Data Representation, Communication and internet technologies
- Week 21 · Topics 14–15 · Communication and internet technologies, Hardware and Virtual Machines
- Week 22 · Topics 15–16 · Hardware and Virtual Machines, System Software
- Week 23 · Topic 16 · System Software
- Week 24 · Topics 16–18 · System Software, Security, Artificial Intelligence (AI)
- Week 25 · Topic 18 · Artificial Intelligence (AI)
- Week 26 · Topics 19–20 · Computational thinking and Problem-solving, Further Programming
- Week 27 · Topic 20 · Further Programming
Weekly homework
- Week 1
- Week 4
- Week 6
- Week 9
- Week 12
- Week 15
- Week 18
- Week 20
- Week 23
- Week 26
- Week 30
- Week 33
- Week 36
- Week 39
- Week 42
- Week 45
- Week 48
- Week 50
- Week 52
- Week 55
Exercise sheets
- Complete pack — exercise sheets + past papers
- 1 Information representation — Part 1
- 1 Information representation — Part 2
- 2 Communication — Part 1
- 2 Communication — Part 2
- 3 Hardware — Part 1
- 3 Hardware — Part 2
- 4 Processor Fundamentals — Part 1
- 4 Processor Fundamentals — Part 2
- 5 System Software — Part 1
- 5 System Software — Part 2
- 6 Security, privacy and data integrity — Part 1
- 6 Security, privacy and data integrity — Part 2
- 7 Ethics and Ownership — Part 1
- 7 Ethics and Ownership — Part 2
- 8 Databases — Part 1
- 8 Databases — Part 2
- 9 Algorithm Design and Problem-solving — Part 1
- 9 Algorithm Design and Problem-solving — Part 2
- 10 Data Types and Structures — Part 1
- 10 Data Types and Structures — Part 2
- 11 Programming — Part 1
- 11 Programming — Part 2
- 12 Software Development — Part 1
- 12 Software Development — Part 2
- 13 Data Representation — Part 1
- 13 Data Representation — Part 2
- 14 Communication and internet technologies — Part 1
- 14 Communication and internet technologies — Part 2
- 15 Hardware and Virtual Machines — Part 1
- 15 Hardware and Virtual Machines — Part 2
- 16 System Software — Part 1
- 16 System Software — Part 2
- 17 Security — Part 1
- 17 Security — Part 2
- 18 Artificial Intelligence (AI) — Part 1
- 18 Artificial Intelligence (AI) — Part 2
- 19 Computational thinking and Problem-solving — Part 1
- 19 Computational thinking and Problem-solving — Part 2
- 20 Further Programming — Part 1
- 20 Further Programming — Part 2
Past papers
- 1.1 Data Representation
- 1.2 Multimedia
- 1.3 Compression
- 2.1 Networks including the internet
- 3.1 Computers and their components
- 3.2 Logic Gates and Logic Circuits
- 4.1 Central Processing Unit (CPU) Architecture
- 4.2 Assembly Language
- 4.3 Bit manipulation
- 5.1 Operating Systems
- 5.2 Language Translators
- 6.1 Data Security
- 6.2 Data Integrity
- 7.1 Ethics and Ownership
- 8.1 Database Concepts
- 8.2 Database Management Systems (DBMS)
- 8.3 Data Definition Language (DDL) and Data Manipulation Language (DML)
- 9.1 Computational Thinking Skills
- 9.2 Algorithms
- 10.1 Data Types and Records
- 10.2 Arrays
- 10.3 Files
- 10.4 Introduction to Abstract Data Types (ADT)
- 11.1 Programming Basics
- 11.2 Constructs
- 11.3 Structured Programming
- 12.1 Program Development Life cycle
- 12.2 Program Design
- 12.3 Program Testing and Maintenance
- 13.1 User-defined data types
- 13.2 File organisation and access
- 13.3 Floating-point numbers, representation and manipulation
- 14.1 Protocols
- 14.2 Circuit switching, packet switching
- 15.1 Processors, Parallel Processing and Virtual Machines
- 15.2 Boolean Algebra and Logic Circuits
- 16.1 Purposes of an Operating System (OS)
- 16.2 Translation Software
- 17.1 Encryption, Encryption Protocols and Digital Certificates
- 18.1 Artificial Intelligence (AI)
- 19.1 Algorithms
- 19.2 Recursion
- 20.1 Programming Paradigms
- 20.2 File Processing and Exception Handling
Specimen Papers
- Specimen Paper Answers Paper 1 (2021)
- Specimen Paper Answers Paper 2 (2021)
- Specimen Paper Answers Paper 3 (2021)
Example Candidate Responses
- Example Candidate Responses Paper 1 (2021)
- Example Candidate Responses Paper 1 (2024)
- Example Candidate Responses Paper 2 (2021)
- Example Candidate Responses Paper 2 (2024)
- Example Candidate Responses Paper 3 (2021)
- Example Candidate Responses Paper 3 (2024)
- Example Candidate Responses Paper 4 (2021)
- Example Candidate Responses Paper 4 (2024)
Syllabus Documents
- Computer Science 2023 - 2025 Pseudocode Guide for Teachers
- Computer Science 2026 Pseudocode Guide for Teachers
- Computer Science 2026 Syllabus Document
- Computer Science 2026 Syllabus Update
- Computer Science 2027-2029 Pseudocode Guide for Teachers
- Computer Science 2027-2029 Syllabus Update
Teaching Support
Tips
Split these papers by half. Theory questions suit short, frequent sessions — they test recall of precise definitions, and precision decays fast. Programming questions need long, uninterrupted sittings, because the skill is holding a whole solution in your head.
Write the code by hand, then type it in and run it. Past papers are the one place you can discover that what you "would have written" does not compile — much cheaper to find out now than in the exam hall.
When marking theory, compare your wording to the scheme word by word, not by meaning. This subject's schemes are unusually literal, and the right idea in the wrong words often scores zero. Keep a list of the phrasings you keep missing.