0% found this document useful (0 votes)
35 views8 pages

Outline Winter 2024

The document outlines the course COMP 228/4 System Hardware for Winter 2024, taught by Tadeusz S. Obuchowicz at Concordia University. It covers topics such as digital logic design, computer organization, assembly language programming, and includes a grading scheme based on class contribution, assignments, a midterm, and a final exam. Recommended texts and a tentative syllabus are provided, along with guidelines on academic integrity and the use of AI tools.

Uploaded by

Alena Croft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views8 pages

Outline Winter 2024

The document outlines the course COMP 228/4 System Hardware for Winter 2024, taught by Tadeusz S. Obuchowicz at Concordia University. It covers topics such as digital logic design, computer organization, assembly language programming, and includes a grading scheme based on class contribution, assignments, a midterm, and a final exam. Recommended texts and a tentative syllabus are provided, along with guidelines on academic integrity and the use of AI tools.

Uploaded by

Alena Croft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

1

Department of Computer Science and Software Engineering


COMP 228/4 System Hardware Section DD
Course Outline - Winter 2024

Course Instructor: Tadeusz S. Obuchowicz, Eng., M.Eng


VLSI/CAD Specialist, Part-Time Faculty
Dept. of Electrical and Computer Engineering
Concordia University
Office: EV5.110
Phone: (514) 848-2424 ext. 3069
email: ted@ece.concordia.ca

Course Title: System Hardware

Lecture Times: Lec DD Wednesday 5:45PM - 8:15PM H435

Tutorial Times: DA: Wednesday, 8:20 PM-10:00PM MB S2.330 SGW


DB: Wednesday, 8:20 PM-10:00PM H421
DC: Monday, 8:20 PM - 10:00PM H501

Office Hours: Tuesdays, 6:00 pm -7:00 pm. Email for appointment.

Course Objectives:

To introduce the concepts of digital logic design, computer organization and assembly language
programming (Intel x86). Students will be exposed to the fundamentals of CPU hardware (central
processing unit) at a level appropriate for beginner students of computer science and software
engineering. At the end of the course, the student will understand how a computer is able to exe-
cute a program. A secondary objective is to gain basic knowledge of the Linux operating system
and its command line interface.

Recommended Course Texts:

0. The Essentials of Computer Organization and Architecture, 5th Edition, Linda Null and Julia
Lobur, Jones and Bartlett Publishers, 2019, ISBN 978-1-284-12303-6.
2

1. Computer Organization and Embedded Systems, 6th edition. Carl Hamacher, Zvonko Vranesic,
Safwat Zaky, and Naraig Manjikian, McGraw-Hill, 2012, ISBN 978-0-07-338065-0.

2. Logic and Computer Design Fundamentals 3rd edition, M. Morris Mano and Charles R. Kime,
Pearson Prentice Hall, 2004, ISBN 0-13-140539-X.

3. Computer Organization and Architecture Designing for Performance, Ninth Edition, William
Stallings, Pearson Prentice Hall, 2013, ISBN 978-0-13-293633-0.

4. A set of lecture notes will be made available in a publicly accessible directory from the Gina
Cody School ENCS Linux systems ( /home/t/ted/PUBLIC/COMP228). They will provide
supplementary information. The course lectures will be based upon the material in these lecture
notes.

Grading Scheme:

Class Contribution: 10%


Assignments: 30%
Midterm: 20%
Final: 40%

The class contribution will be based upon a set of class activities (i.e. an exercise based upon a
concept present in class, answering questions posed in class, etc.). Please note that the class con-
tribution portion is not merely an “attendance” mark, but rather will be based upon students’ par-
ticipation. The grade for this evaluative component shall be assigned at the end of the term.

There will be 3-5 assignments throughout the course. The assignments will be based on the theo-
retical course material as well as coding in Intel x86 assembly language. The NASM assembler
available on the ENCS Linux systems will be used for the assembly language programming
assignments. If you do not have an ENCS computer account, you should obtain one by visiting
the ENCS Service Desk located in H964. The programming assignments shall be submitted
using the Faculty Electronic Assignment Submission system (EAS).

The midterm exam will be held in class. The date will be decided via a class discussion/vote (with
the instructor holding power of veto).

The final exam will be scheduled and administered by the Exams Office during the final examina-
tion period (April 18, 2024- May 1, 2024). The final exam will cover material from the entire
semester.

There is no standard relationship between numerical percentages and the final letter grades.
3

Course Syllabus:

The following is a tentative course syllabus. The relevant chapters of the Computer Organization
and Embedded Systems text are given for reference purposes. The exact course content may be
slightly varied from the syllabus due to time constraints:

Unit #1: Chapters 1 and 9 (selected sections) and course notes:

Number systems: integer and fractional binary numbers, hexadecimal representation. Conversion
between bases. Signed number representation (sign and magnitude, one’s complement, two’s
complement). Addition, subtraction, multiplication, division of integers. Floating point represen-
tation of real numbers and floating point operations. Introduction to digital logic circuits: Bool-
ean algebra, minimization of Boolean expressions, combinational and sequential logic circuits

Unit #2: Chapter 2 and Appendix E (selected sections) and course notes:

Overview of assembly language, data movement instructions, data manipulation, addressing


modes, branching, subroutines. machine instruction encoding and assembly process.

Unit #3: Chapter 5 (selected sections) and course notes:

Block diagram of a computer system (CPU, control unit, registers, main memory, address bus,
control bus, data bus). The Fetch/Execute cycle, basic CPU organization: registers and buses.
Control units.

Unit #4: Chapter 8 (selected sections) and course notes:

