Important Notice

This course is not active. Please contact Department Chair for more information.

Important Notice

This course has been discontinued. Please contact Department Chair for more information.

Computer Systems Design and Architecture

Science & Technology
Computing Science
Course Code
CMPT 2250
Semester Length
Max Class Size
Lecture 25, Laboratory 25
Method Of Instruction
Typically Offered
To be determined


Course Description
This course introduces computer systems design and architecture. It begins with a review of the main digital circuit building blocks in a computer, the basic structure of a single bus computer, assembly language, and addressing modes. These concepts are formally extended by considering various architectures such as RISC and CISC and the relationship between the machine language and the architecture. Processor design in the context of pipelining, horizontal and vertical microprogramming, the ALU, and the memory is considered in depth.
Course Content
  1. Components and Structure of a Computer

1.1.     Registers, Counters, ALU

1.2.     CPU structure

1.2.1.  Harvard versus Princeton Architecture

1.2.2.  Reduced Instruction Set Computers versus Complex Instruction Set Computer

1.2.3.  Metrics for the comparison of processors

1.3.     Control Unit

1.3.1.  Finite State machines

1.3.2.  Micro-programming

1.4.     Advanced Computer Architectural Designs

1.4.1.  Pipelines, branch prediction


  1. Advanced Assembly Language Concepts

2.1.     Macros, interrupts, system stack for parameter passing

2.2.     I/O programming and interfacing

2.3.     Multi-tasking

Methods Of Instruction

There are three components to the course: lectures, labs., and assignments. 


The lecture is used to introduce new material; usually via a sequence of theoretical concepts, examples, and practical considerations. The book is to be used as a close adjunct to the lecture notes and examples.


The two hour weekly lab. is used for the teaching  and evaluation of processor, ALU, and memory designs, circuits using the software product LogicWorks and assembly language programs.


Assignments include, but are not limited to, logic designs some using LogicWorks others using VHDL or C++, microprograms and assembly language programs.

Means of Assessment

Evaluation will be carried out in accordance with Douglas College Policy.  The final grade will be calculated from a particular distribution from the range below.  The exact distribution will be given to the student on the first day of classes along with the course outline.


labs. (6 to 12)                                                 15% - 30%

projects/assignments (1 to  6)                           25% - 40%

tests (1 to 2) @ 15% - 25% each                       15% - 50%

final examination                                             20% - 40%

class participation1                                               0% - 5%


Note #1:  participation includes (but is not limited to) short pop quizzes and/or handing-in (part-of) a homework assignment

Learning Outcomes

The student should be able to:


  • demonstrate an understanding of the relationship between the machine language and the computer hardware in the context of functionality and complexity by
    • designing and implementing programs in machine and assembly language
    • functionally describing architectural support for operating systems and programming languages such as heaps, stacks, and task switching
    • describing the function of the hardware using a formal description language such as RTN (Register Transfer Notation)
    • virtually simulating the hardware functions
      • using a high level language such as VHDL, Verilog, or C++
      • using a logic circuit simulator such as LogicWorks
    • quantitatively describing the complexity and speed of various architectural components using mathematical functional notation and timing diagrams
  • understand numbers of various bases and operations to be done on them by
    • mathematically defining fixed point and floating point numbers
    • designing arithmetic circuits or algorithms used to implement addition, subtraction, multiplication, and division
  • understand the concept of microprogramming demonstrated by
    • describing the hardware using LogicWorks
    • implementing, using either a horizontal or vertical microprogramming architecture, some instructions
  • functionally describe at the hardware level various computer architectures such as
    • RISC versus CISC
    • one bus versus multi bus organizations
    • the concepts of parallelism and pipelining
  • describe at the hardware and software level techniques for
    • Input and Output devices and their interface
Textbook Materials

Textbooks and Materials to be Purchased by Students:


  • Portfolio for logic design assignments
  • Two 3½” high density diskettes



CMPT 1150 with a minimum grade of C


No corequisite courses.


No equivalent courses.

Requisite for

This course is not required for any other course.

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

Institution Transfer Details Effective Dates
Kwantlen Polytechnic University (KPU) No credit 2004/09/01 to 2007/08/31
Simon Fraser University (SFU) SFU CMPT 250 (3) 2004/09/01 to 2007/08/31
Thompson Rivers University (TRU) TRU COMP 213 (3) 2004/09/01 to 2007/08/31
Trinity Western University (TWU) TWU CMPT 242 (3) 2004/09/01 to 2007/08/31
University of British Columbia - Okanagan (UBCO) UBCO COSC 211 (3) 2005/05/01 to 2007/08/31
University of British Columbia - Vancouver (UBCV) UBCV CPSC 2nd (3) 2004/09/01 to 2007/08/31
University of the Fraser Valley (UFV) UFV CIS 1XX (3) 2004/09/01 to 2007/08/31
University of Victoria (UVIC) UVIC CSC 2XX (1.5) 2004/09/01 to 2007/08/31

Course Offerings

Summer 2021

There aren't any scheduled upcoming offerings for this course.