Clarkson University

CS 241: Computer Organization

Course Syllabus -- Spring 2006

Course Website:
Lectures: MWF 1:00-1:50, Science Center 354

Professor: William Hesse
Office: Science Center 383
Phone: 268-2387

Office hours:
Monday 4:00-5:00
Tuesday 10:00-12:00
Wednesday 8:00-10:00, 4:00-6:00
Friday 9:00-11:00
Or by appointment

Course Objectives:

  1. Students will learn how a high-level language program is implemented in machine code, and how to interpret and debug assembly language programs.
  2. Students will learn how a modern computer operates, at the level of the microprocessor and memory hierarchy.
  3. Students will learn how the low level implementation of programs affects their performance, and learn techniques for profiling and optimization.
  4. Students will learn about techniques used to maximize the performance of modern microprocessors, including pipelining, superscalar execution, out-of-order execution, and branch prediction.


(CSAPP) "Computer Systems: A Programmer's Perspective", by Bryant & O'Hallaron, published by Prentice Hall.
(K&R) "The C Programming Language, 2nd edition", by Kernighan & Ritchie, published by Prentice Hall.
The grading in this class is a numerical score, based on all components of the course. Labs, assignments, and tests will be curved at the time they are graded, and there will be no curve applied to the final class averages. The components are weighted according to this table:

There is also a minimum requirement on the final. Students must have a (curved) score of 45 or greater on the final to pass the course.

The grades for all course components will be posted on Blackboard as soon as they are computed. All students are required to have a Blackboard account and to register for CS 241 on Blackboard. This is a separate process from registering of the course on Peoplesoft.

There will be two exams during the semester, and a cumulative final exam. You are responsible for all material in the lecture, as well as the reading assignments. Important topics from the reading assignments will be reviewed in lecture.

Assignments must be completed individually, unless noted otherwise. This means all of the obvious things, like no copying of code, etc. If you get a significant amount of help from someone else, note this on your submission. This won't affect your grade, it just verifies that you aren't getting excessive help from others and also trying to hide it. If you tell me about the help you are getting, then you are not cheating. I may tell you to get less help in the future, but you will not be subject to any penalties.

With computers, everything that can go wrong will go wrong at the last minute. Therefore, it is absolutely necessary that you begin your assignments early. My suggestions are as follows: Start the assignment as soon as possible, so you will immediately realize if there is something you don't know. If you have problems finishing it on that day, you will have more time to fix any problems. Late work is subject to a penalty of 20% per week.

If you have difficulty with the course material, come in to my office hours to get help, and/or study with other students in the course. I always see a big difference between students who have initial difficulties, but come in to see me, versus students who have difficulties and don't come in to office hours.

Author: William Hesse
Last Modified: Jan 12, 2006