Public View

You are viewing the public version of the syllabus. If you have a SUNet account, you can view the richer version of the syllabus after logging in.

Computer Architectures
CS 401

Faculty: Faculty of Engineering and Natural Sciences
Semester: Fall 2025-2026
Course: Computer Architectures - CS 401
Classroom: FASS-G018
Level of course: Undergraduate
Course Credits: SU Credit:4.000, ECTS:6, Engineering:6
Prerequisites: CS 303
Corequisites: CS 401L
Course Type: Lecture

Instructor(s) Information

Özcan Öztürk

Course Information

Catalog Course Description
This is an introductory course on computer architectures which is about the basic concepts and techniques that are fundamental for modern computers such as datapath design, pipelining, memory hierarchy, cache, and virtual memory. Topics include: Instruction set design, computer arithmetic, controller and datapath design, cache and memory systems, input-output systems, interrupts and exceptions, pipelining, performance.
Course Learning Outcomes:
1. Explain how an instruction is executed in a computer hardware with a classical architecture (e.g., von Neumann machine).
2. Summarize how instructions and data are represented at the machine level and how basic arithmetic is performed.
3. Write simple programs in assembly language for at least one computer architecture.
4. Explain how subroutine calls are handled in one programming language (e.g., the assembly language level).
5. Explain the factors that affect a computer system performance and provide performance metrics to evaluate a computer system.
6. Explain basic instruction level parallelism using pipelining and the major hazards that may occur and the concept of branch prediction and its utility.
7. Explain the effect of memory latency on the performance of a computer platform and the use of memory hierarchy to reduce the effective memory latency.
8. Describe the principles of memory management and the role of memory organization (cache and virtual memory etc.) in overall computer performance.
9. Explain at least one I/O mechanism for the processor to communicate with I/O devices.
Course Objective
To explore the interaction between the hardware organization of modern computers and software, and to reveal the impact of the hardware organization on the performance of the software.
Sustainable Development Goals (SDGs) Related to This Course:
Industry, Innovation and Infrastructure

Course Materials

Resources:
• David Money Harris, Sarah L. Harris, Digital Design and Computer Architecture, 2nd ed. Morgan Kaufmann, 2013. (Textbook)
• David Patterson, John L. Hennessy, Computer Organization and Design: The Hardware/Software
Interface, 4th ed. Morgan Kaufmann, 2012. (Recommended)
Technology Requirements: