B1.3 · Plan a solution using an input–process–output model
Learn to plan a solution using an input–process–output model through clear examples and targeted practice.
Ontario Grade 11 Computer Science
Software Development
ICS3U study topic B1.3: turn a problem into a clear plan
Before writing a program, it helps to describe what the program is meant to do. The input–process–output model, often shortened to IPO, is a simple way to plan: identify the information that comes in, the work performed on it, and the result that goes out. This lesson focuses on using that model to plan a solution. The examples use Python 3 only to make the plans concrete; other classrooms may use other programming languages.
What you will learn
Describe the input, process, and output of a proposed solution.
Plan a solution by identifying the information it needs, the work it must do, and what it should produce.
Trace a small example to check that the planned process leads to the intended output.
1. The IPO model: plan before coding
Imagine being asked to make a program that calculates the total cost of several items. Before choosing code, ask three questions. What information must the program receive? What work must it do with that information? What result should it provide? The answers form the input, process, and output parts of the plan.
Input is the information a solution receives, such as numbers entered by a user. Process is the work the solution performs on that information, such as adding values or comparing them. Output is the information the solution provides, such as a displayed total or a message. These are roles in a plan, not necessarily three separate pieces of code.
A useful IPO plan is specific enough that another person can understand what the solution needs to do. “The program uses numbers” is vague. “The user enters the prices of two items; the program adds the prices; it displays the total” identifies the needed input, work, and result.
The IPO model helps reveal missing details early. If the required output is a total, but the plan does not say which values are added, the process needs clarification. If the process needs two item prices but only one input is named, the plan is incomplete.
Input: information received by the solution.
Process: work performed on the input.
Output: result provided by the solution.
A plan should connect the requested result to the information and work needed to produce it.
2. Make the plan clear and checkable
Start with the requested result, then work out what information and steps would produce it. For example, if a user needs the average of three quiz scores, the solution needs three scores, must combine them and divide by how many scores there are, and must provide the average. This is a planning description; it does not require a particular programming language.
State inputs in terms a user or another part of a program could provide. Name what each value represents. “Three scores” is more useful than “some data.” For the process, describe the operation in a sensible order. For the output, say what result the user should receive. Avoid adding unrelated information that the task did not request.
A small trace can check that a plan makes sense. Write down the input values, follow the stated process by hand, and record the expected output. This is a reasoned prediction, not a claim that code has been run. If the predicted result does not answer the original task, revisit the plan.
A flowchart can show the order of a simple plan: information enters, a process uses it, and a result is provided. The diagram is only a representation of the plan. It does not replace naming the actual inputs, process, and output.
Name each input and what it represents.
Describe the process in an order that can be followed.
State the intended output clearly.
Trace sample values by hand to check whether the plan produces the requested result.
3. From an IPO plan to a short program
Once the plan is clear, a short program can express it. In Python 3, input() receives text from the user, so int() is used in this example to convert a whole-number entry to an integer. This conversion is Python-specific syntax; a class using another language may express input and conversion differently.
Consider a program that receives the number of notebooks bought and the price of one notebook in whole dollars. It calculates the total cost and displays that total. The inputs are the notebook count and unit price; the process is multiplication; the output is the calculated total. The program below illustrates that plan.
To trace the example, suppose the input values are 4 notebooks and 3 dollars per notebook. The first input is stored in count as 4, and the second is stored in unit_price as 3. The multiplication gives total as 12. The print statement displays the text “Total: 12”. These are expected results from tracing the shown statements, not results from running the code.
The trace matters because it links the plan to the displayed result. If the program multiplied the price by itself instead of by the count, the output would not match the task. Tracing the values makes that mismatch visible.
Trace values through the named process before stating the expected output.
Classroom languages and their input syntax may differ.
4. Use IPO to check and refine a plan
A plan is easier to review when each part answers a distinct question: What information enters? What happens to it? What result leaves? If a task says “show the larger of two numbers,” for example, the input must include two numbers. The process must compare them. The output should identify the larger value, or otherwise state what happens if they are equal if that possibility is relevant to the task.
Check the plan against the task rather than adding extra features. Ask whether every named input is needed for the stated process, whether the process can produce the requested result, and whether the output communicates that result. For a simple task, a sentence or a three-part list may be enough; a diagram is useful when it makes the flow easier to see.
IPO is a planning model, not a guarantee that every detail has already been resolved. If the task is unclear—for example, whether a total should include a fee—the plan should identify that question rather than silently assume an answer. Clarifying the task helps keep the proposed solution aligned with what is actually requested.
Review whether the inputs support the process and whether the process produces the requested output.
Flag unclear requirements instead of silently guessing.
Use the simplest clear representation for the plan.
Trace for the item-cost example
Stage
Value or action
Input count
4
Input unit_price
3
Process
4 multiplied by 3 gives 12
Output
Total: 12
Trace for the three-score average
Stage
Value or action
Inputs
70, 80, 90
Sum
240
Divide by number of scores
240 divided by 3 gives 80
Output
Average: 80.0
Worked example
Calculate the cost of several identical items
Plan a solution that asks for a whole-number item count and a whole-number price in dollars, calculates the total, and displays it. Trace the inputs 4 and 3.
Notebook total plan
The two inputs are used in one calculation, which provides the displayed total.
Python 3
count = int(input("Item count: "))
unit_price = int(input("Price per item: "))
total = count * unit_price
print("Total:", total)
Identify the IPO parts
The inputs are the item count and price per item. The process multiplies those values. The output is the total cost in dollars.
Trace the example values
With count equal to 4 and unit_price equal to 3, the multiplication gives total equal to 12. The print statement therefore displays “Total: 12”. The trace predicts this output; the code has not been executed.
Answer: Input: count and unit price. Process: multiply them. Output: display the total. For the stated values, the expected display is “Total: 12”.
Check: The result uses both inputs, and the multiplication matches the task of finding the cost of identical items.
Worked example
Find the average of three scores
Plan a solution that receives three whole-number scores, calculates their average, and displays it. Trace the inputs 70, 80, and 90.
Three-score average plan
All three scores contribute to the sum before the average is displayed.
The inputs are three scores. The process adds the scores and divides the sum by 3 because there are three scores. The output is the average.
Trace the values
The three inputs are 70, 80, and 90. Their sum is 240; dividing by 3 gives 80. A Python 3 program using the shown expressions would display “Average: 80.0”; Python's / operator produces a decimal-number result in this case.
Answer: Input: three scores. Process: add them and divide by 3. Output: display the average; for these inputs, the expected display is “Average: 80.0”.
Check: The plan uses all three scores, and dividing by the number of scores gives their average.
Worked example
Convert minutes to hours and remaining minutes
Plan a solution that receives a whole number of minutes and displays the equivalent number of hours and leftover minutes. Trace an input of 135 minutes.
Minutes conversion plan
The total minutes are used to determine hours and leftover minutes.
The input is a total number of minutes. The process finds how many complete groups of 60 minutes fit, then finds the minutes left over. The output states both values.
Trace the input
For 135 minutes, two complete groups of 60 fit, leaving 15 minutes. In Python 3, // gives the whole-number quotient and % gives the remainder for these positive whole numbers. The expected display is “Hours: 2 Minutes: 15”.
Answer: Input: total minutes. Process: determine complete hours and remaining minutes. Output: display both. For 135 minutes, the expected result is 2 hours and 15 minutes.
Check: The displayed parts account for the original input: two hours contain 120 minutes, with 15 minutes remaining.
Common mistakes and how to avoid them
Listing an operation as the input, such as saying the input is “addition.”
Correction: Inputs are the values received. Addition belongs in the process.
Naming a process but not saying what result it should provide.
Correction: State the output explicitly, such as “display the total cost.”
Giving an output that the named inputs and process cannot produce.
Correction: Trace sample values through the process and check that the result answers the task.
Assuming unclear details without noting them.
Correction: Identify what must be clarified, such as whether a price includes an additional fee, before finalizing the plan.
Lesson summary
IPO means input, process, and output: what information a solution receives, what work it performs, and what result it provides.
A useful plan names the needed information, describes the work clearly, and states the intended result.
Tracing sample values by hand checks whether the proposed process leads to the requested output.
A simple list, short explanation, or flowchart can communicate the plan; choose the clearest representation for the task.
Check your understanding
Question 1
A plan receives two numbers, adds them, and displays their sum. Which part of the plan is “add the numbers”?
Input
Process
Output
The displayed result
Show answer and explanation
Process
Adding the values is the work the solution performs, so it is the process.
Question 2
A program should display the total distance travelled in two trips. Which input plan best supports that goal?
Receive the two trip distances
Receive the word “total”
Display a distance before receiving any values
Receive only the first trip distance
Show answer and explanation
Receive the two trip distances
Both trip distances are needed so the process can combine them and provide the total.
Question 3
A solution receives 95 minutes and finds complete hours and leftover minutes. What should it display?
1 hour and 35 minutes
95 hours and 0 minutes
0 hours and 95 minutes
1 hour and 95 minutes
Show answer and explanation
0 hours and 95 minutes
Since 95 minutes is less than two hours but more than one, it contains 1 complete hour and 35 leftover minutes. The correct option is therefore the one stating 1 hour and 35 minutes.
Key terms
Input
Information received by a solution.
Process
Work a solution performs on its input.
Output
Information or a result provided by a solution.
Trace
A written record of values as they pass through a program or planned process.
IPO model
A way to plan a solution by identifying its input, process, and output.
Published by DoAssignment. This reviewed lesson follows Ontario Grade 11 Computer Science (ICS3U), expectation B1.3. It is a study resource, not an official curriculum publication.
Before publication, content is checked for structure, mathematical or chemical notation, calculations, course boundaries, and readability. Errors can still occur, so corrections are welcomed.