Douglas College wordmark
Facebook logo Twitter logo Instagram logo Snapchat logo YouTube logo Wordpress logo
back to search

Introduction to Digital Circuits and Assembly Programming

Course Code: CMPT 1150
Faculty: Science & Technology
Department: Computing Science
Credits: 3.0
Semester: 15
Learning Format: Lecture, Lab
Typically Offered: TBD. Contact Department Chair for more info.
course overview

This course introduces the theory and practice of digital circuit design, computer architecture, and assembly language programming. Topics include number representation, Boolean algebra, expression minimization using mapping techniques, asynchronous and synchronous circuits, flip-flops, memories, arithmetic logic units, controllers, and interfacing to computers. Designs are implemented using a commercial software product. Assembly language for one or more microprocessors/microcontrollers such as the 80x86, 68HC11, or the MicroChip PICMicro is introduced, including register transfer, branching, subroutines, and interfacing.

Course Content

  1. Data representation

1.1.     Number systems

1.1.1.  Decimal, binary, octal, hexadecimal

1.1.2.  one and two’s complement arithmetic

1.2.     Character representation

1.2.1.  ASCII (others such as EBCDIC and Unicode may be introduced)

  1. Gates and combinational circuits

2.1.     Simplification techniques

2.1.1.  Boolean algebra

2.1.2.  Karnaugh maps

2.1.3.  Brief survey of other (software) techniques

2.2.     Circuits

2.2.1.  Decoders and multiplexers

2.2.2.  ALU

  1. Memory and sequential circuits

3.1.     flip-flops

3.2.     registers

3.3.     memory

3.4.     counters and synchronous circuits

3.5.     sequential machines and controllers

  1. Computer architecture

4.1.     Machine cycles

4.1.1.  Fetch-decode-execute-increment PC

4.1.2.  instruction cycles and register transfer

  1. Comparison of microprocessor families

5.1.     architecture

5.2.     instruction sets

  1. Assembly language programming

6.1.     the assembler

6.2.     data transfer and addressing modes

6.3.     CPU states, flags, and logical operations

6.4.     branching and structured programming

6.5.     subroutines and parameter passing

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 circuit designs using the software product LogicWorks and also the evaluation of assembly language programs implemented by the student.

Assignments include data representation, logic designs using LogicWorks, and assembly language programming.

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.

Distribution Range:

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

  assignments (4 to 6)                                           20% - 30%

  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) attendance and/or short pop-quizzes and/or handing-in (part-of) a homework assignment

Learning Outcomes

The student should be able to:

  1. Demonstrate an understanding of the logic blocks composing a microprocessor
  2. Appreciate, via comparisons, the architecture of microprocessors
  3. Demonstrate, by design and implementation, using a software simulator, gate level logic of microprocessor components such as memory, ALU, and controller
  4. Understand, via use, data representation including numbers of various bases and characters
  5. Design and implement assembly language programs

course prerequisites

CMPT 1110 with a minimum grade of C

curriculum 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 schedule and availability
course transferability

Below shows how this course and its credits transfer within the BC transfer system. 

A course is considered university-transferable (UT) if it transfers to at least one of the five research universities in British Columbia: University of British Columbia; University of British Columbia-Okanagan; Simon Fraser University; University of Victoria; and the University of Northern British Columbia.

For more information on transfer visit the BC Transfer Guide and BCCAT websites.


If your course prerequisites indicate that you need an assessment, please see our Assessment page for more information.