The main objective of the computer architecture course is to give a good understanding of concepts and mechanisms related to the design of modern computer systems. At the end of the course, students will be able to describe the basic components of a computer from the perspective of computer architecture and understand the rich interaction between the hardware and software layers in modern systems.