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.