Instructor:
Department of Computer Science and Software Engineering Concordia University COMP228 Fall 2009 H.F. Li [EV 3.409; hfli@cse.concordia.ca; x3020] Office Hours: Tue 4:15 – 5:15 pm; Thurs 10:30 – 11:30 am.
Objective: The objective of this course is to introduce key concepts in computer organization at the level of assembly/machine language. Students are expected to learn about features that affect programmability and performance at the hardware layer. Hardware details are discussed at a level appropriate for beginning students in computer science and software engineering. Basics of assembly language programming via a simple language are introduced, supplemented with some handson experience on NASM.
Topic Introduction
Tentative Course Outline Material Some basic concepts/terminologies, system abstractions, von Neumann model
Text Chapter 1
Week 1
Data Representation Binary representations of integer and floating point number, 2’s complement addition, ASCII, CRC and Hamming code
Chapter 2
2 – 3
Digital Logic
Chapter 3
4
A Simple Computer Processor internal, introduction to bus, memory, I/O subsystems, Marie ISA and programming, real examples (NASM)
Chapter 4
5 – 8
More on ISA
variations of ISA, pipelining
Chapter 5
8 – 9
Memory 11
types of memory, memory hierarchy, Chapter 6
10 –
I/O and Storages 13
I/O interfaces and programming,
12 –
Boolean functions, logic circuit, full adder, register
Chapter 7
disk technologies Laboratory: There is a laboratory component of the course involving programming assignments that can be completed in the Departmental Lab (H905). User account can be picked up at H960 after the second week. Some of the tutorial sessions will be conducted in the lab so that you will be guided to use the facilities as firsttime users. The laboratory
assignments involve the use of Linux Redhat 9 installed in the lab machines and the MARIE simulator. Tutorials: Scheduled tutorials are compulsory. Tutorials will guide you through examples related to course lectures and the laboratory component of the course. Quizzes will be given during tutorials/lectures amounting to 10% of the course marks. These quizzes are directly related to course assignments (both theory and laboratory) already submitted. Extra preparations on your part are not expected. Course Web: Course material and announcements can be accessed through the course web at www.cs.concordia.ca/~comp228_2 (password protected). Administrative Policies: Grades will be based on three components: Homework [15%]: 5 assignments [theory and programming] Class Participation [8%]: Participation in inclass problem solving via i>clicker [6% for participation and 2% for accuracy*] Quizzes [12%]: 2 scheduled quizzes Midterm [20%]: 1 midterm exam tentatively scheduled at week seven Final [45%] The homework and final exam are common to all sections. Normally the assignments will be published on the course web on the Monday of the week of distribution. Each assignment should be submitted by Thursday of the week in which it is due. Electronic submission is mandatory. Details will be given in the first tutorial/laboratory session. Students may discuss but must not copy or allow others to copy any part of their assignments/programs. Violators will lose all of their marks of the assignment and may be subject to other disciplinary actions. Late assignments will be accepted with a late penalty of 20% deduction of the total mark per working day late, provided they are submitted before the solutions are published on the web. Textbook: The Essentials of Computer Organization and Architecture by Linda Null and Julia Lobur, 2nd Edition, Jones and Bartlett Publishers, 2006. i>clicker Web Registration You are required to purchase an i>clicker remote for inclass participation. i>clicker is a response system that allows you to respond to questions I pose during class, and you will be graded on that participation. In order to receive this credit, you will need to register your i>clicker remote online within the first week of class. You must have come to class at least once and voted on at least one question in order to complete this registration properly. Once you have voted on a question in my class, go to http://www.iclicker.com/registration. Complete the fields with your first name, last name, student ID, and remote ID. The remote ID is the series of numbers/letters found on the bottom of the back of your i>clicker remote. i>clicker will be used in every class, and you are responsible for bringing your remote daily.
*Accuracy in 60% of the problems will score the 2%. Disclaimer: In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to change.