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 the AQA exam board have (rightfully) decided that it’s not about the writeup – it’s about the technical solution. For OCR it's all about the project management.
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.
I can show you what you need to put into your testing and evaluation document so that you can get the maximum marks for completeness, so why not get in touch and see how I can help you!
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 – although you would have Group A Algorithms and an Excellent model, you only have basic coding styles, which means you can only score 3 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 comment, you would have an excellent model, excellent coding styles and would score in the 16 - 18 mark band region.
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.
If you are making a game, it's all about what the game does, not how pretty it looks, so concentrate on functionality rather than designing good looking graphics. You are doing an A level in Computer Science after all.
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 should be 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 the computer. AQA specifies this as being NOT of an A level standard. Nothing you can do to this can improve it.
However, what you can do is add to it. So for example you:
Create a login system that allows users to login or register.
Create a high score system showing users and scores.
create an algorithm to save a game in progress and then allow a user to load up that game and continue where you left off.
This would then probably put you into Band B, but you would be unlikely to get the top marks.
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.