Computer Architecture I (CCOM4086)

Latest Course Syllabus-ABET Style () (PDF)

Credits: 3
Students should take this course at: 2nd Year - 1st Semester

Pre-requisite: Introduction to Computer Programming (CCOM3033)


In this course the student is exposed to fundamental issues of the architecture of modern computers. The main objective is to provide students with the knowledge necessary to understand the functional logic of the main components of modern computers. Topics include the logical design, data representation, the different types of memory and its organization, registers, the CPU and its organization, construction and operation of buses, I/O devices and their interfaces. Different levels of abstraction of the computer architecture are studied: logical level, the architecture of micro-level, machine language level, assembly language and operating system level. The course also examines the main features of CISC and RISC architectures and surveys opportunities for parallelism at multiple levels within the processor.


  • Instruction Set Architecture

  • Computer Arithmetic and Numeric Representations

  • Introduction to logic design

  • Performance (evaluation and measurement)

  • Data path and control unit design

  • Pipelining and other techniques to increase performance

  • Memory hierarchy

  • Storage, networks and other peripherals


  • Understand the instruction set of RISC assembly and a computer are represented as the instructions on the computer.

  • Describe several types of memory used in a computer (eg, cache, main memory, virtual), their hierarchy, and function as part of the system.

  • Understanding the communication process with input and output devices and different mechanisms for interfacing with the peripheral units.

  • Understand the process of translation required for the execution of an instruction-level assembly language.

  • Understand the main components in a modern computer

  • Understand the main features of CISC and RISC architectures

  • Describe the sequence of micro-operations required to complete the execution of an instruction-level machine language

  • Understand the logic gates that are designed with the CPU: Boolean, multiplexers, decoders, flip / flops, registers

  • Understand the methods of representation of numbers and how arithmetic is performed on computers

  • Evaluate the performance of a computer and understand the factors affecting it.

  • Understand the process of designing a computer from a single level of logic gates based on conditions of operation and instruction set.

  • Understand some of the techniques used to improve the performance of a computer at the architectural (pipelining, multithreading, superscalar).

  • Understand the effects of technology and its impact in individuals and society