Skip to content

2025 Spring · CS Education and Games

Icebreaker: "I am a TA for course XX; a game I recently played is..." (electronic, board, or toy). Discuss how it combines with the course:

  • Data structures/computational thinking: Three Kingdoms Kill (maintain the card-pile data structure? implement a Three Kingdoms Kill AI?)
  • Intro programming: Chinese chess (implement the game? chess AI?), and if too hard, give a chess program and let students add house rules; also use LeetCode points/badges/leaderboards as reference.
  • Operating systems: Onmyoji (turn-based card battle; the action order/speed of five characters resembles process scheduling/parallelism; some skills change the action bar like raising a process priority).
  • Present algorithms with Snake; students independently writing a full game in a semester may be hard; how to optimize / apply techniques to a raise/dress-up game; Scratch games; Lego programming.

Discussion / brainstorm

  • Is game design/development itself worth being a CS elective? (May involve art; better as a multi-major general-education course; the school has a future animation/game club.)
  • Do "GPA ranking" and "relative-performance grading" count as gamification? Why don't they feel "fun"? — Penalties for losing a game differ; playing a game is optional, but GPA ranking is mandatory — psychologically totally different.
  • Group peer-review? One-on-one battle? LLM-arena-like competition — not grading others' assignments but comparing relative merits.
  • How to bring addictive "reward mechanics" (tasks you can complete; social mechanics) into teaching: "I AC'd a problem, you try!", "80% of students passed 90% of the tests!", "Congratulations, your program beat 1% of students!", "Share your test results to Moments", "Pass all problems for a platinum trophy achievement", even "game-linked course" physical medals / classic lines / emoji. Also consideration for students who dislike such mechanics (one-click mute) and how to prevent addiction.

CS Unplugged (csunplugged)

For primary-schoolers learning binary. Brainstorm — how to design such an activity presenting a knowledge point from my course:

  • Data structures: build a balanced tree with ball-stick blocks, rotating by assembling/disassembling.
  • Data-basics: merge several tables as cards, discuss how to merge.
  • Operating systems: memory allocation with cards representing memory, pack tightly to reduce fragmentation; a competition — generate a random memory-allocation operation sequence, see who fits more rounds.
  • Programming: pointers/linked lists — each student has a blank paper on their head, playing a variable (data on paper), a pointer variable (x row, y column, pointing to a seat), a linked-list node; more advanced: each student is a binary-tree node.

Why games are engaging

  • Fun: low-cost access to experiences hard to get in real life (e.g. FPS); mostly has fast feedback; lower-level classrooms lack such small-step feedback (a whole project late in the semester gives feedback too slowly).
  • Not fun: repetitive, returning after a loss, boring, no achievement, time-consuming; having to do boring tasks (some places sell stats); reward disproportionate to effort — spending lots of time on an assignment that scores the same as someone who just copied.
  • Transferable idea: let students cheaply learn something hard to get outside class; but students still need a set of basic concepts/terminology to know how to search and ask.

⇦ Back to 2025 Spring