Computer architecture

Course info:

Semester: 2

General Foundation

ECTS: 6

Hours per week: 3

Professor: T.B.D.

Teaching style: Face to face

Grading: 50% written exams, 50% essays/projects

Activity Workload
Lectures 39
Essays / Projects 66
Independent Study 45
Course total 150

Learning Results

The aim of the course is to present topics of organization and computer architecture, the concepts of programming in assembly and the machine level, as well as the interaction of the symbolic language with the machine architecture and with high level programming languages.

Upon successful completion of the course the student will be able to:

  • describe the structure and operation of a modern computer system.
  • clarify the processes by which a serial computer runs a high-level program.
  • use symbolic language, when appropriate, when developing system applications.
  • distinguish the involvement of the hardware devices (e.g. memory) in the process of running a computer program.
  • evaluate the performance of a computer system.
  • explain the necessary principles on which the interaction of the hardware with the software is based.
  • support his choices in system design and program development.

Skills acquired

  • Analyze, design, implement, and evaluate computer-based systems, processes, components, or programs to meet desired needs.
  • Identify problems and formulate architectural solutions for systems and organizations while reconciling conflicting objectives and finding compromises.
  • Communicate effectively with a range of audiences.
  • Work effectively as part of a team to develop and deliver quality artifacts.
  • Design solutions using approaches that integrate ethical, social, legal, and economic responsibilities.
  • Recognize the applicability of computing and evaluate its impact on individuals, organizations, and global society.
  • Apply knowledge of computing and mathematics within the computer architecture domain.
  • Apply computing theory and principles to practical software design and development.
  • General concepts, computer systems and computer technology.
  • Data representation signed and unsigned integers, floating point numbers, characters.
  • Computer arithmetic for integers and real numbers.
  • Computer performance and evaluation measures.
  • Instruction Set Architectures (ISA) RISC (e.g. MIPS), CISC (e.g. Intel x86) – command format, command repertoire, addressing modes with emphasis on the indexed method as applied to lists and boards.
  • Assembly and machine language, symbolic language programming, command fetch and execute, stack organization and subroutines, assembler, linker, debugger.
  • Single cycle processor – data path design.
  1. Computer Organization and Design RISC-V Edition, The Hardware Software Interface, David A. Patterson, John L. Hennessy, Morgan Kaufman Publishers 2nd Edition – December 11, 2020
  2. Computer Organization and Architecture 10th Edition, William Stallings, Pearson Publications, 2016
  3. Structured Computer Organization 6th Edition, Andrew Tanenbaum, Todd Austin, Pearson Education 2013.
  4. Computer Organization and Embedded Systems 6th Edition, Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian.
  5. Parhami B., Computer Architecture: From Microprocessors to Supercomputers, Oxford University Press, 2005.
Learning Results - Skills acquired

Learning Results

The aim of the course is to present topics of organization and computer architecture, the concepts of programming in assembly and the machine level, as well as the interaction of the symbolic language with the machine architecture and with high level programming languages.

Upon successful completion of the course the student will be able to:

  • describe the structure and operation of a modern computer system.
  • clarify the processes by which a serial computer runs a high-level program.
  • use symbolic language, when appropriate, when developing system applications.
  • distinguish the involvement of the hardware devices (e.g. memory) in the process of running a computer program.
  • evaluate the performance of a computer system.
  • explain the necessary principles on which the interaction of the hardware with the software is based.
  • support his choices in system design and program development.

Skills acquired

  • Analyze, design, implement, and evaluate computer-based systems, processes, components, or programs to meet desired needs.
  • Identify problems and formulate architectural solutions for systems and organizations while reconciling conflicting objectives and finding compromises.
  • Communicate effectively with a range of audiences.
  • Work effectively as part of a team to develop and deliver quality artifacts.
  • Design solutions using approaches that integrate ethical, social, legal, and economic responsibilities.
  • Recognize the applicability of computing and evaluate its impact on individuals, organizations, and global society.
  • Apply knowledge of computing and mathematics within the computer architecture domain.
  • Apply computing theory and principles to practical software design and development.
Course content
  • General concepts, computer systems and computer technology.
  • Data representation signed and unsigned integers, floating point numbers, characters.
  • Computer arithmetic for integers and real numbers.
  • Computer performance and evaluation measures.
  • Instruction Set Architectures (ISA) RISC (e.g. MIPS), CISC (e.g. Intel x86) – command format, command repertoire, addressing modes with emphasis on the indexed method as applied to lists and boards.
  • Assembly and machine language, symbolic language programming, command fetch and execute, stack organization and subroutines, assembler, linker, debugger.
  • Single cycle processor – data path design.
Recommended bibliography
  1. Computer Organization and Design RISC-V Edition, The Hardware Software Interface, David A. Patterson, John L. Hennessy, Morgan Kaufman Publishers 2nd Edition – December 11, 2020
  2. Computer Organization and Architecture 10th Edition, William Stallings, Pearson Publications, 2016
  3. Structured Computer Organization 6th Edition, Andrew Tanenbaum, Todd Austin, Pearson Education 2013.
  4. Computer Organization and Embedded Systems 6th Edition, Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian.
  5. Parhami B., Computer Architecture: From Microprocessors to Supercomputers, Oxford University Press, 2005.