Lesson Plan

Lesson Plan
Grade: Date: 17/01/2026
Subject: Computer Science
Lesson Topic: Define and use a procedure
Learning Objective/s:
  • Describe what a procedure is and list its key characteristics.
  • Explain the difference between call‑by‑value and call‑by‑reference.
  • Write a correctly‑structured procedure in Python‑like pseudocode.
  • Call a procedure with appropriate arguments and predict its output.
  • Evaluate the advantages of procedures and avoid common design pitfalls.
Materials Needed:
  • Projector or interactive whiteboard
  • Laptop with Python IDE or online coding platform
  • Printed handout of procedure syntax and example code
  • Worksheet with practice questions (max_of_three, temperature conversion)
  • Whiteboard and markers
  • Exit‑ticket slips
Introduction:
Begin with a quick demonstration of a reusable code block that calculates a circle’s area, asking students why repeating the same code is inefficient. Review prior knowledge of functions and clarify that today’s success criteria are to define a procedure, explain parameter‑passing methods, and correctly implement and call a procedure in pseudocode.
Lesson Structure:
  1. Do‑now (5'): Students answer a short question on the benefits of code reuse.
  2. Mini‑lecture (10'): Define a procedure, discuss characteristics and syntax.
  3. Guided coding (15'): Write the area_of_circle procedure together, highlighting parameters and return values.
  4. Parameter‑passing demo (10'): Contrast call‑by‑value vs call‑by‑reference with an increment example.
  5. Independent practice (15'): Complete worksheet tasks – max_of_three and temperature‑conversion procedures.
  6. Peer review & misconceptions (10'): Students exchange work, identify common pitfalls.
  7. Exit ticket (5'): Write one advantage of using procedures and one common error to avoid.
Conclusion:
Recap the definition, syntax, and benefits of procedures while checking understanding through the exit tickets. Assign homework to create a procedure that converts metres to feet, reinforcing parameter use and return values.