Software Engineering › Key terms › Y11 Programming Fundamentals › Subroutine (module, subprogram, procedure)
Subroutine (module, subprogram, procedure)
Term Y11 Programming Fundamentals
Definition
A named block of statements that performs one specific task and can be called many times; the terms subroutine, module, subprogram and procedure are used interchangeably in the course.
Example: One logical task per subroutine makes code reusable and easier to maintain.
Found in: syllabus, course specifications, sample exam and familiarisation guidelines, school notes, past SDD papers.
Where it is used in the test
Syllabus area: Y11 Programming Fundamentals.
Question types it can appear in
- Pseudocode: Use it correctly in the exam pseudocode editor.
- Python: Write or complete it in the online Python tool.
- Multiple choice: Pick the option that matches the definition or example.
- Short answer: Define, outline or explain it and tie it to the scenario.
Where it has appeared in the paper
The Software Engineering Project (Part B). Part letters follow each paper’s own layout.
Related past questions
- Sample exam Q14 (3 marks): Algorithm design (subroutines) The Software Engineering Project (Part B) · 3 marks
- Sample exam Q21b (5 marks): Python: subroutines, lists, loops The Software Engineering Project (Part B) · 5 marks
These are the questions the flashcard set links to this term. Open each one and compare your answer with its marking criteria.
Other questions that mention it
- 2024 Software Design and Development Q26 The Software Engineering Project (Part D) · 6 marks · old syllabus
- 2023 Software Design and Development Q26 The Software Engineering Project (Part D) · 9 marks · old syllabus
- 2021 Software Design and Development Q30 The Software Engineering Project (Part D) · 4 marks · old syllabus
- 2023 Software Design and Development Q30 The Software Engineering Project (Part D) · 3 marks · old syllabus
Study links
- Flashcard: Subroutine (module, subprogram, procedure) in Programming Fundamentals (Year 11) · study that set
- Memorise: Software development steps and algorithm design
- Master answer: sdd2024-q26 (6 marks, short answer / extended) (Master model answers: The Software Engineering Project (written answers))
- Notes: Pseudocode rules (Pseudocode, flowcharts and diagram rules)
- Notes: Modelling tools: DFD, structure charts, storyboards, flowcharts, class diagrams (The Software Engineering Project (Year 12))
- Notes: Part 3. Where this has been examined (see ../../question_bank.md) (The Software Engineering Project (Year 12))
How to use it in an answer
A model sentence
“A named block of statements that performs one specific task and can be called many times; the terms subroutine, module, subprogram and procedure are used interchangeably in the course.” Then apply it: One logical task per subroutine makes code reusable and easier to maintain.
In a short answer, give the definition in your own words first, then tie it to the situation in the question. Do not copy the example above unless it fits the scenario.
Command words used with it
No linked question shows the command word for this term. Across the past pseudocode and python and short answer questions in this bank the words used most are: Explain, Outline, Describe, Compare, Classify, Analyse. Check the actual word in your question.
Technique for the question types
- Pseudocode: Write HSC-style pseudocode: capital keywords, paired END words, indentation; initialise variables; output the required result.
- Python: Write code that runs: indentation, quotes, define functions before calling them, print the required output, meet every listed requirement.
- Multiple choice: Read all four options, rule out wrong ones, pick one; no penalty for guessing so never leave blank.
- Short answer: One clear point per mark, use the stimulus and course terms, and answer the command word.
What the marking guidelines and feedback say
The key is the modulus: subjects[(period - day) % 5]. (The MG sample lists 'Art' where the question has 'Sport' - the program is meant to work with any five subjects.)
Worked answers from the marking guidelines
Sample exam Q14 (3 marks): Algorithm design (subroutines) (3 marks): criteria and sample answer
Criteria
3: Substantially correct pseudocode that includes at least ONE subroutine. 2: Addresses some of the requirements. 1: Some understanding of the problem.
Sample answer
BEGIN main Get num_pizzas total_cost = 0 FOR i = 1 TO num_pizzas Get pizza_size Get num_toppings cost_per_pizza = calculate_pizza_cost(pizza_size, num_toppings) DISPLAY cost_per_pizza total_cost = total_cost + cost_per_pizza NEXT i DISPLAY total_cost END main
BEGIN calculate_pizza_cost(size, num_toppings) base_price = 10 topping_price = 1.5 IF size = "Medium" THEN base_price = base_price + 2 ELSEIF size = "Large" THEN base_price = base_price + 4 ENDIF pizza_cost = base_price + num_toppings * topping_price RETURN pizza_cost END calculate_pizza_cost
Sample exam Q21b (5 marks): Python: subroutines, lists, loops (5 marks): criteria and sample answer
Criteria
5: Substantially correct Python program that places each subject in the correct period; displays all 5 days; provides appropriate subroutines; programmatically builds the timetable. 4: Most requirements. 3: Some requirements. 2: One requirement. 1: Some understanding.
Sample answer
subjects = ["English", "Software", "Drama", "Science", "Art"] NUM_DAYS = 5 NUM_PERIODS = 5 DAYS_OF_WEEK = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
def create_timetable(subjects): timetable = [] for day in range(NUM_DAYS): periods = [] for period in range(NUM_PERIODS): periods.append(subjects[(period - day) % NUM_PERIODS]) timetable.append(periods) return timetable
def print_timetable(timetable): print() for day in range(NUM_DAYS): print(f"{DAYS_OF_WEEK[day]}") for period in range(NUM_PERIODS): print(f"\tPeriod {period+1}: {timetable[day][period]}") print()
timetable = create_timetable(subjects) print_timetable(timetable)
Common mistakes
- Pseudocode questions (2025 HSC exam Q17): use pseudocode control structures accurately; iterate an array and sum it; apply relational operators correctly; use the stimulus to choose the right structures.
- Python questions (2025 HSC exam Q19): process string inputs; use a selection structure; code must execute in the environment; use correct indentation; call functions in the main program after defining them.
- Python questions (2025 HSC exam Q26): replicate the grid; use the random library; use selection and looping to access the list; include a method of checking the number of values; use meaningful variable names and constants; avoid overly complex structures such as nested IF loops.
- Use the term exactly as the syllabus words it, then link it to the scenario in the question; the 2025 feedback repeatedly rewards using the stimulus.
- Answer the command word: outline gives main points only, explain gives a reason or cause, discuss gives both sides.
Related terms
Same group in the syllabus: Computational thinking · Algorithm · Sequence · Selection · Iteration (repetition) · Divide and conquer · Backtracking · Top-down design · Bottom-up design · Abstraction · Refinement · Pseudocode · Flowchart · Function v procedure