EECS 112: Organization of Digital Computers