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: Declarative
Learning Objective/s:
  • Describe the key characteristics of declarative programming paradigms.
  • Compare declarative and imperative approaches using SQL and Prolog examples.
  • Evaluate when declarative paradigms are appropriate and identify their limitations.
  • Apply declarative thinking by constructing a simple SQL query and a Prolog rule.
Materials Needed:
  • Projector and screen
  • Whiteboard and markers
  • Handout with summary table and Venn diagram
  • Laptops with SQL client and Prolog interpreter installed
  • Sample database (students table) and Prolog facts sheet
  • Worksheet for practice queries
Introduction:
Begin with a quick poll asking students which languages they associate with writing “what” versus “how”. Review prior knowledge of imperative constructs before revealing that many modern tools hide the control flow. Explain that by the end of the lesson they will be able to identify declarative characteristics and craft basic declarative statements. Success will be measured through a short exit ticket.
Lesson Structure:
  1. Do‑now (5’) – Students list programming languages they know and categorize them as declarative or imperative.
  2. Mini‑lecture (10’) – Define the declarative paradigm and highlight its key characteristics with slides.
  3. Comparison activity (8’) – In pairs, fill a Venn diagram comparing declarative vs imperative using the provided table.
  4. Demonstration (7’) – Show an SQL query and a Prolog rule, discussing how the runtime resolves them.
  5. Guided practice (12’) – Students write a simple SELECT query on the sample student table, then a Prolog rule for a family relationship.
  6. Think‑pair‑share (5’) – Discuss situations where a declarative approach is advantageous or problematic.
  7. Formative check (3’) – Quick Kahoot quiz with three questions on characteristics and limitations.
Conclusion:
Summarise that declarative programming emphasizes the “what” and lets the runtime handle the “how”, improving readability while potentially obscuring performance costs. Students complete an exit ticket identifying one advantage and one limitation of declarative paradigms. For homework, they will convert a given imperative algorithm into an equivalent SQL query or Prolog rule.