Describe the solution — OCR A-Level Computer Science
Test yourself on Describe the solution with OCR A-Level practice questions.
7 days Premium · Then free forever · No card, no charge
Describe the solution explained
This topic focuses on the design phase of the non-exam assessment (NEA) programming project.
Read the full explanation
Learners must explain and justify the structure of their solution, describe the logic using algorithms, identify usability features, and specify key data structures and variables.
What to demonstrate
- Systematic breakdown of the problem into smaller parts with justification
- Detailed definition of the solution structure
- Full description of the solution using accurate algorithms
Show all 9 objectives
- Justification of how algorithms form a complete solution
- Description and justification of usability features
- Identification and justification of key variables, data structures, and classes
- Explanation of necessary validation
- Identification and justification of test data for iterative development
- Identification and justification of test data for post-development phase
Describe the solution exam tips
Topic Overview
In OCR A-Level Computer Science, 'Describe the solution' is a critical stage within the Systems Development Life Cycle (SDLC) that bridges the gap between understanding a problem and actively building its resolution. Following the analysis phase, where requirements are gathered and refined, this stage involves outlining a comprehensive, detailed plan for how the identified problem will be solved. It's not about writing code, but rather articulating *what* the system will do, *how* it will achieve its objectives, and *what resources* it will require to function effectively.
The importance of thoroughly describing a solution cannot be overstated. It serves as a blueprint for the subsequent design, implementation, and testing phases, ensuring that all stakeholders (users, developers, project managers) have a shared understanding of the proposed system. A well-articulated solution description minimises misunderstandings, reduces the risk of costly rework, and provides a clear benchmark against which the final product can be evaluated. It's where the abstract ideas from analysis start to take concrete form, detailing aspects like data structures, algorithms, user interface, security, and testing strategies.
This topic fits into the wider Computer Science curriculum by reinforcing principles of computational thinking, problem-solving, and project management. It requires students to apply their knowledge of data representation, algorithms, and system architecture to real-world scenarios. By learning to describe a solution effectively, students develop crucial skills in logical reasoning, technical communication, and the ability to foresee potential challenges, which are invaluable for any aspiring computer scientist or software engineer.
Key Concepts
- →**Functional Requirements:** What the system *must* do, detailing specific tasks and behaviours (e.g., 'The system must allow users to log in').
- →**Non-functional Requirements:** How well the system performs, covering quality attributes like performance, security, usability, scalability, and maintainability (e.g., 'The system must respond within 2 seconds for 90% of requests').
- →**Data Structures:** How data will be organised, stored, and managed (e.g., arrays, records, files, database tables, linked lists), including data types and relationships.
- →**Algorithms and Processing Logic:** The step-by-step procedures and computational methods the system will use to process data, perform calculations, and achieve its functional requirements (e.g., searching, sorting, validation routines).
- →**User Interface (UI) Design:** How users will interact with the system, including screen layouts, input methods, output displays, and feedback mechanisms, adhering to principles of usability and accessibility.
- →**Security Measures:** Strategies and techniques to protect the system and its data from unauthorised access, modification, or destruction (e.g., authentication, authorisation, encryption, input validation, data backup).
Marking Points
- Systematic breakdown of the problem into smaller parts with justification
- Detailed definition of the solution structure
- Full description of the solution using accurate algorithms
- Justification of how algorithms form a complete solution
- Description and justification of usability features
- Identification and justification of key variables, data structures, and classes
- Explanation of necessary validation
- Identification and justification of test data for iterative development
- Identification and justification of test data for post-development phase
Examiner Tips
- 💡Ensure all design decisions are explicitly justified, not just described
- 💡Use clear, accurate algorithms to represent the logic of the solution
- 💡Ensure the chosen programming language is appropriate for the task and supports a substantial coded element
- 💡Focus on the command words in the assessment criteria to drive the depth of evidence
- 💡Ensure the project is a well-defined, user-driven problem
- 💡**Structure Your Answer Logically:** Use clear headings and subheadings (e.g., 'Functional Aspects', 'Data Structures', 'Processing Logic', 'User Interface', 'Security', 'Testing') to organise your description. This demonstrates a systematic approach and helps the examiner follow your reasoning.
- 💡**Be Specific and Technical:** Avoid vague statements. Instead of 'data will be stored', specify 'data will be stored in a relational database with tables for users, products, and orders, linked by primary and foreign keys.' Use appropriate technical terminology accurately to show depth of understanding.
- 💡**Justify Every Design Choice:** For each component or feature you describe, explain *why* you've chosen that particular approach. Refer back to the scenario's requirements, constraints, or potential issues. For instance, 'Input validation will be implemented to prevent SQL injection attacks and ensure data integrity, as sensitive user information is being handled.'
Common Mistakes
- Failing to justify the choices made for the solution structure or algorithms
- Inadequate description of usability features
- Lack of justification for chosen variables, data structures, or classes
- Insufficient or unjustified test data for different development phases
- Trivial problems that do not allow for the demonstration of required skills
- **Confusing 'describe' with 'implement':** Students often start writing pseudocode or actual code. The solution description is a high-level plan of *what* and *how* it will work, not the detailed implementation. Focus on the logical steps and components, not the syntax.
- **Ignoring Non-functional Requirements:** Many students focus solely on the core features (functional requirements) and neglect crucial aspects like performance, security, usability, and maintainability. These non-functional aspects are vital for a successful and robust solution and often carry significant marks.
- **Lack of Justification:** Simply stating a design choice is insufficient. Students must justify *why* a particular data structure, algorithm, or security measure is appropriate, linking it back to the problem's requirements or constraints (e.g., 'An array is chosen for storing user IDs because it allows for fast direct access and the number of users is relatively fixed').
Revision Plan
- 1**Week 1: Review and Understand Core Concepts:** Revisit the Systems Development Life Cycle (SDLC), focusing on the analysis phase and the transition to solution description. Thoroughly understand functional vs. non-functional requirements, and different types of data structures and algorithms. Use your textbook and class notes.
- 2**Week 1-2: Deconstruct Past Paper Scenarios:** Work through several past paper questions that require 'describing a solution'. For each scenario, identify all functional and non-functional requirements. Practice brainstorming different approaches for data storage, processing, UI, and security.
- 3**Week 2: Practice Structuring and Detailing Solutions:** Attempt to write full solution descriptions for 2-3 new scenarios. Focus on using clear headings, specific technical language, and providing justifications for every design choice. Pay close attention to covering all aspects: input, processing, output, storage, security, and testing.
- 4**Week 2: Self-Assessment and Refinement:** Compare your practice answers with mark schemes and examiner reports. Identify areas where you were vague, missed key details, or failed to justify choices. Refine your answers based on examiner expectations, focusing on precision and comprehensive coverage.
- 5**Ongoing: Create a 'Solution Description Checklist':** Develop a personal checklist of all the elements that should typically be included in a solution description (e.g., data structures, algorithms, UI, security, testing, hardware/software requirements, error handling). Use this checklist during exams to ensure you haven't overlooked any critical components.
Exam Question Types
- 📋Scenario-Based Solution Description:
- 📋Specific Component Description/Justification:
- 📋Comparative Analysis of Solutions:
- 📋Identifying and Addressing Non-functional Requirements: