Introduction to Computer Architecture

Curriculum guideline

Effective Date:
Course
Discontinued
No
Course code
CMPT 2395
Descriptive
Introduction to Computer Architecture
Department
Computing Science
Faculty
Science & Technology
Credits
3.00
Start date
End term
Not Specified
PLAR
No
Semester length
15 Weeks
Max class size
35
Contact hours

Lecture: 2 hours/week

Lab: 2 hours/week

Method(s) of instruction
Lecture
Lab
Learning activities

The methods of instruction for this course will include lectures, labs, and self-directed learning (programming assignments).

 

Course description
This course introduces students to fundamental aspects of computer system architecture and low-level programming. Topics include data representations, building blocks of computers, central processing unit organization, bus structures, memory management, computer interfacing, assembly programming, and system software. Students will apply principles and concepts learned in this course to improve program efficiency and reliability. Programs will be written in C and x86-64 assembly languages.
Course content
  • Data representation in computers
  • Number systems
  • Signed and unsigned integers
  • Bit-level manipulation
  • Floating-point numbers
  • Machine-level programming
  • Central processing unit structure
  • Registers
  • Arithmetic and logical operations
  • Bus systems
  • Control unit structures
  • Stack structure
  • Calling conventions: passing control and data
  • Memory organization
  • Memory technology
  • Memory layout
  • Virtual memory and address translation
  • Exceptional control flow
  • Interrupts
  • Input/output programming and interfacing
  • Multi-tasking
  • Parallel computing
Learning outcomes

Upon completion of this course, successful students will be able to:

  • represent numbers in decimal, binary, and hexadecimal systems and perform arithmetic operations in those systems;
  • define fixed-point and floating-point binary numbers;
  • explain the building blocks of computers;
  • describe how various components of modern computers function;
  • design and implement programs in assembly language;
  • describe the fundamental principles of the central processing unit and control unit design;
  • explain how the central processing unit and other components exchange information;
  • describe the complexity and speed of various architectural components and;
  • describe hardware and system software techniques for input and output device interfacing.
Means of assessment

Evaluation will be carried out in accordance with the Douglas College Evaluation Policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following:

Labs

5-25%

Assignments      

0-20%

Term tests

25-35%

Final Exam

30-40%

Total

100%

* In order to pass the course, in addition to receiving an overall course grade of at least 50%, students must achieve a grade of at least 50% on the combined weighted examination components (term tests and final examinations).

Textbook materials

Consult the Douglas College Bookstore for the latest required textbooks and materials.


Sample text: “Computer Systems: A programmer’s Perspective” by Randal E. Bryant, David R. O'Halloran, Latest edition, Pearson.

Prerequisites

A minimum grade "C" in CMPT 1209 and MATH 1130