Memory systems: RAM, ROM, design of memory systems, cache memory.

Unit #5: Chapter 3 (selected sections) and course notes:

Input/Output organization, input/output techniques (polling and interrupts).

Note:

1. You are advised to familiarize yourself with the Academic Code of Conduct (Academic) with
regards to plagiarism and cheating. Refer to the appropriate sections of the Concordia University
Undergraduate Calendar. All students should become familiar with the University’s Code of Con-
duct (Academic) located at:

http://web2.concordia.ca/Legal_Counsel/policies/english/AC/Code.html

2. Only ENCS approved electronic calculators are allowed during exams (midterm and final). The
calculators must have an ENCS sticker which indicates it is an approved calculator. If the
4

calculator is bought from the bookstore, a sticker may be affixed by the bookstore personnel upon
request. If an approved calculator has been purchased elsewhere, a sticker may be obtained by vis-
iting Carol Williams in EV.227.

3. Expectation of originality forms:

Students should submit a signed copy of the Expectations of Originality Form at the beginning of
the semester to the instructor. Then the student should write on the front page of each assignment:
"I certify that this submission is my original work and meets the Faculty’s Expectations of
Originality", with his or her signature, I.D. #, and the date.

The Expectations of Originality Form may be found at :


http://www.encs.concordia.ca/current-students/forms-and-procedures/expectation-of-original
ity

4. Graduate Attributes:

As part of either the Computer Science or Software Engineering program curriculum, the content
of this course includes material and exercises related to the teaching and evaluation of graduate
attributes. Graduate attributes are skills that have been identified by the Canadian Engineering
Accreditation Board (CEAB) and the Canadian Information Processing Society (CIPS) as being
central to the formation of Engineers, computer scientists and information technology profession-
als. As such, the accreditation criteria for the Software Engineering and Computer Science pro-
grams dictate that graduate attributes are taught and evaluated as part of the courses. The
following is the list of graduate attributes covered in this course, along with a description of how
these attributes are incorporated in the course. The evaluation of these attributes will be based
upon: assignments, midterm exam, final exam.

Table 1: CEAB Graduate Attributes and Indicators and Evaluation Method

Attribute
Knowledge-base. Levels of system abstraction and the von Neu-
mann model. Basics of digital logic design.
Data representation and manipulation. Instr-
cution set architecture. Processor internal
organization and interconnections. Assembly
language programming. Memory subsystem
and cache design. Input/Output subsystem.
Introduction to system software.
Design Practical use of low-level computer design
principles using assembly language.
5

Table 1: CEAB Graduate Attributes and Indicators and Evaluation Method

Attribute
Use of Engineering tools Practical use of assembly language (Intel x86)
and software tools (nasm, ld, gdb) for low-
level system programming and interaction.
Individual and team work Individual and team work on the use of assem-
bly language for various low-level program-
ming tasks.

Life-long learning Locate online material and learn from it in


order to complete assignments/programs.

Table 2: Learning Outcomes

Graduate Attribute Learning Outcome

Knowledge base Understand the basics of digital logic design


as it pertains to computer organization.
Understand how computer represent and
manipulate data. Understand processor inter-
nals, assembly language programmming,
memory design and hierarchy, I/O.
Design Design, implement, and validate assembly
language programs for solving simple prob-
lems.
Use of Engineering Tools Use tools (text editor, assemble, loader,
debugger) and techniques for developing
assembly language programs for low-level
system programming and system interaction.
Individual and Team work Deliver results of individual and team work on
various low-level programming tasks/assign-
ments.
Life-long learning Search for and locate online reference mate-
rial and learn from it for continuous self-
improvement, self learning and problem solv-
ing in the area of computer architecture and
low-level system programming.

Table 2 lists the course learning outcomes which should be able to achieve by the end of the
course.
6

A note on the use of AI tools:

The use of AI tools such as ChatGPT may enhance the learning experience, as such students may
be allowed to use these tools for some purpose, as announced by the course instructor. However,
any use of such tools to write assignments, programs, or any other evaluative exercise for this
course without explicit permission will not be permitted and will be considered a violation of
the Academic Code of Conduct.

A simple CPU organization. By the end of this course, you will understand how this works!

LD_TEMP

TEMP LD_R0
D
Q

Q R0 D

EN_0 LD_R1

Add Q R1 D
Sub ALU
EN_1

RESULT D
Q BUS

EN_RESULT
LD_RESULT
EN_IR

IR Q
D

LD_IR

INSTRUCTION

And you will be able to write assembly language code of the following type:
7

; Ted Obuchowicz
; June 3, 2020
; sample program to add two numbers

section .data

; put your data in this section using


; db , dw, dd directions
; this program has nothing in the .data section

section .bss

; put UNINITIALIZED data here using


; this program has nothing in the .bss section

section .text
global _start

_start:
mov ax,5 ; store 5 into the ax register
keith: mov bx,2 ; store 2 into the bx register
add ax,bx ; ax = ax + bx
; contents of register bx is added to the
; original contents of register ax and the
; result is stored in register ax (overwriting
; the original content

mov eax,1 ; The system call for exit (sys_exit)


mov ebx,0 ; Exit with return code of 0 (no error)
int 80h

GOOD LUCK!

Disclaimer

In the event of extraordinary circumstances beyond the University’s control, the content and deliv-
ery method and/or evaluation scheme in this course is subject to change. This also applies should
the University be required to pivot to an all-online format due to any public health requirements.
8

Keith Richards, Montreal, June 9, 2013. Photograph by T. Obuchowicz.

You might also like