Lesson Plan

Lesson Plan
Grade: Date: 17/01/2026
Subject: Computer Science
Lesson Topic: Understanding what is meant by a programming paradigm
Learning Objective/s:
  • Describe what a programming paradigm is and its role in software development.
  • Compare core ideas, advantages, and typical use‑cases of imperative, object‑oriented, functional, and declarative paradigms.
  • Evaluate which paradigm best fits a given problem scenario.
  • Apply a paradigm by interpreting example code snippets from different languages.
Materials Needed:
  • Projector or interactive whiteboard
  • Slide deck summarising each paradigm
  • Handout with the comparison table
  • Sample code snippets (Python, Java, Haskell)
  • Whiteboard and markers
  • Student laptops with an IDE (e.g., VS Code)
Introduction:
Begin with a quick poll: “Which programming language do you use most and why?” This activates prior knowledge of language features and sets the stage for discussing underlying paradigms. Explain that by the end of the lesson they will be able to identify and compare major paradigms and justify their choice for a problem.
Lesson Structure:
  1. Do‑now (5'): Students list languages they know and note any perceived style; teacher records responses.
  2. Direct instruction (10'): Define programming paradigm, why it matters, and overview the four major paradigms using slides.
  3. Guided comparison (12'): Walk through the comparison table, discuss core ideas, advantages, and use‑cases; pose quick check questions.
  4. Code example analysis (10'): Show three snippets (imperative Python, OO Java, functional Haskell); students identify paradigm characteristics.
  5. Application activity (8'): In pairs, students choose a simple problem (e.g., summing numbers) and outline solutions using two different paradigms; share rationale.
Conclusion:
Summarise the key distinctions between the paradigms and how they influence program design. Ask each pair to write one exit‑ticket sentence stating which paradigm they would choose for a real‑world task and why. Assign homework to research a language that supports multiple paradigms and prepare a short reflection.