This course is designed to introduce students to the evolution of computer architecture and operating systems and the factors influencing the design of hardware and software compnents of a computer. A key aim of this course is to equip students with a vocabulary and a core set of concepts that can be used in subsequent modules to aid explanation and understanding. Topics may include: instruction set design; processor micro-architecture an pipelining; cache and virtual memory organizations; protection and sharing; I/O and interrupts; reduced instruction sets; multiprogramming; resource allocation and management.