Software Engineering › Key terms › Y11 Programming Fundamentals › Function v procedure
Function v procedure
Term Y11 Programming Fundamentals
Definition
A function returns a value to the caller (RETURN); a procedure carries out a task and does not return a value.
Example: 'def calc_total(a, b): return a + b' is a function.
Found in: syllabus, course specifications, 2025 HSC marking guidelines, 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
- Python: def with return
- Pseudocode: Use it correctly in the exam pseudocode editor.
- Multiple choice: Pick the option that matches the definition or example.
Where it has appeared in the paper
The Software Engineering Project (Part B, C). Part letters follow each paper’s own layout.
Related past questions
- Sample exam Q21b (5 marks): Python: subroutines, lists, loops The Software Engineering Project (Part B) · 5 marks
- Familiarisation Q13 (6 marks): Python: lists, loops, selection The Software Engineering Project (Part C) · 6 marks
These are the questions the flashcard set links to this term. Open each one and compare your answer with its marking criteria.
Study links
- Flashcard: Function v procedure in Programming Fundamentals (Year 11) · study that set
- Memorise: Software development steps and algorithm design
How to use it in an answer
A model sentence
“A function returns a value to the caller (RETURN); a procedure carries out a task and does not return a value.” Then apply it: 'def calc_total(a, b): return a + b' is a function.
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.
Technique for the question types
- Python: Write code that runs: indentation, quotes, define functions before calling them, print the required output, meet every listed requirement.
- Pseudocode: Write HSC-style pseudocode: capital keywords, paired END words, indentation; initialise variables; output the required result.
- Multiple choice: Read all four options, rule out wrong ones, pick one; no penalty for guessing so never leave blank.
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.)
The full stem is not available; the requirements are inferred from the MG criteria and sample answer. FLAG: in the MG text the comment and the print("Round...") are run together on one line (a typesetting error); they are shown here on separate lines.
Worked answers from the marking guidelines
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)
Familiarisation Q13 (6 marks): Python: lists, loops, selection (6 marks): criteria and sample answer
Criteria
6: Substantially correct solution with ALL of: looping correctly; referring to the contents of the data structure correctly; displaying the player's scores and corresponding points as shown; calculating the total points; taking bonus points into account; handling the final round correctly. 5: Most features. 3-4: Some features. 2: One feature. 1: Some understanding.
Sample answer
Input code
scores = [3,5,5,2,1,4,0,1,4,5]
Display the scores and points
Header row
print("Round\tScore\tPoints") totalPoints = 0
Calculate the points and print
for i in range(len(scores)): roundNumber = i + 1 score = scores[i] points = score
# Check if any bonuses apply and NOT the final round
if points == 5 and i != 9:
# Add the points from the next round as bonus points
points += scores[i + 1]
# Check if the final round bonus applies
if points == 5 and i == 9:
# Give the bonus points of 10
points = 10
# Add to the total points tally
totalPoints += points
# Print the results
print(str(roundNumber) + "\t" + str(score) + "\t" + str(points))
print("\nTOTAL POINTS: " + str(totalPoints))
Common mistakes
- 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.
- 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.
- 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 · Subroutine (module, subprogram, procedure)