CS42: Principles of Computer Organization

Earlham College
Department of Computer Science
Ray Ontko, Instructor

Spring Semester 1999-2000
Dennis Hall, Room 231
9:00-9:50 MWF

Syllabus

Why this course?

Principles of Computer Organization answers the question "How do computers work?". It examines the underlying components and the basic organizing principles in the construction of computer systems. It includes an examination of transistors and simple logic circuits, micro-processor components, microcode, machine language, assembly language, operating systems, and a variety of machine architectures. By studying the fundamental organizing principles of computer systems, we are better able to understand, design, and implement complex systems.

By way of comparison, a course on "computer architecture" might answer the question "How do I design a computer?" It would devote considerable attention to identifying which functionality should be included in a system, to evaluating a number of options for acheiving the design goals, and to explaining techniques for implementing them. Principles of Computer Organization is about understanding the inner workings of computer systems from a conceptual standpoint, rather than from an engineering standpoint.

Upon successful completion of this course, the computer will no longer seem a "black box" to you. The magical incantations that we call programs will no longer simply "work"; they will have a "meaning" that is grounded in the layers of physical and virtual machinery upon which they run. More importantly, you will have encountered a number of diverse paradigms for solving problems using computer systems. This course should give you a robust framework upon which to hang new knowledge within the discipline.

This course is also about learning the skills needed to acquire this kind of knowledge. It is about careful reading of a scientific text. It is about using exercise problems to probe and develop your understanding of the material. It is about bringing material up to date and finding the leading edge of a field within the discipline. And, it is about interacting closely with others in your discipline to learn, investigate, and understand more thoroughly than might be possible through individual, lone scholarship.

In short, this course is not just about learning the subject matter, it is also about developing habits and methods appropriate to the discipline and to scholarly inquiry in general.

Pre-requisite Courses

There are two pre-requisite courses listed for Principles of Computer Organization. CS38: Advanced Programming assures a level of mastery of programming and the development of a mental structure for the inner workings of a computer. CS41: Algorithms and Data Structures develops a more formal understanding of specific algorithms and data structures which are fundamental to the discipline.

I consider CS38 (or equivalent) to be an absolute requirement for taking this course. Students who have not taken CS41 (or equivalent) will find the material accessible, but may find the programming assignments more challenging and the sections on virtual memory and caching a little ungrounded; I encourage you to consider taking the course with this caveat. Note that MATH25: Discrete Mathematics develops an understanding of symbolic logic and number representation, and is a co-requisite for CS41. I consider MATH25 (or equivalent) to be an absolute pre-requisite for taking this course.

Overview

This course will use a text and its exercise problems to help you build a foundation for understanding the principles of computer organization. There will be practice quizzes to help you gauge your understanding and prepare for the final exam. Your full participation and engagement in the course is a critical part of learning the habits and methods appropriate to the discipline.

Your grade for the course for the course will be based on your exercises, the final examination and your participation.

The course schedule, how to reach me, and a possible motto are also covered below.

This syllabus and other handouts will be available, where practical, on the course homepage.

There is a listserv available to facilitate e-mail correspondence between members of the class.

Text

The required text for the course is Andrew S. Tanenbaum, Structured Computer Organization, Fourth Edition (Prentice-Hall, 1999). It includes wonderful explanation of the material and excellent exercise problems to probe and develop your understanding. It is a "classic" in the field and is used in many similar courses at other institutions.

Also required is Tracey Kidder, Soul of a New Machine (Avon Books, 1995). This is a fictional account of a real-life project in which a new 32-bit minicomputer was designed from scratch in a year. It offers some insight into our industry and a context for what we're studying in the course. We'll read this together as we go through the course. My sincre hope is that the text will inspire thoughtful reflection and scintillating class discussion. Bring questions to class about what you read.

Homepage

I have created a homepage for the course: http://www.cs.earlham.edu/courses/cs42/. I will place handouts and other information related to the course there. If you come across any links that should be added to the page, please let me know.

Listserv

There is a list-serv available to facilitate e-mail correspondence among members of the class. It is cs42@cs.earlham.edu. Feel free to use this list-serv to carry on discussions related to the material, the course, or other topics of interest to class members. I will also distribute class announcements by e-mail when possible.

