This course presents the fundamental principles of Computer Organization and Architecture. This leads to an understanding of the design of processors, the structure and operation of memory and virtual memory, storage system integration, and peripherals. It introduces the students to the foundation of computer organization including microarchitecture and instruction set architecture, assembler programming, internal data representation, and essential hardware components that support operating systems. It is intended to give students an overview of the entire computer machine organization. The course provides basic programming in assembly language. This leads to a direct and practical understanding of the inner working stages of a processor in relation to the rest of the system