Spring Semester, 2006
Charlie Peck
email: charliep at cs dot earlham dot edu
office: Dennis 202, x1667
URL:
http://cs.earlham.edu/~charliep/courses/cs320
class list: cs320 at cs dot earlham dot edu
Computer organization (sometimes also known as architecture) explores the computer hardware and firmware beneath the languages and operating systems that you have learned over the years. Architecture is the many layers of software, firmware, and hardware which work together to provide the programmer with a productive development environment and convenient abstractions for the complex and detailed interfaces which make-up the computer. Computers are organized into layers of languages operating on layers of virtual machines. During this course you will learn about the power and limitations of this approach. We will also study a number of contemporary machine architectures and some theoretical work which deals with different techniques for organizing computers.
Regular class sessions will meet Monday and Thursday from 2:30pm until 3:50pm. This course will be taught in a combination of lecture and seminar format; I expect that everyone will have done the reading and any assigned problems when they come to class. The reading and problems will be a point of departure for us as we try to gain a deeper understanding of the underlying issues and techniques surrounding the architecture of computer systems. I hope that you will also bring questions and ideas to class for us to discuss.
This course is based on a variety of learning modalities: lecture, discussion, exercises, and software projects among them. My hope is that this breadth of approaches will make it easier for you to grasp the big-picture.
I will be off-campus during February at SIAM's High Performance Computing conference and again at the end of March for the ACM's Parallel Programming conference. I'm working on an interesting guest lectures for those classes.
The only prerequisite for POCO is algorithms and data structures (CS310). If this doesn't describe your situation please see me at the end of class on the first day.
The primary text for the course is Andrew S. Tanenbaum's Structured Computer Organization, 5th edition. Overall the text is quite strong and it provides a comprehensive overview of computers and how they work.
Most of the reading assignments will come from the textbook. Additionally there will be a few journal articles which I will assign. There will be a reading assignment due roughly each week during the semester.
Exercises will typically come from the textbook, additionally I will provide some from other sources during the course of the semester. I will describe the particulars of each exercise on the day it's assigned.
During the course of the semester there will also be a couple of programming and lab projects. These will typically span about two weeks from assignment to due date and will involve learning some assembly language programming techniques. There will be one library research and writing project as part of the course.
There will be midterm and final exams for this course. These will be fairly traditional in form. We'll review the content you will be expected to cover in class before each of them.
Most of the midterm and final exam questions will follow directly from the exercises and the projects. It will be difficult to do well on the exams without keeping-up with the reading, exercises and projects during the semester. If you do keep up with the course work preparing for the exams should take a minimal amount of additional time.
If you have questions or need to have something explained there are lots of ways to get help. Here are some options, in no particular order:
Email is the best way to reach me, my schedule tends towards the dynamic. If I receive a question that I think the class could benefit from I will strip off any identifying information and submit my response to the class listserv.
Often talking to one of your classmates (particularly ones that are known to show-up to class regularly and stay awake while there) is the fastest way to get something straightened-out.
I expect that you will show-up for every class prepared to engage your fellow students and myself in the enterprise of learning. Among other things this means that you will have completed any reading, exercises, projects, etc. that are due that day. One way I measure this component is by taking attendance at the start of class each day. The other measurement techniques I utilize for this component are more difficult to quantify.
Assignments will be turned-in at the start of class on the day they are due. I will accept any assignment (exercise or project) for partial credit up to one week after the due date. They will be marked down according to how late they are but they will always count for credit. One week or more after the due date for any particular assignment I will not accept it any longer for credit. I am happy to correct work that is older than one week but you won't receive any credit for it.
The breakdown for how your grade will be determined is as follows:
Please let me know as early in the semester as possible if there are any adaptations or accommodations you require, if there is any emergency medical information I should know about, or if you might need special arrangements in the case the building needs to be evacuated. The Earlham policy is:
It is important to follow this procedure.
Often you will find it useful to discuss specific problems, techniques, etc. with tutors and fellow students. The sharing of ideas is a helpful and normal part of learning, and is encouraged. In particular one of the best ways to really learn something is to teach it to other people.
However, any assignment that you turn in should be entirely your own work. It is not acceptable to ask a tutor or fellow student how to do a problem or project, and then turn in a close paraphrase or transcription of their response. Instead, you should use other problems to aid in learning specific techniques and then apply your new knowledge to the original problem.
See the Academic Integrity Policy in the Academic Handbook for the official Earlham College policy, http://www.earlham.edu/curriculumguide/academics/integrity.html
One key to a good grade in this course will be consistently doing the work. Catching-up will be difficult given the late work policy (one week maximum for any item).
This four part mantra captures the essence of doing well in most things in life, including this class:
The first three can be summed-up as actively participate, or dive-in, as the case may be. The fourth ought to be a given, IMHO.
While writing this I consulted a variety of materials, including syllabi and course materials from Jennifer Ziebarth, Chris Hardie, Josh Hursey, Peter Suber, Jim Rogers, and Ray Ontko. Thanks for your (inadvertent) help.