CS3200 Computer Architecture

This course examines the organization of computer and processor architectures. Instruction set design alternatives, processor implementation, memory system hierarchy, and I/O systems are the main topics of study. A quantitative approach is taken in which different design alternatives are evaluated and compared through analysis and/or experimentation. The course is accompanied by a set of labs which reinforce and extend the lecture subject matter.


CS2011 and either CS2020 or permission of the instructor

Lecture Hours


Lab Hours


Statement Of Course Objectives

Course Learning Outcomes

Upon successfully completing the course, the student will be able to:

  • Understand the tradeoffs of real-world computer and processor architectures.
  • Be able to measure and analyze the performance of computer systems.
  • Grasp energy implications of display, memory, storage, and processor technologies.
  • Be able to leverage different types of parallelism.
  • Understand alternatives to von Neumann processors.
  • Understand the distinction between latency and throughput.
  • Understand how custom hardware can accelerate high-throughput applications.
  • Be able to operate and program a high-performance computing (HPC) cluster.
  • Balance tradeoffs between computation, communication, control, and storage costs.
  • Be able to use computer architecture tools employed by researchers and practitioners.