I really like the setup of this student project: the necessary set task was 'only' to make a CPU and run a particular program. Having done that, the students were free to make up their own stretch goals, and in this case the ones interested in this particular adventure took themselves out of their original teams and made a new team, with effort split over CPU, assembler/toolchain, compiler.
There's even
an online emulator of the system, running the port of xv6, and with the applications: sl, as, vi, minesweeper, 2048.