This is a required course for MS and PhD students in the Department of Computer Science at UT. We will survey contemporary computer architectures with particular emphasis on scalable and parallel systems. In order to design such systems, we will focus on the interplay among architectures, algorithms, software, and programming environments. The course is divided into three parts (following the Hwang text): Theory of Parallelism, Hardware Technologies, and Parallel and Scalable Architectures. Part I overviews parallel computer models, scalability analysis, data dependencies, program flow mechanisms, network topologies, benchmarking, and performance laws. Part II is devoted to studying advanced processors, cache and memory technologies, pipelining, RISC, CISC, VLIW, shared memory models, and coherence protocols. Part III covers shared-memory multiprocessors, vector and SIMD supercomputers, message-passing multicomputers, scalable architectures, massive parallelism, shared virtual memory, and coordinated data parallelism (CM-5). Prerequisites for CS 530 are CS 311 and CS 360 or equivalent knowledge/experience in basic logic design, systems operations, assembly language, Fortran or C programming, probability, and discrete mathematics.