Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)