Skip to content

Innovative Design of Programming Assignments

Discussion questions:

  • Given the widespread appearance of LLMs, how should intro-programming assignments innovate?
    • What was the form of previous intro-programming assignments?
    • What problems did LLMs bring to those forms?
    • What should intro programming fundamentally teach students?
  • What is your favorite course assignment (need not be CS)? (This activity wasn't very effective.)
    • What are its features?
    • Can it be borrowed into assignment innovation?
  • What is your favorite video game? (This activity wasn't very effective.)
    • Where is its "fun" for you?
    • Can that quality be incorporated into assignment innovation?

Papers:

Prompt Problems: A New Programming Exercise for the Generative AI Era (SIGCSE 2024)

Case: the "build a router" assignment's iteration

(Shared in 2024 Autumn) A typical multi-year iteration case: from "widely criticized" to "mostly praised." From 2018-2023 it iterated continuously, from a hardware-router approach, to a new Router-Lab and manual acceptance (each person connects a Raspberry Pi to the TA's Pi, graded on protocol implementation/connectivity/stability/latency/throughput/routing-table stress scaling), Pi clusters and three-person networking, hardware upgrades, IPv4→IPv6, RIP→RIPng, adding TFTP/DHCPv6/OSPF, and starting to explore P4.

AI-era questions

  • How to design assignments that "students can only do by learning, and AI can't do"? Hard — AI is trainable; one idea is to make assignments closer to the real world.
  • Can it be offered to high-schoolers? Lots of knowledge; lean more toward practical popularization.
  • AI-generated-code policy: don't let the model generate code; current plagiarism detection mainly targets "mindless copy" types.
  • Students inevitably reuse past years' code: besides yearly updates, consider a question-bank "choose 3 of 6," forbidding publishing past code, or generating different per-student assignments like attack-lab.

Gamification ideas

  • Make assignments attract students like a game, e.g. an honorary ranking system ("congratulations, you're Tsinghua's Data Structures King").
  • See the 2024 Autumn / 2025 Spring "CS education and games" seminars.