AQA A NEA Technical Solution Guideline
Table of Contents
1 Expectations and Marking Scheme
Expectations
- You are expected to:
Provide program listing(s) that demostrate your
technical skill
. The program listing(s) should be appropriately annotated and self-documenting (an approach that uses meaningful identifiers, with well structured code that minimises instances where program comments are necessary). You should present your work in a way that will enable a third party to discern the quality and purpose of the coding. This could take the form of:- an overview guide which amongst other things includes the names of entities such as executables, data filenames/urls, database names, pathnames so that a third party can, if they so desire, run the solution/investigation
- explanations of particularly difficult-to-understand code sections; a careful division of the presentation of the code listing into appropriately labelled sections to make navigation as easy as possible for a third party reading the code listing. To achieve this, to an extent, is linked to the skill in applying a structured approach during the course of developing the solution or carrying out the investigation.
The Marking Scheme
- Completeness of solution (15 marks)
level Mark Range Description 3 11-15 A system that meets almost all of the requirements of a solution/an investigation (ignoring any requirements that go beyond the demandsof A-level). 2 6-10 A system that achieves many of the requirements but not all. The marks at the top end of the band are for systems that include some of the most important requirements. 1 1-5 A system that tackles some aspects of the problem or investigation. - Techniques Used (27 marks)
level Mark Range Description 3 19-27 The techniques used are appropriate and demonstrate a level of technical skill equivalent to those listed in Group A in Table 1. Program(s) demonstrate(s) that the skill required for this level has been applied sufficiently to demonstrate proficiency.ted design for a real problem, that describes how all or almost all of the key aspects of the solution/investigation are to be structured/are structured. 2 10-18 The techniques used are appropriate and demonstrate a level of technical skill equivalent to those listed in Group B in Table 1. Program(s) demonstrate(s) that the skill required for this level has been applied sufficiently to demonstrate proficiency. 1 1-9 The techniques used demonstrate a level of technical skill equivalent to those listed in Group C in Table 1. Program(s) demonstrate(s) that the skill required for this level has been applied sufficiently to demonstrate proficiency.
Table 1: Example Technical Skills
Group | Model (including data model/structure) | Algorithms |
---|---|---|
A | Complex data model in database (eg several interlinked tables). Hash tables, lists, stacks, queues, graphs, trees or structures of equivalent standard. Files(s) organised for direct access. Complex scientific/mathematical/robotics/ control/business model. Complex user-defined use of object- orientated programming (OOP) model, eg classes, inheritance, composition, polymorphism, interfaces. Complex client-server modelta model in database (eg several interlinked tables) | Cross-table parameterised SQL. Aggregate SQL functions. User/CASE-generated DDL script. Graph/Tree Traversal. List operations. Linked list maintenance Stack/Queue Operations Hashing. Advanced matrix operations Recursive algorithms. Complex user-defined algorithms (eg optimisation,minimisation,scheduling, pattern matching) or equivalent difficulty. Mergesort or similarly efficient sort. Dynamic generation of objects based on complex user-defined use of OOP model. Server-side scripting using request and response objects and server-side extensions for a complex client-server model. Calling parameterised Web service APIs and parsing JSON/XML to service a complex client-server model |
B | Simple data model in database (eg two or three interlinked tables). Multi-dimensional arrays Dictionaries. Records. Text files. File(s) organised for sequential access. Simple scientific/mathematical robotics control/business model. Simple OOP model Simple client-server model | Single table or non-parameterised SQL. Bubble sort Binary search. Writing and reading from files. Simple user defined algorithms (eg a range of mathematical/statistical calculations). Generation of objects based on simple OOP model. Server-side scripting using request and response objects and server-side extensions for a simple client-server model. Calling Web service APIs and parsing JSON/ XML to service a simple client-server modelriate and demonstrate a level of technical skill equivalent to those listed in Group B in Table 1. Program(s) demonstrate(s) that the skill required for this level has been applied sufficiently to demonstrate proficiency. |
C | Single-dimensional arrays. Appropriate choice of simple data types Single table database | Linear search. Simple mathematical calculations (eg average). Non-SQL table access |
Table 2: Coding styles
Style | Characteristics |
---|---|
Excellent | Modules (subroutines) with appropriate interfaces. Loosely coupled modules (subroutines) – module code interacts with other parts of the program through its interface only. Cohesive modules (subroutines) – module code does just one thing. Modules(collections of subroutines) – subroutines with common purpose grouped. Defensive programming. Good exception handling |
Good | Well-designed user interface. Modularisation of code Good use of local variables Minimal use of global variables Managed casting of types Use of constants. Appropriate indentation. Self-documenting code. Consistent style throughout. File paths parameterised |
Basic | Meaningful identifier names. Annotation used effectively where required |
2 Present Your Programming Listings
Structure
- You should present your work in a way that will enable a third party to discern the quality and purpose of the coding. This could take the form of:
- Organise your code so that each separate program, data file, database names, path to file etc are titled and a clear description is under each title and before the actual listing.
- The program listing(s) should be appropriately annotated and self-documenting.
- Focus on your
complex routines
. Describing them with details and referring back to the complex objectives to demonstrate that you have achieved the more complex objectives. - If you have used a paricular skill, such as recursive algorithms, custom objects, etc, signposting them and explain them in details.