and then, following this advice, we start with this lowly, humble nand gate, and we walk our students through an elaborate sequence of projects in which they gradually build a chip set, a hardware platform, an assembler, a virtual machine, a basic operating system and a compiler for a simple, java-like language that we call "jack."