Building a modern computer from first principles. (Projects from the nand2Tetris computer systems course)