Commands to join the list or modify your subscription to it should be sent to majordomo@cs.earlham.edu. You can obtain a list of commands by sending a message with the single line "help" to majordomo@cs.earlham.edu.

Exercises

There are approximately 250 exercises (problems) in the text. As in many texts of this type, they are an excellent way to probe the depth of your understanding of the material and apply your new knowledge to novel problems. Read the text carefully and you should be able to do most of the exercises; the others may require you to think creatively to apply what you've learned.

I will assign approximately 5 exercise problems which will be due at each class session. You should show up prepared to present your solution to the class at that time. The exercise problems are an excellent way to prepare for the quizzes and the final exam. The exercises are worth 40% of your grade.

I have placed a copy of the publisher's problem solutions on reserve in Wildman Science Library. Time permitting, I will also place on the course homepage my own solution sets for the exercises. Feel free to use these to check your own work and understanding. Please do not use them to circumvent your learning procesess. Looking at the solution before you've given the problem your best effort not only deprives you of the thrill of solving the problem, but it also deprives you of proper preparation for the exam.

Quizzes

There will be a number of quizzes throughout the semester, one at the end of each chapter in the text. The quizzes are not required and do not figure in your grade for the course. These are intended as practice for the final exam and can be used to get feedback on how well you're mastering the course material. The quizzes are based on the exercise problems and are similar to those you will encounter on the final exam.

The quizzes will be take-home; I will make them available to you, and you are on your honor to do them independently, without the text or other reference materials, and within one hour. I will mark any that are turned in, and solutions will be available as handouts and on the course homepage after the due date.

I strongly encourage you to take advantage of the quizzes as a means for gauging your progress and for letting me know where you are in the course. As always, show your work. Again, the quizzes are optional and do not take part in your course grade.

Final Exam

There will be a final exam at the designated time for this course (to be announced). You will have up to two hours to take the exam.

Except under extreme circumstances, it will be offered only at the time scheduled by the Registrar of the College. It will cover all concepts and methods discussed or presented in the course. If you do all the exercises, do the take-home quizzes, and fully engage yourself in the class, you should do well on the exam.

The exam is worth 40% of your grade.

Participation

This course is not only about learning the material in the text . If it were, there would be very little reason for us to meet as a class. A good student could learn the material in about one fifth the time by studying the text carefully, working through all the problems in the text, and following up on many of the citations given throughout the text and in the bibliography. Indeed, this is the point of the text.

We meet as a class for a number of reasons:

Your full participation in the course, then, is essential. Engagement in the course includes, but is not limited to:

The quality and extent of your participation will count toward 20% of your grade.

Grading

The primary goals of this course are to learn the material and the methods. I have attempted to create a mechanism for grading that supports a wide variety of learning styles, but you will not do well in this course (indeed you may not pass) without learning the material.

ComponentWeight
Exercises 40%
Final Exam 40%
Participation 20%
Course Evaluation 0%

I will use a weighted average numerical grade when computing your grade for the course. For the purpose of assigning letter grades, the following conversion table will be used:

Letter Grades
A+greater than 97%less than or equal to 100%
greater than 93%less than or equal to 97%
A-greater than 90%less than or equal to 93%
B+greater than 87%less than or equal to 90%
greater than 83%less than or equal to 87%
B-greater than 80%less than or equal to 83%
C+greater than 77%less than or equal to 80%
greater than 73%less than or equal to 77%
C-greater than 70%less than or equal to 73%
D+greater than 67%less than or equal to 70%
greater than 63%less than or equal to 67%
D-greater than 60%less than or equal to 63%
NPgreater than  0%less than or equal to 60%

For example, if turned in 92% of the exercises, got 84% on the final exam, and had a participation grade of 100%, you would get a "B+" (92 * 40% + 84 * 40% + 93 * 20% = 89.0%).

Show Your Work

When doing the exercise problems and those on quizzes or the final exam, show your work. I will not give credit for the correct answer unless all the appropriate steps leading from known or given facts to the correct answer are shown. By definition, the answer is demonstrably correct only if you have shown it to be correct and true.

Due Means Due

Assignments will not be accepted for credit after they are due. Assignments are due during class when called for, or at the beginning of class if you are absent. Do not miss class to finish an assignment.

