Skip to main content

Computer Organization and Architecture


The information technology field is wonderfully exciting place to be! It seems as though every day brings new developments that alter the ways we create and work with information. Of course, with this excitement comes a challenge. To be a successful player in IT we have to be adaptable and flexible.

Much of the change occurs around computer system technology. The computer is, after all, at the foundation of information systems. A deep understanding of computer systems is, therefore, an essential element of success. We must be able to understand each new development, assess its value, and place it in the context of our knowledge of computer systems.

This course in an introduction to computer architecture and organization. It will cover topics in both the physical design of the computer (organization) and the logical design of the computer (architecture). The main contents include the organization of a simple stored-program computer: CPU and memory; Instruction sets, machine code, and assembly language; Conventions for assembly language generated by compilers; Binary, hexadecimal and 2’s complement number representation; Hardware organization of simple processors.

Course Code: CEA201x

Course Name: Computer Organization and Architecture

Credit: 3

Estimated learning duration:

- Video duration: 9.04 hour

- Duration for reading documents: 16.42 hour

- Duration is exercise/lab: 19.64 hour

- Duration for progress test: 2.3 hour

- Duration for assignment/project: 3.56 hour

Course Objectives:

- Be knowledgeable about information concept, encoding, debugging, multiplexing. Know how to represent binary and hexadecimal numbers, signed numbers with the two's complement and basic algorithms.

- Be aware of the knowledge, logical algorithms. Understand the Boolean laws and apply them to reduce an expression and design a combinational logical circuit.

- Know the basic concepts in computer organization and architecture such as stored programs, scripting architecture (features, functions, formats), storage and memory access, operand representation. Know how to use simulation software to test and debug programs.

- Understand the definitions of assemply language to be able to write basic programs. Distinguish between assembly language and high-level languages.

- Know the concepts, knowledge in the decentralized memory system: SRAM, DRAM, Flash, harddrive. Understand the basic concepts of cache as:

+ Locality Principle (locality of reference) when accessing memory

+ how to access to cache

+ size of a cache data block

+ cache hit, cache miss

+ conflict miss


Module 1: Basics of Information

- Lesson 1 What information is, encoding.

- Lesson 2 The number systems (fixed-length encoding) and signed integers: 2's complement

- Lesson 3 Error Detection and Correction

Module 2: Combinational Logic

- Lesson 4 Basic Logic Gates and Sum of Products form

- Lesson 5 Logic Simplification

- Lesson 6 Multiplexers

Module 3: Designing an Instruction Set

- Lesson 7 The von Neumann Model

- Lesson 8 Storage

- Lesson 9 ALU Instructions

- Lesson 10 Constant Operands

- Lesson 11 Memory Access

- Lesson 12 Branches and Jumps Instructions

- Lesson 13 The Simulator for the Beta architecture

Module 4: Assembly Language

- Lesson 14 Intro to Assembly Language

- Lesson 15 Symbols and Labels

- Lesson 16 Raw data, expressions, layout data and Assembly Wrap-up

- Lesson 17 Iterpretation and Compilation

Module 5: Caches and the Memory Hierarchy

- Lesson 18 Memory Technologies

- Lesson 19 SRAM and DRAM

- Lesson 20 Non-volatile Storage; Using the Hierarchy

- Lesson 21 The Locality Principle

- Lesson 22 Caches

- Lesson 23 Direct-mapped Caches

- Lesson 24 Block Size; Cache Conflicts

- Lesson 25 Write Strategies and Summary Cache Tradeoffs



Course Designer

Hoàng Xuân Sơn

  • Master of Hanoi Electronics and Telecommunications University
  • Lecturer of FPT University
  • Having over 10 years of experience in the fields of telecommunications, electronics, control and measurement and over 5 years of experience in teaching subjects in the fields of electronics, telecommunications and information technology.

Learning sources

Below is the list of all free massive open online learning sources (MOOC) used for this course by FUNiX: Computation Structures 1: Digital Circuits, Computation Structures 2: Computer Architecture, Computer Organization and Architecture 10th - William Stallings.

All open learning sources used in FUNiX training program are public, constantly updated and freely used. FUNiX is always willing to receive and discuss any comments, suggestions and responses related to our learning sources via email