B1.1.1 Construct a problem specification.

B1.1.1 Construct a problem specification. 
• The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria

The Big Idea

Before building a solution, the problem must be precisely defined. This process—called constructing a problem specification—sets the foundation for successful problem-solving. It ensures that developers, clients, and users share a common understanding of what the system is supposed to do, under what constraints, and how success will be measured.


Essential Elements of a Problem Specification

  1. Problem Statement
    A clear and concise description of the issue that needs solving.
    Example: “Students often forget homework deadlines due to the lack of a reliable task management system.”
  2. Constraints and Limitations
    These define the boundaries within which the solution must operate. They can be technical, legal, ethical, financial, or temporal.
    Example: “The system must run offline and use less than 10MB of memory.”
  3. Objectives and Goals
    These describe what the solution must accomplish.
    Example: “Allow users to record, view, and filter homework tasks by due date and subject.”
  4. Input Specifications
    A formal description of the data that the system will accept.
    Example: “Inputs include task name, due date, subject category, and priority level.”
  5. Output Specifications
    Details of what the system will produce as results.
    Example: “A sorted list of upcoming tasks, with visual indicators for overdue items.”
  6. Evaluation Criteria
    Metrics and conditions used to assess whether the solution is successful.
    Example: “Success is defined as 95% of users being able to input and retrieve tasks correctly within 2 minutes.”

Student-Relatable Example

Scenario: You’re designing an app to help you track your water intake each day.

  • Problem Statement: “Many students do not drink enough water during the school day, leading to fatigue and reduced concentration.”
  • Constraints: “App must be functional on Android 10+, require no login, and store no personal health data.”
  • Objectives: “Track daily water intake and give reminders during set intervals.”
  • Input Specifications: “Amount of water in mL and time of intake.”
  • Output Specifications: “Graph of water consumed by hour and daily average intake.”
  • Evaluation Criteria: “Successful if the user receives at least 4 timely reminders and records at least 3 intakes per day.”

Summary

A problem specification is not a solution—it is a framework that guides the solution. It should be formal, measurable, and complete enough to inform planning, implementation, and testing. Constructing a strong problem specification is an essential skill for any computing project, especially when solving real-world problems using computational thinking.