Nisam/Schocken: "The Elements of Computing Systems"
I have only finished the hardware part, so far, but skimming the rest I can't find Tetris anywhere. Is that really missing, although it's in the title?
(I know that you can program Tetris on the machine you build in the course, but is it an exercise somewhere?
I wrote a Tic-Tac-Toe variant - but you could write anything, including Tetris.
In the second course you build the programming language that could be used to write Tetris, though I don't think you actually go through it as an exercise.
Note: you can also complete all the course materials just by going to nand2tetris.org.
My presentation slides promoting nand2tetris to the Austin python group: https://docs.google.com/presentation/d/1fGf2eZVOM2lHL8hFVyd2...
https://www.coursera.org/learn/build-a-computer