Course Schedule

The following schedule lists due dates for assignments and reading. I reserve the right to adjust the schedule to meet the needs of the class.

On days when problem sets are due, I will devote available time to answering specific questions about the problems, or other questions from the reading. I will address questions of interest to the largest number of class members present before addressing questions of individual interest. I will lecture from time to time where I have additional commentary which may be valuable.

In general, the class sessions are available for you to get answers to questions you generate while reading, working on the problems. Always be prepared to discuss the material from the text and your own work in depth. I will facilitate or lead discussion which I think will be most valuable for the class as a whole. Be sure to bring your brain and your most inquisitive self. Make the most out of coming to class; it's your time.

Week 1
Wed1/12First day of class
Fri1/14 Read Syllabus
Read Tanenbaum: Section 1.1 (11 pp.)
Read Kidder: Prologue, pp. 3-7 (5 pp.)
Week 2
Mon1/17 Read Tanenbaum: Section 1.2 (11 pp.)
Read Kidder: Chapter 1, pp. 8-27 (20 pp.)
Wed1/19 Due Tanenbaum: Exercise 1.5 and 1.6
Read Tanenbaum: Section 1.3 (5 pp.)
Read Tanenbaum: Section 1.4 (7 pp.)
Fri1/21 Read Tanenbaum: Appendix A (10 pp.)
Due Tanenbaum: Appendix A Exercises: pick 5 of (1,2,4,5,7,8,9,10,11,12) or pick 1 of (15,16)
Week 3
Mon1/24 Read Tanenbaum: Appendix B (8 pp.)
Due Tanenbaum: Appendix B Exercises: pick 4 of (1-6) or pick 1 of (9,10)
Read Kidder: Chapter 2, pp. 28-48 (21 pp.)
Wed1/26 Read Tanenbaum: Section 2.1 (17 pp.)
Fri1/28 Due Tanenbaum: Chapter 2 Exercises: (Pick 2 of (9-12) AND Pick 2 of (14-17)) OR pick 1 of (35,36)
Read Tanenbaum: Section 2.2 (12 pp.)
Week 4
Mon1/31 Due Tanenbaum: Chapter 2 Exercises: Pick 3 of (18,19,22,24,25,26)
Read Tanenbaum: Section 2.3 (21 pp.)
Read Kidder: Chapter 3, pp. 49-66 (18 pp.)
Wed2/2 Read Tanenbaum: Section 2.4 (24 pp.)
Fri2/4 tba
Week 5
Mon2/7 Read Tanenbaum: Section 3.1 (11 pp.)
Read Kidder: Chapter 4, pp. 67-85 (19 pp.)
Wed2/9 Read Tanenbaum: Section 3.2 (13 pp.)
Fri2/11 Read Tanenbaum: Section 3.3 (13 pp.)
Week 6
Mon2/14 Read Tanenbaum: Section 3.4 (16 pp.)
Read Kidder: Chapter 5, pp. 86-110 (25 pp.)
Wed2/16 Read Tanenbaum: Section 3.5 (11 pp.)
Fri2/18 Read Tanenbaum: Section 3.6 (12 pp.)
Week 7
Mon2/21 Read Tanenbaum: Section 3.7 (5 pp.)
Read Kidder: Chapter 6, pp. 111-128 (18 pp.)
Wed2/23 tba
Fri2/25 Mid-semester Break; no class
Week 8
Mon2/28 Read Kidder: Chapter 7, pp. 129-153 (25 pp.)
Wed3/1 Read Tanenbaum: Section 4.1 (15 pp.)
Fri3/3 Read Tanenbaum: Section 4.2 (9 pp.)
Week 9
Mon3/6 Read Kidder: Chapter 8, pp. 154-170 (17 pp.)
Read Kidder: Chapter 9, pp. 171-182 (12 pp.)
Wed3/8 Read Tanenbaum: Section 4.3 (16 pp.)
Fri3/10 Read Tanenbaum: Section 4.4 (21 pp.)
Week 10
Mon3/13 Read Tanenbaum: Section 5.1 (15 pp.)
Read Kidder: Chapter 10, pp. 183-210 (28 pp.)
Wed3/15 Due Tanenbaum: Chapter 5 Exercises: 1-4
Read Tanenbaum: Section 5.2 (4 pp.)
Read Tanenbaum: Section 5.3 (10 pp.)
Fri3/17 Due Tanenbaum: Chapter 5 Exercises: 5,6,9,10,11,13,14
Read Tanenbaum: Section 5.4 (16 pp.)
Week 11
Mon3/20 Spring Break; no class
Wed3/22 Spring Break; no class
Fri3/24 Spring Break; no class
Week 12
Mon3/27 Read Kidder: Chapter 11, pp. 211-220 (10 pp.)
Read Kidder: Chapter 12, pp. 221-232 (12 pp.)
Wed3/29 Due Tanenabaum: Chapter 5 Exercises: 23, 25, 28
Read Tanenbaum: Section 5.5 (22 pp.)
Fri3/31 Due Tanenbaum: Chapter 5 Exercise: 32
Read Tanenbaum: Section 5.6 (13 pp.)
Week 13
Mon4/3 Read Kidder: Chapter 13, pp. 233-248 (14 pp.)
Wed4/5 Read Tanenbaum: Section 5.7 (5 pp.)
Read Tanenbaum: Section 5.8 (9 pp.)
Fri4/7 tba
Note: Last day to drop classes
Week 14
Mon4/10 Read Tanenbaum: Section 6.1 (25 pp.)
Read Kidder: Chapter 14, pp. 249-267 (19 pp.)
Wed4/12 Due Tanenbaum: Chapter 6 Exercises: 2,3,4,8
Read Tanenbaum: Section 6.2 (7 pp.)
Fri4/14 Due Tanenbaum: Chapter 6 Exercises: Pick 4 (18,19,23,25,26)
Read Tanenbaum: Section 6.3 (10 pp.)
Week 15
Mon4/17 Read Kidder: Chapter 15, pp. 268-276 (9 pp.)
Read Kidder: Chapter 16, pp. 277-287 (11 pp.)
Assembly Language Lab (in class)
Wed4/19 Read Tanenbaum: Section 7.1 (10 pp.)
Read Tanenbaum: Section 7.2 (4 pp.)
Read Tanenbaum: Section 7.3 (8 pp.)
Fri4/21 Read Tanenbaum: Section 7.4 (13 pp.)
Read Tanenbaum: Section 7.5 (1 pp.)
Week 16
Mon4/24 Read Kidder: Epilogue, pp. 288-291 (4 pp.)
Wed4/26 tba
Last day of class
Thu4/27No Class: Reading Day
Fri4/28No Class: Exam Day
Week 17
Mon5/1No Class: Reading Day
Tue5/2No Class: Exam Day
Wed5/310:30 A.M. CS42 Final Exam

