Lesson Plan

Lesson Plan
Grade: Date: 17/01/2026
Subject: Computer Science
Lesson Topic: Show how it is possible for ADTs to be implemented from another ADT
Learning Objective/s:
  • Describe what an ADT is and its abstract nature.
  • Explain why implementing one ADT using another can improve reuse and performance.
  • Apply a systematic strategy to map operations of a target ADT to an underlying ADT.
  • Construct wrapper algorithms for a stack from a list and a queue from two stacks.
  • Evaluate the correctness of the derived ADT through informal reasoning.
Materials Needed:
  • Projector and screen
  • Whiteboard and markers
  • Printed handout with example code snippets
  • Laptop with IDE (e.g., Python/Java) for live coding
  • Worksheets for mapping exercises
  • Sticky notes for quick checks
Introduction:
Begin with a quick poll: “Which data structures have you used and what operations do they support?” Connect this to the idea of abstraction. Explain that today they will see how one ADT can be built from another, and they will be able to identify the benefits and prove correctness by the end of the lesson.
Lesson Structure:
  1. Do‑now (5'): Students list familiar ADTs and one key operation for each (checks prior knowledge).
  2. Mini‑lecture (10'): Define ADTs, discuss why re‑using another ADT is advantageous (reuse, correctness, performance).
  3. Guided example – Stack from List (12'): Walk through the wrapper code, map stack operations to list methods, ask probing questions.
  4. Paired activity – Queue from Two Stacks (15'): Students fill a mapping table and write pseudo‑code for enqueue/dequeue.
  5. Whole‑class review & correctness sketch (10'): Discuss informal proofs for both examples, highlighting invariant preservation.
  6. Complexity comparison (8'): Complete the provided table of worst‑case and amortised complexities.
  7. Exit ticket (5'): Each student writes one advantage of using an underlying ADT and one possible pitfall.
Conclusion:
Summarise how systematic mapping and wrapper algorithms enable reliable ADT implementations and how complexity analysis guides design choices. Collect exit tickets, then assign homework: students must choose an ADT not covered today and design a brief implementation using another ADT, including a correctness argument.