[RiceCS]

COMP 320, Introduction to Computer Organization: Fall 2002

What low-level knowledge should a high-level programmer have?

[Rice]

Computer systems can be described at many levels involving both hardware and software. These levels constitute a hierarchy of virtual machines. Computer organization is the study of this hierarchy: how to partition the hierarchy, how to specify the interface between layers, and how to implement each layer. This course will pay special attention to the aspects of computer organization that are visible to a programmer. These include computer architecture, the interface between hardware and software, and the memory hierarchy.

The major course goals:
Computer organization: Of course, learning the subject matter is the primary goal.
Low-level programming: Most other Rice CS courses emphasize high-level programming. To be a well-rounded, experienced programmer, you need to also understand the issues that would otherwise be hidden.
Programming skills: The Rice CS core courses have projects of increasing size and complexity. Dealing with this complexity is both a very pragmatic skill and an interesting theoretical area (e.g., programming language constructs for abstraction).

These web pages are for the CS version of COMP 320/ELEC 320. See also the EE version. The two versions cover essentially the same material, but with different emphasis and significantly different assignments.

Previous years: 2001/F, 2000/F, 1999/F, 1999/S, 1998/S assignments and 1998/S exams, 1997/S, 1996/S

This course material may not be distributed commercially. It may be used freely for educational purposes, with permission of the instructor.