Nand2Tetris is a 2-part course on the elements of computing systems, this practical course teaches you how computers work in-depth by allowing you to simulate building logic gates using boolean algebra, all the way to writing programs in assembly for the eventually built CPU.