Computer Architecture & Assembler Programming I (CS 255)

Instructor: S. Y. Cheung
Email: cheung@mathcs.emory.edu
Office: North Decatur Bldg 140
Telephone: 404-727-3823

Course Description and Objective

The objective of this course is to impart an understanding of computer organization at the functional level that allow students to understand assembler level programming. We will present the architectural design of modern (Von-Neumann) computers and their instruction sets to support programming in high level programming languages. Topics discussed include: We will study two computers: the Motorola 68000 (a CISC CPU) and the SPARC (Scalable Processor ARChitecture - a RISC CPU). There will be an extensive programming project in the assembly language of these CPUs. This is a highly technical course.

Class Account

The directory of the class account (see top of page) contains useful information for the course. Specifically, the subdirectory demo the class account contains the programs that are used to illustrate certain concepts. I encourage you to make copies of these programs into your own cs255 directory and run them. You should also print them out to facilitate studying the material. The MathCS computer lab has a printer that is freely available to all students. Ask the lab rep for details on how to print and where to pick up your print outs.

Class Policy

Attendance is NOT required at Emory, but you are expected to attend. It is your responsibility to turn in the assignments and come to the tests on time. If you miss some classes, it is your responsibility to obtain the notes and material distributed in class. All homework assignments should be turned in according to the assigned date, regardless. (Unless you have a good reason to turn it in late. Having missed class and/or not knowing it was handed out previously are not an acceptable reason.) All programming assignments should be turned in according to the assigned date, unless you have a very good reason for turning it in late. Having missed class, not knowing it was handed out previously, and/or having too much work in other classes are not acceptable reasons. Late assignments are not accepted unless you explicitly ask for an extension prior to due date.

Extension policy:

The purpose of homeworks and projects is to reinforced what is learned in class and you should do the exercise yourself. But you may seek help from the instructor. I will explain to you what you don't understand and then let you try do the homework or project yourself. Do not try to obtain clear cut answers from your tutor or fellow students on the homework problems and projects. Trust me, if you do not use homeworks and projects to reinforce what is discussed in class, I can guarantee you a fun time at the midterm and final tests. Besides, letting others do the work for you is a direct violation of the Emory Honor code.

Students will be graded partially on the basis of their programming assignments. These programming assignments are to be treated as examinations, and are expected to be your individual work. While discussions with other students in the course may be permitted or encouraged by your instructor, you should write your program yourself. The mathlab representatives are available to explain error messages, discuss briefly technical details with which you may not be familiar, and give short suggestions as to how you might detect logic errors. The reps should not, however be asked to write part or all of your program. Your instructor (and any teaching assistants assigned to the course) will be glad to help you to the extent that he or she feels reasonable.

Submissions based on other students solutions in prior offerings of the course specifically violate these guidelines, as do submissions prepared with the help of an outside "tutor".

You should take precautions to protect the confidentiality of your work: preserve the secrecy of your password, do not make files or directories sharable, pick up your printouts promptly and dispose of printouts where they will not tempt other students. All work should be done either in the class directory of your ITD account (preferred) or in your "priv" directory (only if you do not have a class directory).

All submissions should include a comment statement near the top of the program of the form:

THIS CODE IS MY OWN WORK, IT WAS WRITTEN WITHOUT CONSULTING A TUTOR OR CODE WRITTEN BY OTHER STUDENTS - your name

Cases of apparent plagiarism or collusion will be referred to the Honor Council.