Professional Documents
Culture Documents
Course Guide
COMP 2131
Introduction to Computer Systems
Copyright and Credits
Copyright © 2017 Thompson Rivers University. All rights reserved.
The content of this course material is the property of Thompson Rivers University
(TRU) and is protected by copyright law worldwide. This material may be used by
students enrolled at TRU for personal study purposes only. No part of this work may be
forwarded or reproduced in any form by any means without permission in writing
from the Intellectual Property Office, Thompson Rivers University, copyright@tru.ca.
TRU seeks to ensure that any course content that is owned by others has been
appropriately cleared for use in this course. Anyone wishing to make additional use
of such third party material must obtain clearance from the copyright holder.
Course Guide
Introduction
Welcome to COMP 2131: Introduction to Computer Systems, a three-credit course that
can be applied toward a Thompson Rivers University (TRU) credential.
The Course Guide contains important information about the course structure,
learning materials, and expectations for completing the course requirements. It also
provides information about how and when to contact your Open Learning Faculty
Member, an expert in the course content, who will guide you through the course.
Take some time to read through the Course Guide to familiarize yourself with what
you need to do to successfully complete your course.
Before you begin your coursework, it also is a good idea to read the Student
Handbook, available at http://www.tru.ca/assets/ol/ebooks/ol_st_handbook/. The
Handbook provides information about key policies and procedures, such as course
withdrawals and cancellations, and how to schedule final exams. It also includes
information about the various student services available to you, and telephone,
email, and website contact details.
If you have any questions, please feel free to contact your Open Learning Faculty
Member. We hope you enjoy the course.
Course Description
Students learn the basic concepts of computer systems. Students are introduced to
the concepts of computer architecture, the ‘C’ and assembly programming languages
as well as the use of Linux operating system. Students learn about memory
organization, data representation, and addressing. Students are introduced to the
concepts of machine language, memory, caches, virtual memory, linkage and
assembler construction as well as exceptions and processes.
Prerequisites:
Recommended COMP 1231 with a score of C or better or
Recommended COMP 1230 with a score of C or better or
Recommended COMP 2120 with a score of C or better
Exclusion
COMP 2130
Learning Outcomes
Upon completion of this course, students will be able to:
1. describe the fundamentals of computer architecture
2. write programs with the powerful C programming language
3. demonstrate programming through assembly language
4. explain the critical relationship between programming and computer architecture
5. demonstrate efficient programming through code optimization
Course Materials
Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, 3/E,
Prentice Hall, 2016. ISBN 10: 0-13-409266-X
Kernighan and Ritchie, The C Programming Language 2nd edition, Prentice Hall,
1988, ISBN 10: 0-13-110362-8
Note
If you have any questions about course textbooks or other materials, please
contact Enrolment Services at student@tru.ca or 1.800.663.9711 (toll-free in
Canada), 250.852.7000 (Kamloops, BC), and 1.250.852.7000 (International).
Course Topics
• Basic concepts of digital systems
• Computer Abstraction and Technology
• Introduction to Linux OS and C Language
• Memory Organization, Data representation, and Addressing
• Basics of Architecture, Machine Code
• Machine Level Programming
• Memory and Caches
• Linking
• Exceptions and Processes
• Virtual Memory
Learning Activities
COMP 2131 is a course that provides engaging activities and opportunities to apply
your learning in relevant real-world contexts. Each of the twelve topics will guide
you to complete practice and review exercises, made up of questions and key terms.
While these learning activities are optional and ungraded, working through them
will help you to meet the course learning outcomes and successfully complete your
assessments and prepare for the final exam. These are the main learning activities
you will engage in:
1. Readings from textbook:
2. Viewing Recorded Lectures:
Multiple lectures on related topics
3. Reviewing PowerPoint slides
Module 1 to Module 7
4. Completing Practice Assignments:
Programs to practice and review the concepts studied
Student Café
An informal discussion space called the ”Student Café“ has been set up for you to
easily communicate with other learners in the course about matters of mutual
interest regarding your studies and professional development. This is an informal
gathering area to help build a learning community, and you will not be graded on
these postings. For more information about online discussions and netiquette see
http://www.tru.ca/distance/services/learner/netiquette.html.
Assessments
In order to complete this course successfully, you must obtain at least 50 per cent on
the final examination and 50 per cent overall. The following chart shows how the
final grade is determined for this course.
See the Assignments Overview tab for details on the assignments (you will
also find information posted within course material), as well as instructions
on how to submit assignments to your Open Learning Faculty Member.
Quiz 1 6%
Written Assignment 1 7%
Programming Assignment 1 8%
Quiz 2 6%
Written Assignment 2 8%
Total 100%
Assignments
There are three categories of assessments:
Programming Assignments: 1, 2, and 3 – 8%, 10% and 10% Since this is a
programming course, the assignments provide you with an opportunity to
demonstrate that you have learned to course material. After every module, you are
provided with incomplete code and instructions on how to complete them. In
addition you will be required to solve problems by creating appropriate programs.
Programming Assignment 1 is due at the end of Module 3 Programming
Assignment 2 is due at the end of Module 4 Programming Assignment 3 is
due at the end of Module 7
Quizzes – There are two online quizzes that have multiple choice or true of false
questions. The first online quiz must be attempted before you move on Module-4
and will cover the concepts from Module 1 and Module 2. Quiz 2 is assigned
after Module 5 and covers the concepts of Module-4 and Module-5 of the course.
Quiz-1 - 6% of final grade Quiz-2 – 6% of final grade
Written Assignments: 1 & 2 – 7% and 8% - these are two theoretical assignments
that will cover the concepts covered in modules 1, 2, 4 and 5. These are to be
answered and submitted directly to the Open Learning Faculty Member.
Written Assignment 1 is due at the end of Module 4 Written Assignment 2 is
due after the end of Module 5
Final Exam
At the completion of the course you will be required to sit for a mandatory Final
Examination.
The exam will be up to 3 hours and will test you on all the topics covered. The main
points to be reviewed before sitting for the exam are:
• Major hardware and software components.
• Distinguish and explain different categories of software’s
• Explain different hardware components like SRAM, DRAM, FPGA, CHIPS,
USB etc.
• Representing the information through different number systems
• Understand the need of Octal and Hexadecimal numbers
• Floating point number representation
• Logic gates, Binary Expressions, truth tables
• Introduction to the programming language ‘C’ on Unix platform using GCC
• Operators, conditions, loops in ‘C’
• Array Handling with 1-D and 2-D arrays
• functions & Recursion
• Pointers Manipulation
• data file handling - Text files and binary files
• The memory hierarchy
• Role of Cache memory
• Compiler Drivers
• Static and Dynamic Linking
• Relocatable Object files
• Symbols and Symbol tables
• Structure and working of Assembly code
• Optimizing program performance
• Explain the concept of locality and parallelism
You must apply to write the final examination, and it is your responsibility to do so.
The deadline to apply for an examination is typically three to four weeks prior to the
writing date.
For details on how to register for your final exam refer to the following website.
http://www.tru.ca/distance/services/resources/exams.html#TRU-OLexams
Grading Scale
The official grading scale for all Open Learning courses is the official TRU
Academic/Career/Developmental Programs scale as noted in TRU’s “Grading
Systems and Procedures.” For detailed information, go to
http://www.tru.ca/distance/services/policies/newgrading.html.
Academic Integrity
Appropriate academic conduct requires that you complete your assignments
independently, honestly, and without misrepresentation or plagiarism. Typically,
plagiarism occurs in three forms: when a person uses someone else’s exact words or
ideas as if they were his or her own, paraphrases someone else’s ideas without
acknowledgment or identifying the source, or simply fails to include proper citations.
Be sure to cite all sources of both direct quotations and borrowed ideas. If you do
not, you could fail your assignments and, possibly, the course. Also, do not attempt
to submit an assignment or any project work that has been prepared by or with the
assistance of someone else. Remember, plagiarism is a serious academic offence.
Note
Citing facts, statistics, or other illustrative materials deemed to be common
knowledge is not considered to be plagiarism.
For more resources on plagiarism and citing sources, see the following:
• TRU Library style guide, available at
http://www.tru.ca/library/guides/citation_styles.html#apa.
• TRU-OL Social Sciences Style Guide, available at
http://www.tru.ca/library/pdf/socscistyle_ol_2005.pdf
• In addition, the TRU Library website provides the “Plagiarism – what is it?”
resource at http://libguides.tru.ca/content.php?pid=83248.
• TRU’s “Academic Integrity” policy, available at
http://www.tru.ca/__shared/assets/ed05-05657.pdf. Note that it is your
responsibility to ensure that you are fully familiar with the “Forms of
Academic Dishonesty” section of this policy.
All of these resources are also available in the Links section in the left-hand
navigation bar on your course Home Page.
Exam Application
You are responsible for ensuring that TRU-Open Learning receives your
exam application by the deadline.
For information about TRU –OL Examinations click here
Suggested Schedule
Most students attempt to complete this course in sixteen weeks. However, you may
complete the course more quickly, or you can take up to thirty weeks to finish.
Regardless of how long you choose to take, it is a good idea to set a schedule;
otherwise, you may find yourself nearing the maximum completion deadline and
still have outstanding assignments.
The following is a suggested timetable based on the average completion rate. You can
print this schedule out and revise to your own timetable.
Week Actual
Activity Percentage Date Due
Assigned in date
Quiz 1 End of
6 Module 1 & 2
(Covers module 1&2) Week 3
Programming Assignment 1
End of
(Covers Module 3 – some 8 Module 3
Week 6
topics)
Programming Assignment 2
(Covers Module 3 – rest of 10 Module 3 In week 9
the topic)
Quiz 2 End of
6 Module 4 & 5
(covers module 6) Week 10
Week Actual
Activity Percentage Date Due
Assigned in date
After Week
Final Exam 45 After module 6
14
100
Help Available
The following sections describe the support that is available to you throughout this course.
Remember, if you are prompted to log on or sign in to access library resources, you
need your student number and your library PIN number. Your library PIN is your
six digit birth date in the YYMMDD format.
If you have any problems locating a journal or would like some guidance on how to
locate research materials more effectively, please contact the TRU Library’s Distance,
Regional and Open Learning (DROL) Library Services department
http://www.tru.ca/library/distance/distance_services_contacts.html. You can ask for
help via online chat (AskAway), email, Facebook, or phone.
For more information about TRU Library policies and services for TRU-OL students,
refer to your Student Handbook.
Technical Support
If you are having problems using the tools or features of the course website, check if
you are using the correct hardware and software required for your course at
http://www.tru.ca/distance/about/learner/techsoftware.html.
If you still are experiencing problems, go to the IT Service Desk at
http://www.tru.ca/distance/services/resources/helpdesk.html.
If you are having problems accessing the course website or have other related questions,
you can phone the IT Service Desk at 1.888.852.8533 (toll-free in Canada), 250.852.6800
(Kamloops, BC), and 1.250.852.6800 (International); or email ITServiceDesk@tru.ca.
Course Summary
Module 1: A Tour of Computer Systems
Overview
In this module student will start with the general introduction to computers and
commonly used terminology related to computers.
Learning Objectives
Upon completion of this module, students will be able to:
• Describe the concepts of Hardware/Software and networking basics.
• Explain the steps in execution of a program
• List hierarchy of storage devices
• Identify the use and need of field-programmable gate array (FPGA)
Learning Objectives
Upon completion of this module, students will be able to:
• Representing the information through different number systems
• Understand the need of Octal and Hexadecimal numbers
• Perform inter-conversions
• Perform Binary Arithmetic
• Understand the IEEE Floating point number representation
• Perform Binary logic
• Understand Logic gates, Binary Expressions and truth tables
• Draw simple Combinational Logic diagram
Learning Objectives
Upon completion of first part of this module, students will be able to:
• Understand the need and use of programming language ‘C’
• Working with UNIX/LINUX operating environment to use GNU-C compiler
• Review of basic data types and operators
• Performing iterations using loops
The second part of the module covers:
• Defining and using functions
• Concept of numeric arrays
• Working with character arrays to make strings
• Understanding and using 2-D arrays
The last part of the module covers:
• Using pointers to manipulate data on specified memory locations
• Managing data into the files
• Providing data to a ‘C’ program through command line arguments
• Structures and dynamic memory allocation
Learning Objectives
Upon completion of this module, students will be able to:
• Identify the need and use of storage devices
• Classify the memory hierarchy
• Calculate the total storage capacity of primary memory and secondary
memory
• Explain the need and use of cache memory
• Explain the concept of Locality and use it for the optimized performance of
the program
Learning Objectives
Upon completion of this module, students will be able to:
• Identify the need and use of Compiler Drivers
• Classify the different linking mechanisms
• Explain the common concepts related to linking and executing a program
• Explain the need and use of executable object files
Learning Objectives
Upon completion of this module, students will be able to:
• Identify the need and use of Assembly language
• Classify the different registers
• Explain the common concepts of writing an assembly program
• Explain the use of stack for parameter passing
Learning Objectives
Upon completion of this module, students will be able to:
• Understand generally Useful Optimizations
o Code motion/pre-computation
o Strength reduction
o Sharing of common sub-expressions
o Removing unnecessary procedure calls
• Explain the Optimization Blockers
o Procedure calls
o Memory aliasing
• Exploit Instruction-Level Parallelism
• Work with Conditionals