Computer architecture has evolved in the past 30 years with the different techniques proposed to improve the performance of the processors. We will see some of these in this course such as the memory hierarchy, the pipeline architecture, the superscalar architecture, the CISC and RISC architectures, the multicore architectures and the multiprocessor architectures. The main purpose of the course is to grasp the concepts related to the measure of computer performance and the techniques to improve the performance with the tradeoffs involved between conflicting parameters of an architecture. The course is for 3rd year students.