How your A level is assessed
The papers and the project for OCR H446, AQA 7517 and Eduqas A500QS, the assessment objectives, and a timing plan built with integer arithmetic.
Do this lesson in the simulatorYou have met the whole A level course. This module is about turning that knowledge into marks. At GCSE you learned the command words and planned your time by the marks (F13.1); the A level papers are longer, the questions are less guided, and one board sits part of the exam on a computer. Each lesson ends with a task that mixes ideas from several modules, because the exam does too.
Three boards, one shape
Every A level in computer science is two exams worth 80% between them and a programming project, the non-exam assessment (NEA), worth 20%. What differs is how the content is split between the papers and how the programming is examined.
| OCR H446 | AQA 7517 | Eduqas A500QS | |
|---|---|---|---|
| Paper 1 | Computer systems: 2 h 30, 140 marks, 40% | On screen: 2 h 30, 100 marks, 40%, with preliminary material and a skeleton program | Programming and system development: 2 h 45, 40% |
| Paper 2 | Algorithms and programming: 2 h 30, 140 marks, 40% | Written: 2 h 30, 100 marks, 40% | Computer architecture, data, communication and applications: 2 h 45, 40% |
| Project | Programming project: 70 marks, 20% | NEA: 75 marks, 20% | Programmed solution to a problem: 20% |
Boards revise details from time to time, so check the current specification and sample papers with your teacher. What matters for your preparation is the shape:
- OCR: paper 1 is the theory of how computers work (processors, software, data, networks, databases, law and ethics). Paper 2 is computational thinking, algorithms and programming, with code written on paper in OCR's exam reference language or a high-level language.
- AQA: paper 1 is sat on a computer. You get a skeleton program and preliminary material in advance, and in the exam you answer theory questions on programming, data structures, algorithms and theory of computation, write programs, and answer questions on and make changes to the skeleton, typing your answers into an electronic answer document. Paper 2 is written and covers the rest: data representation, hardware, the consequences of computing, networking, databases, big data and functional programming.
- Eduqas: component 1 covers data structures, logic, algorithms, programming principles, and systems analysis, design, engineering and program construction. Component 2 covers architecture, data transmission and representation, databases, the operating system and security.
The assessment objectives
Every board's questions are written to test three assessment objectives, and knowing which one a question targets tells you what kind of answer it wants:
| Objective | What it tests | A question that targets it |
|---|---|---|
| AO1 | knowledge and understanding of the principles and concepts | "Describe what a stack is." |
| AO2 | applying that knowledge to analyse problems | "Explain why a stack suits undoing the robot's moves." |
| AO3 | designing, programming and evaluating solutions | "Write a program that returns the robot home using a stack." |
AO1 marks are the quickest to earn and the easiest to lose by not learning definitions exactly. Most of the marks, though, need you to apply: to use the scenario in the question, not recite the textbook.
Marks are the clock
Before any exam, know your minutes per mark. OCR gives 150 minutes for 140 marks, a little over a minute a mark. AQA gives 150 minutes for 100 marks, a minute and a half a mark, because writing and testing code on screen takes time.
papers = [("OCR paper 1", 140, 150), ("OCR paper 2", 140, 150), ("AQA paper 1", 100, 150), ("AQA paper 2", 100, 150)]
for name, marks, minutes in papers:
print(f"{name}: {minutes / marks:.2f} minutes a mark, so a 9-mark question is about {9 * minutes / marks:.0f} minutes")
Hold back five to ten minutes at the end for checking: re-reading a trace table or a calculation finds more marks than writing one more paragraph.
The project runs alongside
The NEA is written over months, mostly in the second year, while you revise for the papers. Treat it as a project with its own plan: analysis and design early, the coded solution built and tested iteratively, evaluation at the end (lesson A14.9). A project left to the last term takes revision time from both papers.
Using this module
Each lesson takes one kind of question: command words and long answers, trace tables, pseudocode, writing code, skeleton programs, calculations, and revision. Each ends with a mixed task, so that you practise pulling ideas from different modules together, as the exam asks.
Task: the timing plan
Make a timing plan for a mock paper. START is the start time as a string "hh:mm" in 24-hour time. MINUTES is the length of the paper in whole minutes, CHECKING is the whole number of minutes kept back at the end for checking, and marks is a list of the whole-number marks for each question in order.
- Write
clock_time(minutes), which takes a whole number of minutes after midnight and returns the time as"hh:mm", with two digits each. Use//for the hours and%for the minutes. - The minutes a mark are
(MINUTES - CHECKING)divided by the total ofmarks. Print<n> minutes a mark, to one decimal place. - For each question, keep a running total of the marks so far. The question should be finished by the start time plus that total times the minutes a mark, rounded to the nearest whole minute with
round. PrintQ<n> (<marks> marks): finish by <hh:mm>, numbering from 1. - Print
checking from <hh:mm>, the start plusMINUTES - CHECKING, and thenend <hh:mm>, the start plusMINUTES.
The robot stays still.
# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()
START = "09:00"
MINUTES = 150
CHECKING = 10
marks = [8, 12, 15, 5, 20, 10, 18, 12]
Challenges
- Change the plan to your own board's paper, and find how many minutes you should spend on a 12-mark question.
- Which assessment objective does each target: "State the purpose of the program counter"; "Explain why this robot needs a real-time operating system"; "Write a function to validate a room number"?
- Make
clock_timerefuse a negative number of minutes with aValueError.