Clarkson University

CS 241: Computer Organization

Course Outline -- Spring 2008

Course Website: http://www.clarkson.edu/class/cs241
Lectures: MWF 1:00-1:50, Science Center 354
Lab: Some Wednesday, 1:00-1:50, ITL (Science Center 334)

Professor: William Hesse
Office: Science Center 383
Phone: 268-2387
Email: whesse@clarkson.edu

Office hours: TBD
Tuesday 12:00-3:00
Wednesday 4:00-5:00
Thursday 9:00-12:00
Friday 11:00-12:00
Or by appointment

Course Objectives:

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

TEXTBOOKS:

(CSAPP) "Computer Systems: A Programmer's Perspective", by Bryant & O'Hallaron, published by Prentice Hall.
(CNut) "C in a Nutshell", by Prinz & Crawford, published by O'Reilly.

GRADING
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.

EXAMS:
There will be four 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:
Assignments must be completed individually or in groups of 2, unless noted otherwise. Groups of 2 must submit a single assignment, the same two people may only work together twice, and at least 3 assignments must be done alone.

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.

LATE WORK:
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 10, 2008