COMP 230: Computer Architecture
Kalamazoo College Computer Science Program Winter 2008

Instructor:   Nathan Sprague
nsprague{at}kzoo{dot}edu
Olds-Upton 203E, 337-7096

Course Web Site:   http://www.cs.kzoo.edu/cs230/


This course provides an introduction to computer organization, assembly-language programming, the assembly process, machine language, and number representation. We will also discuss modern trends in computer design, such as pipelining and multiprocessors.

Required Text:   Patterson and Hennessy, Computer Organization & Design: The Hardware/Software Interface, 3rd Ed., Morgan Kaufmann Publishers, 2004.

You can find other references in the class bibliography. In particular, I strongly recommend that you get a copy of Kernighan and Ritchie's The C Programming Language, 2nd edition, published by Prentice-Hall. This is a classic book on a widely-used and influential language, and a good one for any computer scientist to have on his or her bookshelf. If you do not buy this book, you will be responsible for finding other references on the C language.

Goals:   At the conclusion of this course, students should have a basic understanding of computer organization, particularly the role of the CPU, various types of memory, and peripherals. Students should also understand the fundamental design decisions and trade-offs that go into architectural design. Finally, students should be able to write programs in assembly language, should have experienced the difference in style between assembly language programming and high-level language programming, and should have a basic understanding of how high-level programs are turned into machine-executable programs.

Prerequisite:   CS 210 (Data Structures).


Topics to be covered (and tentative course schedule):
Chapter numbers refer to chapters in Patterson & Hennessy.  For a detailed time-line that will be updated throughout the term, see the course schedule.


Grades: Grades will be based on:

Attendance, Participation, Discussion Questions, Unannounced Quizzes 10%
Homework Assignments, 3 or 4 Programming Projects, and
     Oral Presentation
50%
Two Exams 40%

Attendance and Participation:

Regular attendance is expected of all students. Your grade will be partially based on in-class projects, discussions, and occasional quizzes, so your attendance will affect your grade. Active participation in the class means being on time, being prepared, listening to others, contributing ideas of your own, and asking questions as they come up.

Assignment Due Dates:

Assignments are due at the start of class on the due date. I will assign homework and projects far enough in advance that you will have some flexibility in when you schedule your work, but you are responsible for budgeting your time wisely so that you will be able to complete your assignments on time. In recognition of the fact that life is full of unexpected hurdles, you may use three "late days" which can be applied to any project or homework assignment with the exception of class presentations. The use of a late day allows you to submit an assignment before the start of the next class session for full credit. Once your late days are exhausted, no late assignments will be accepted.

Reading assignments, homework assignments, announcements, class notes, and other material will be made available on the CS 230 homepage:

http://www.cs.kzoo.edu/cs230/
Students are responsible for checking this resource frequently.

Programming Guidelines:

Two documents, the CS Program Style Guide and Documentation Standards, describe the programming style and documentation standards for C programs in this course. Following these standards is an important step towards writing well-structured and reusable programs. You may use the C function template file that has been created to help you meet the documentation standards.

C programs in this course will be graded on:

I may ask you to demo your programming projects for me in addition to looking at your actual code.

Assembly language programs should be developed according to the style used by Patterson and Hennessy in Computer Organization and Design and the style used by me in class.

Collaboration and the Honor System:

This course operates in accordance with the principles of the Kalamazoo College Honor System: responsibility for personal behavior, independent thought, respect for others, and environmental responsibility. In particular, academic integrity is a fundamental principle of scholarship. Representing someone else's work as your own, in any form, constitutes academic dishonesty. Unauthorized collaboration and receiving help from others outside the bounds permitted by the instructor are also violations of the College honor code. You are responsible for working within the permitted bounds, and acknowledging any help from others or contributions from other sources.

Penalties for a first violation of the Honor Code in this course may include receiving no credit for an assignment, a lowered course grade, or failure of the course. Depending on the severity of the incident, a report may be sent to the Dean of Students, which may result in additional consequences, including expulsion from the College. Any subsequent violation will result in the immediate failure of the course.


Any student with a disability who needs an accommodation or other assistance in this course should make an appointment to speak with me as soon as possible.


This page is maintained by Nathan Sprague (nsprague{at}kzoo{dot}edu). It was last modified on January 4, 2008.