CSE 378 - Spring 1999

Machine Organization and Assembly Language Programming

Class Meetings

Main Lectures: LOW 105 MWF 9:30 - 10:20
Section AA: LOW 114 Th 12:30 - 1:20
Section AB: LOW 114 Th 1:30 - 2:20


Susan Eggers, 315 Sieg Hall, 543-2118, eggers@cs
Office Hours: Tuesdays 1:30 - 2:20
Fridays 10:30 - 11:20

Teaching Assistant

Ashish Sabharwal, 226B Sieg Hall, ashish@cs
Office Hours: M 2:30 - 3:20
Th 10:30 - 11:20

Course Goals

From the programmer's point of view, "the hardware'' is given by its architectural specification.  We will look at the general topic of computer architecture, using the MIPS R2000 as a specific example, and its most obvious exposure to the programmer, assembly language programming.

The purpose of this course is to give you a basic understanding of computer architecture and organization. We will cover machine organization, instruction sets, addressing modes, instruction encoding, subroutine handling, pipelining, microprogramming, memory systems, caches, I/O and, if time allows, some short topics at the end. The lectures on these topics are primarily taken from the text, but I often present the material with a slant that is different from the book. The lectures will emphasize the concepts; the discussion sections will concentrate on specific examples of the concepts and explain the homework assignments.

To get the most out of the lectures, you should read the appropriate chapters before their topics are discussed in class. This is important -- you will need to have made one pass through the basics, i.e., the reading in the book, to get the most out of the lecture.


D. Patterson and J. Hennessy:
Computer Organization & Design: The Hardware/Software Interface (2nd Edition, 1998)


There will be assembly language programming assignments or problem sets from the book every week (well, almost every week). The purpose of the problem sets is to give you a chance to apply the concepts learned in lecture; in addition, the programming assignments will provide practice in assembly language programming. You can discuss the assignments with each other, but you should do the actual work by yourselves.

Please hand in your assignments on the due date in class. Late assignments will not be accepted.


Homework 40%; Midterm 25%; Final Exam 35%.

These percentages are approximate. The final exam will cover material from the entire course, but will be heavily biased toward what we discuss after the midterm.

Class Participation

Class participation is strongly encouraged. Don't be afraid to ask questions: dumb questions do not exist. If I ask you a question and you don't know the answer, just say so. That's no problem. I will certainly answer some of your questions also by, "I don't know!''

E-mail and WWW

We will have a class mailing list and we will communicate often through e-mail. Zack and I will be mailing out assignments and clarifications of the assignments, if needed.   It is suggested that everyone subscribe to the CSE 378 mailing list by sending a message reading "subscribe cse378" to majordomo@cs.

Feel free to send Ashish or me questions. We will forward questions and answers to the whole class if appropriate. (But if you have questions that need a detailed or long explanation, it would be much easier if you came to our office hours.)

We will be using the World Wide Web as well. All the lecture slides, the assignments and solution sets, as well as other information you will need, will be in our course Web site. Check the CSE378 home page.