This course introduces basic concepts in computer organization and design: MIPS instruction set, arithmetic for integer and floating point numbers, design and implementation of the processor with pipeline, memory hierarchy, and parallel processors from client to cloud, which are the fundamental of software programming in computer science. In this course, students will learn the cost performance trade-offs, the relationship between MIPS assembly language, advanced language as well as machine language, interactions between hardware and software, and contents related with memory and CPU.