Select a course.
Non-Exam Assessment Project
infoWhy this? The programming project provides an opportunity for students to apply their knowledge in an authentic context. By analysing a problem, designing a solution, developing software and evaluating outcomes, students experience the complete software development cycle and develop independence as computer scientists.
scheduleWhy now? This project represents the culmination of the course, bringing together programming, algorithms, data structures, testing and evaluation. It allows students to demonstrate creativity, resilience and technical competence while preparing for further study and careers in computing-related fields.
neurologyYou need to know
- The project is assessed through analysis worth 10 marks, design worth 15 marks, development worth 25 marks, and evaluation worth 20 marks.
- A problem is suitable for a computational solution when it can be represented using data and solved through defined inputs, processes, outputs and algorithms.
- A computational approach is justified when it offers relevant benefits such as automation, speed, accuracy, repeatability, data storage or handling complex decisions.
- Stakeholders are individuals or groups who affect, use or are affected by the solution, and their different needs can influence its requirements and interface.
- Research into the problem domain, stakeholders and similar solutions provides evidence for selecting suitable features, algorithms, data structures and interface conventions.
- The essential features are the functions that the solution must provide to address the identified problem and stakeholder needs.
- Limitations are constraints or weaknesses that restrict what the proposed solution can do, such as limited time, data, hardware, compatibility or project scope.
- Functional requirements specify what the solution must do, while non-functional requirements describe qualities or constraints such as usability, performance, reliability and security.
- Hardware and software requirements identify the equipment, operating environment, programming language, libraries and other resources needed to develop or run the solution.
- Success criteria must be specific and measurable so that evidence from testing can determine whether each requirement has been achieved.
- Decomposition divides a complex problem into smaller, manageable sub-problems that can be designed, implemented and tested separately.
- A complete design explains the overall structure of the solution and shows how its components and algorithms work together.
- Usability features include clear navigation, consistent layouts, readable output, suitable feedback, error messages and accessibility choices appropriate to the target users.
- Variables store individual values, data structures organise related data, and classes combine attributes and methods to represent entities within an object-oriented solution.
- Validation checks whether input data is sensible and acceptable, whereas verification checks whether data has been entered or transferred accurately.
- A test plan identifies the feature being tested, the test data, the expected result and the reason for the test, including normal, boundary and erroneous data where appropriate.
- Iterative development repeatedly designs, implements, tests and refines parts of the solution, using evidence from each iteration to guide the next.
- A prototype is an early or partial implementation used to investigate requirements, interfaces or technical approaches before completing the final solution.
- Robustness is the ability of a solution to handle invalid, unexpected or extreme inputs without crashing or producing uncontrolled behaviour.
- Evaluation uses development tests, final robustness tests and stakeholder feedback to judge success criteria, usability, maintainability and priorities for further development.
rocket_launchYou must be able to
- Identify a problem's inputs, processes, outputs and algorithmic elements, then justify why a computational approach is appropriate.
- Identify relevant stakeholders and explain how the proposed functions and usability features address their specific needs.
- Research the problem and comparable solutions, then use referenced findings to justify chosen approaches, essential features and acknowledged limitations.
- Specify functional and non-functional requirements, appropriate hardware and software, and measurable success criteria linked to the problem analysis.
- Decompose the problem into coherent sub-problems and justify how their solutions will combine into a complete system.
- Design the solution using structured algorithms, interface plans, variables, data structures, classes and validation rules, justifying each significant choice.
- Construct a test plan containing normal, boundary and erroneous data, expected outcomes and reasons for tests during iterative and post-development testing.
- Develop the solution iteratively, annotating prototypes, code changes, test results, decisions and remedial actions so that progress is clearly evidenced.
- Perform final robustness and usability testing, recording actual outcomes and relevant stakeholder feedback as annotated evidence.
- Evaluate the finished solution against every success criterion using test evidence, then assess usability, maintainability, limitations and realistic opportunities for further development.