Updated: Jul 28, 2019
Welcome to part 2 in a short series to hopefully help you approach your AQA A Level Computer Science project and hopefully get a good mark. In part 1 we looked at how to get started on your project, a daunting prospect if you don’t know where to begin. In this blog we will look at how your project is marked and how you can get the best marks possible.
So, I’ve got a project and a Client. Now what?
Your project is going to end up being marked by your teachers, and possibly and independent moderator. All of them will be working from the same mark scheme. There’s no magic, no mystery, it’s all in the mark scheme, and if you know how your project is going to be marked, you can make sure you get the most marks available to you.
It’s all about the programming!
In the old days of 2016, AQA and the other exam boards thought that your project was all about the writeup. Which is why 10 marks were available for writing a simple user guide. Since then all exam boards have (rightfully) decided that it’s not about the writeup – it’s about the technical solution.
In the AQA Exam, your marks are broken down like this:
You can see that the vast bulk of the marks come from the technical solution.
We are going to forget mostly about analysis and design, and focus on the this.
How the solution is marked.
Well this is broken down into two parts
Lets look at completeness first. Three are 15 marks going for how much of your program actually works. This is measured against the Objectives in your analysis document and is graded like so:
I cannot stress enough – the objectives section is utterly critical to your project. About half the marks rest on this.
AQA want to see a ‘numbered list of specific, measurable objectives’.
So, your objectives need:
To be numbered – eg SYS_001, USER_001 etc
To be specific – each objective is about ONE PART of your program only. Defining an objective “create a login system” is NOT specific. Defining an objective
“SYS_001 create a login system that will accept a username, password, check against a database and return an error if it fails and login if successful”
is specific, because you can have another objective:
“SYS_002 create a login system that will only allow a user to enter a combination of username and password three times before locking them out”
These are two specific measurable objectives.
You need about 15 for your project, and they need to be of an A level standard.
Once you have your objectives you need to prove that you have met them. This evidence will come from your test plan and your evaluation.
Both of these documents will help identify how ‘complete’ your project is.
If you have 15 objectives, and you have met 14, then you are in the top mark band and would score about 14 / 15 marks.
If you have 15 objectives and met 14 simple ones and didn’t get the genuinely challenging objective, then you would be at the bottom end of the completeness mark band 2, as you have not really tackled the important things.
Needless to say, your objectives are CRITICAL, they need to be complex, but achievable. Talk to your teacher if you are not sure.
Your test plan is worth 8 marks, and needs to prove ALL your objectives, so if you have 15 objectives, you need at least 15 tests.
You do not need to provide different data types (that’s from the old specification) and you do not need to prove that you have identified problems and fixed them.
Your testing needs to be a “representative sample”
Your evaluation is only 4 marks, but you need to state HOW WELL you have met each objective.
All these together will determine how many out of the 15 marks you get for completeness.
And again, I cannot stress this enough - talk to your teacher about your objectives. After all, they are the one ultimately marking the thing!
OK, I get the ‘completeness’ thing, but what about the Program.
In order to answer this you need to know that your program is broken up into Levels – 1, 2 and 3.
3 means you are using some challenging code, or trying to solve a complex problem
2 means you are using code of an A level standard, or trying to solve a simple problem
1 means you’re barely above GCSE standard.
But then each band is in itself broken down into three categories, and this is determined by HOW WELL you write your code.
It is broken down like this:
So, each level, which is determined by how complex your code is, is broken down into three bands, all determined by your coding style.
So for example, you decided to program a complex recursive algorithm with dynamic object generation, but put everything in Main(), no code comments and called your variables, a, b, c and d – you would be BELOW AVERAGE in LEVEL 3 – so you get about 19 marks.
If you had a simple database, with a three tables, a few object but your code was pretty much spot on – with lots of functions, good variable names and lots of comments you would be ABOVE AVERAGE in BAND 2 and would score about 18 marks.
There is a lot to be said for getting a straightforward program to work, but then spending a lot of time on the programming side of things making sure your performance is above average.
All right, so what determines a Band then?
Well fortunately, AQA have put together a table to show what counts as Band 3, 2 and 1 code and it looks like this
Band 1 programs use techniques from this list:
So if your program uses recursion, as well as inheritance and polymorphism, you are in Band 1 automatically.
If you have a database with 5 or 6 linked tables, a junction table and lots of dynamic SQL, you are in Band 1.
Band 2 and Band 3 code uses techniques from Group B and C respectively:
So if you use 2D arrays and nested for loops, you are in Band 2. If you save any of your programs data to a text file, you are also in band 2.
Anything else you are in band 1.
And yet again, TALK TO YOUR TEACHER! The sooner the better!
So, I’ve got a project and I don’t think it’s complex enough - am I stuffed?
Not necessarily. Let’s look at a simple game of "tic tac toe" (or noughts and crosses) with two players playing against each other.
You could program this with a simsple 2D array, some nested FOR loops and some simple objects keeping track of the game, and you would be in Band 2.
But you change this to recursively program the contents of the 2D array, as well as store the game state in progress in a database, so that players could pick up where they left off, then you would be moving into Band 1.
If you programmed the game so that you were playing against the computer, and the computer would work out the best turn to take, you are moving into AI programming, and are definitely in Band 1.
Every problem will have an easy or a complicated solution, it is up to you to find the one you feel you can accomplish. Your teacher will be able to give you guidance on this.
OK so what’s this ‘how well do I write code’ thing?
Again, this is given in a table - and it’s really important that you look at this, because if you miss something in one row, you can’t get onto the mark in the next row.
The table looks like this:
So basic means Below Average, and means you’ve just got decent variables, and some comments and that’s that.
Good is Average, and you’ve got good variable names, decent use of constants and global variables, a clear user interface and so on.
In order to get EXCELLENT, you need to have ticked every box in Good.
This is just making sure you have good, well written, robust code. Your program doesn’t need to be doing anything complex, but this shows you know how to program.
Your teacher will be able to guide you on the things you need to put into your program code to get the top marks.
In the next part of this series we will look at what needs to go in all the sections of your writeup and how you need to put your source code together so your examiner can find all the clever things you have written about.
‘til next time…