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: Low-level
Learning Objective/s:
  • Describe the key characteristics of low‑level programming paradigms.
  • Compare machine language and assembly language with high‑level languages in terms of abstraction, portability, and performance.
  • Explain appropriate contexts for using low‑level paradigms and give real‑world examples.
  • Translate simple assembly mnemonics into their corresponding machine‑code representations.
Materials Needed:
  • Projector or interactive whiteboard
  • Slide deck summarising low‑level concepts
  • Printed handout with sample assembly code
  • Computer with an assembler/simulator (e.g., NASM, MARS)
  • Worksheet for opcode‑decoding exercises
  • CPU architecture diagram (digital or printed)
Introduction:

Begin with a quick poll: “What challenges do high‑level languages hide from us?” Connect this to students’ prior work on high‑level paradigms. Explain that today they will uncover how code maps directly to hardware and outline the success criteria: identify characteristics, compare paradigms, and decode simple assembly.

Lesson Structure:
  1. Do‑now (5'): Students list advantages and disadvantages of high‑level languages from the previous lesson.
  2. Mini‑lecture (10'): Present low‑level characteristics with slides and the CPU diagram.
  3. Guided practice (12'): Walk through an assembly addition example, showing the corresponding machine‑code fields; students annotate the handout.
  4. Hands‑on activity (15'): In pairs, use the assembler simulator to write a simple load‑add‑store program and view the generated machine code.
  5. Comparison discussion (8'): Complete a Venn diagram comparing low‑level and high‑level paradigms using the provided table.
  6. Formative check (5'): Quick quiz/exit ticket with three questions on when low‑level programming is appropriate.
Conclusion:

Recap the defining traits of low‑level paradigms and how they differ from high‑level approaches. Collect the exit tickets to gauge understanding, and assign a brief homework: research a real‑world device driver or firmware example and write a one‑paragraph summary of why low‑level code was chosen.