Lesson Plan

Lesson Plan
Grade: Date: 17/01/2026
Subject: Computer Science
Lesson Topic: Show understanding of the characteristics of a number of programming paradigms: Object Oriented
Learning Objective/s:
  • Describe the four core OO characteristics – encapsulation, inheritance, polymorphism and abstraction.
  • Explain how these characteristics support modularity, code reuse and maintainability.
  • Interpret simple class definitions and identify OO concepts in code snippets.
  • Compare OO with procedural and functional paradigms to evaluate suitability for different problems.
  • Apply inheritance and method overriding in a short programming exercise.
Materials Needed:
  • Projector and screen
  • Interactive whiteboard or digital slides
  • Java IDE (e.g., BlueJ or Eclipse) pre‑installed on lab computers
  • Printed worksheet with class‑definition snippets
  • Sticky notes for quick exit‑ticket
Introduction:

Begin with a quick poll: “When you think of a ‘car’, what pieces of information come to mind?” Use responses to link real‑world objects to software objects. Review prior knowledge of variables and functions, then state that today students will discover how OO groups data and behaviour together. Success criteria: students will be able to name and illustrate the four OO characteristics and read a simple class diagram.

Lesson Structure:
  1. Do‑now (5'): Write three examples of everyday objects and list one attribute and one action for each.
  2. Mini‑lecture (10'): Present the four OO characteristics with the Vehicle/Car example, highlighting encapsulation and inheritance.
  3. Guided practice (12'): Students work in pairs to annotate a given class snippet, identifying encapsulation, inheritance, polymorphism and abstraction.
  4. Live coding demo (8'): Teacher extends the Vehicle class to a Truck class, showing method overriding and discussing abstraction.
  5. Collaborative activity (10'): Groups create a simple class hierarchy on sticky notes (e.g., Animal → Dog/Cat) and present the relationships.
  6. Check for understanding (5'): Quick quiz via Kahoot covering key definitions and advantages/disadvantages.
  7. Transition to next lesson (5'): Recap and preview design patterns.
Conclusion:

Summarise how encapsulation, inheritance, polymorphism and abstraction work together to make code modular and reusable. Ask students to write one “exit ticket” on a sticky note: name an advantage and a limitation of OO for a given scenario. Assign homework to draft a class diagram for a simple library system, ready to discuss next class.