How to Reach Me

I am sharing an office, Dennis 202F, with Ed Delaney and Hal Hanes in the Math/Computer Science area in Dennis Hall, 2nd Floor.

I will be on campus and generally available to the course from 8:-10: MWF throughout the semester. I will likely be around more often, mostly in the mornings, so feel free to stop by my office. I can be available at other times by appointment.

I check e-mail several times each day, and e-mail is often the best way to get a specific answer to a specific question. My e-mail address is rayo@ontko.com. Note that rayo@cs.earlham.edu and ontkora@earlham.edu may also work, but these are forwarded hopefully to the first address listed above.

My campus mailing address is Drawer 98. I share this with the rest of the department, so this is not necessarily a good place to turn in assignments. If you want to turn in an assignment, please place it under the door to my office with the following clearly shown: your name, my name, and the date and time you left it.

I do not have a campus telephone extension. If you wish to leave voice mail for me, dial my company voice mail at 966-6221, voicemail box 9001.

My phone number at Ray Ontko & Company is 935-4283. Please feel free to call me there. When I'm not on campus, it's where you're most likely to find me, often past 5:00 pm. If I'm not there, leave a message including the phone number I should call and when I might reach you there.

My home phone number is 935-1598. Please don't call before 9:00 am or after 9:00 pm unless it's an emergency. If it's an emergency, please do not hesitate to call.

Motto

Consider adopting the following motto for your involvement in the course:

"Work hard. Learn lots. Stay Excited. Have fun."

Copyright © 1999, 1997, Ray Ontko (rayo@ontko.com).