Lesson Plan

Lesson Plan
Grade: Date: 17/01/2026
Subject: Computer Science
Lesson Topic: Show understanding that an ADT is a collection of data and a set of operations on those data
Learning Objective/s:
  • Describe what an abstract data type (ADT) is, including its data set and operations.
  • Explain the difference between an ADT specification and a concrete implementation.
  • Identify common ADTs (stack, queue, list, set, map) and list their typical operations.
  • Interpret operation tables and express operation behaviour using simple mathematical notation.
  • Compare ADTs to possible implementations and justify appropriate choices.
Materials Needed:
  • Projector and screen
  • Whiteboard and markers
  • Printed handouts of ADT operation tables
  • Laptops with a Python IDE installed
  • Sample code snippets for stack operations
  • Sticky notes for group matching activity
Introduction:

Begin with a quick poll: “What real‑world objects behave like a stack?” Connect responses to prior knowledge of lists. State that today’s success criteria are to define an ADT, distinguish it from its implementation, and recognise common ADTs and their operations.

Lesson Structure:
  1. Do‑now (5'): Students write a definition of “abstract data type” from memory; teacher collects a few responses.
  2. Mini‑lecture (10'): Present key concepts (data set, operations, specification vs. implementation) with slides and the suggested stack diagram.
  3. Guided exploration (15'): In pairs, examine the provided stack operation table, fill any missing entries, and discuss the behaviour of push, pop, peek, and isEmpty.
  4. Live coding demo (10'): Teacher writes a simple Python stack using a list, demonstrates push, pop, and peek while verbalising the abstract specifications.
  5. Comparative activity (10'): Groups match ADTs (stack, queue, set, map) to suitable concrete structures using sticky notes and handouts.
  6. Formative check (5'): Quick Kahoot quiz on ADT vs. implementation differences.
  7. Exit ticket (5'): Each student writes one additional example of an ADT not covered and lists two of its operations.
Conclusion:

Summarise how an ADT defines *what* operations exist and *how* they behave, independent of the underlying data structure. Collect exit tickets and remind students to complete the homework worksheet that asks them to design an ADT for a simple game inventory.