Computer Architecture Principles: From Zero to Mastering Core Hardware Logic