Coding and Computational Thinking in a Hong Kong Junior Secondary Class
Quick answer: Computational thinking is the reasoning skill, breaking a problem into steps, spotting patterns, and building an algorithm, while coding is one way to express that reasoning. Teach the thinking first with unplugged activities, and the coding itself becomes far less intimidating when it finally starts.
What is computational thinking, separate from writing actual code?
Four habits: decomposition, breaking a big problem into smaller ones; pattern recognition, spotting what repeats; abstraction, ignoring irrelevant detail; and algorithm design, writing the steps in order. None of these require a keyboard. A student planning a school event using these four steps is doing computational thinking, even with no computer in sight.
Naming these four habits explicitly, rather than assuming students absorb them by osmosis while coding, gives them a vocabulary to talk about their own problem-solving process.
How do you teach algorithm design before any actual programming?
Unplugged activities work well here: writing precise instructions for making a sandwich, then having a partner follow them literally, exposing every gap and ambiguity in the "algorithm." Students discover fast that "put the peanut butter on the bread" fails when the instructions never said to open the jar first.
The Algorithms and Computational Thinking unit opens with exactly this kind of unplugged, literal-instruction activity before any code is written.
The ready-made version of this lesson
- Algorithms and Computational Thinking – Computer Science Unit — $24.99, instant download
- Computer Science Activities Bundle / AI, Python, Cybersecurity & Digital Literacy — $119.99, instant download
More in Computer Science for Middle School. Every download has a 30-day money-back guarantee.
What's the right moment to move from unplugged activities into actual code?
Once a class can reliably write an unambiguous set of instructions for a simple task, they are ready to see those same instructions expressed as code, because the hard part, precise sequential thinking, is already in place. Moving to code too early, before that habit is solid, means students fight the syntax and the logic problem at the same time.
The Programming with Python unit is built to pick up right at this point, translating already-understood logic into working code rather than teaching logic and syntax together.
How do you handle the wide skill gap between students who code at home and those who don't?
Frame every task around the computational thinking, not the syntax, so a student with home coding experience cannot simply coast on prior knowledge; decomposing a genuinely new problem is a level playing field even for a confident coder. Pair students deliberately so the stronger coder explains their reasoning aloud, which reinforces their own understanding while supporting their partner.
This matters most in the first two weeks of a unit, before confidence gaps calcify into fixed judgements. A student who assumes they are "not a coding person" after one bad early lesson often carries that belief for years, well past the point where the actual skill gap has closed.
How do you differentiate a computational thinking unit?
Approaching: complete unplugged decomposition and pattern-spotting tasks, writing algorithms in plain numbered steps rather than code.
On level: translate a plain-language algorithm into simple code with block-based or basic text syntax, debugging with guided prompts.
Above level: design an original algorithm for a genuinely new problem and implement it in code, then identify a more efficient alternative approach.
What goes wrong when coding is taught without the thinking behind it?
First, students copy example code without understanding the logic, so a slightly different problem leaves them stuck. Second, "computational thinking" becomes a phrase on a slide rather than a practised skill, because every lesson jumps straight to syntax. Third, students who struggle with typing or syntax get marked as struggling with the subject, when the actual gap is unrelated to their reasoning ability.
Frequently asked questions
Do students need prior coding experience for this unit?
No. The unplugged activities are designed for a class with zero prior exposure, building the reasoning skills before any code appears.
Is this tied to a specific Hong Kong computer science syllabus?
These are general computer science teaching resources, not an EDB publication and not vetted by any examination authority. Match the sequence to your own scheme of work.
How long should the unplugged phase last before introducing code?
Two to three lessons is usually enough to establish the four core habits before moving into actual programming syntax.
What if a student already codes fluently at home?
Give them a genuinely novel problem rather than a familiar one, so their advantage is real reasoning ability rather than memorised syntax.


Comments
No comments yet — be the first to share your thoughts!
Leave a comment
Comments are reviewed before being published.
Thanks for your comment!
Your comment is being reviewed and will appear here shortly.