Computer Architecture and Organization aims to develop a deeper understanding of the hardware environment upon which all of computing is based, and how a hardware layer is interfaced to the software layers that comprise the applications that perform modern computing. Students need to understand computer architecture to develop programmes that can achieve high performance through a programmer’s awareness of hardware functional components, their characteristics and limitations. In selecting a system to use, students should be able to understand the trade-offs among various components, such as CPU clock speed, cycles per instruction, memory size, and average memory access time