Computer Science 2500
Computer Organization

Rensselaer Polytechnic Institute
Spring 2009


Instructor: Dr. James D. Teresco, AE 124, 276-6348
Electronic mail: terescoj AT (best contact method)
Class Web: [Link]
Class Hour: Tuesday-Friday 10:00-11:50, Sage 3303
Office Hours: Tuesday-Friday 1:30-3:00, by appointment
Teaching Assistants: Bang Duc Le, Murat Semerci
TA Email: bangdl and semerm, both
TA Hours: Monday 4:00-6:00, AE 217; Thursday 4:00-6:00, MRC 330
Undergraduate TAs: Robert Ferris, Andrew Zonenberg
Undergrad TA hours: Monday 12-2 (AE Lounge), Tuesday 6-9 (Library 353A), Thursday 12-2 (AE Lounge)


Everything on this syllabus is subject to change. Changes will be announced in class and updated in the online version of the syllabus.

Course Objectives

From the course catalog: Introduction to computer organization, assembler language, and operating systems. Computer systems organization: processors, memory, I/O. Digital logic: gates, Boolean algebra, digital logic circuits, memory, buses. Microprogramming. Machine level: instruction formats, addressing modes, instruction types, flow of control. Operating systems: virtual memory, virtual I/O instructions, processes, interprocess communication. Numeric representation. Assembler language: the assembly process, macros, linking, loading. Advanced architectures: RISC architectures, parallel architectures.

Prerequisites Texts

The required text for the course is Computer Organization and Design, The Hardware/Software Interface, Fourth Edition (Elsevier, ISBN 9780123744937) by Patterson and Hennessy. This is available from the RPI Bookstore (and elsewhere). If you buy elsewhere, be sure to get the correct edition. It was just published in November.

You may also wish to purchase the optional text, The C Language Reference Manual, Fifth Edition by Harbison and Steele.


Students are expected to attend class and participate in discussions. Class meetings will consist of a mixture of discussions, demonstrations, and traditional lectures. Come to class prepared and on time. Assigned readings are listed on the lecture and reading schedule. Lectures will assume you are familiar with the material in the readings. Most lectures will include a small assignment due at the start of the next class. No late submissions of these assignments will be accepted, as they will often be discussed in class on the due date. The notes I use to guide my in-class presentations are available as PDF files linked from the lecture and reading schedule.


Lab assignments will be made weekly and each will include assigned readings and a written and/or a programming component. The number of points available will vary with the complexity of the assignment. You may develop your programs anywhere (Computers in the lab, your own PC, etc.) but grading will be done using the RPI Computer Science systems unless otherwise specified. It is your responsibility to ensure that your program works on the grading platform. Programming projects will be graded on design, documentation, style, correctness, and efficiency.

Unless otherwise specified, late work may be turned in with a penalty computed as 1.08h%, where h is the number of hours late. Extensions will only be granted in serious situations and requests must be accompanied by appropriate written documentation (e.g., doctor's note). You can find a C program that prints out a table of the late penalties here. Work turned in after solutions have been made available cannot receive credit. All assignments and projects are to be submitted electronically unless otherwise specified. Please submit plain text where appropriate and PDF otherwise. Please avoid other formats such as Word documents. If in doubt about a file format, please check with me first. Keep a copy of all submissions for yourself.


There will be two exams during the semester, plus one during finals period. Exams are tentatively scheduled to take place in mid-February and late March.


Grades for individual assignments and exams are not scaled. Any scaling deemed appropriate will take place at the end of the semester by adjusting the above thresholds. The following thresholds may be adjusted downward (thereby raising grades) but will never be adjusted upward.

Breakdown: Scale:
Lecture Assignments 15% A >= 93% A- >= 90%
Labs 40% B+ >= 87% B >= 83% B- >= 80%
Exam 1 15% C+ >= 77% C >= 73% C- >= 70%
Exam 2 15% D+ >= 67% D >= 63% D- >= 60%
Final Exam 15% F < 60%

Academic Honesty Guidelines  

You are encouraged to discuss the concepts related to course assignments and exams with your classmates. This is an essential part of a healthy academic environment. However, work submitted for grading must be your own (or the combined work of group members, for group assignments). Any unauthorized copying or collaboration is considered a breach of academic integrity and will not be tolerated. Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. You are responsible for reading and understanding the Dean of Students Office Academic Dishonesty Policy. The minimum penalties for a first violation will include failure (0 grade) for the assignment or exam in question and the filing of a report with the Senior Judicial Administrator in the Dean of Students Office. A second violation will result in failure of the course.

If there is any doubt about the degree of collaboration allowed or the permitted sources for a particular assignment, please ask for clarification before collaborating or consulting the source. Any such collaborations or sources must be cited properly.