Course Descriptor

EE 360N - Computer Architecture
Unique Number 14715

Instructor: Yale N. Patt (
Office: 541a Engineering Sciences Building (ENS)
Phone: 512-471-4085
Email Address:
Office Hours: MTW, 7pm to 8pm, and by appointment
Course Title: Computer Architecture.
Course Overview: This course, in my view, represents a serious introduction at a senior undergraduate level into how computers work. I believe that Computing involves architecture at many levels. We will focus on the instruction set architecture level (sometimes called the machine architecture) and the microarchitecture level (often called the implementation architecture or computer organization). We will review to some extent the level below the microarchitecture (the logic design level), relying mainly on the knowledge you already have obtained, and we will cover to some extent the level above the instruction set architecture (program translation) in order to demonstrate our understanding of some of the concepts. The intent of the course is to provide a comprehensive understanding of how the various levels play together, and remove a good part of the mystery pertaining to how the machine works.

A separate handout contains a lecture by lecture outline of the course, along with dates for all assignments, quizzes and the final exam.

What I expect: I expect to assign a substantial number of homework problems and in addition four programming assignments. I hope to cover most of the material one should expect in an introduction to computer organization, but I expect to not read to you from any textbook. You should consider my lectures and the corresponding treatments in various textbooks as different approaches to learning the same material. The problem sets are a way for you to check to see if you are getting it.

I will not take attendance, and attendance will not be considered in the grading. At this point in your education, I believe it is for you to decide how to allocate your time. You must decide whether I am providing enough that is useful in class to justify your coming to class.

I encourage you to study in groups, and to come to my office in groups. That usually will result in all of you understanding the material better. You are encouraged to ask questions, after you have thought about the material. You are encouraged to challenge assumptions. Computer Science deals with "nature" that is man-made (person-made, actually, but that is awkward) and so we the people may have made it wrong. I tend to respond thoroughly (usually too thoroughly, I am often told) to questions, using the question as an opportunity to introduce new material. You, working with other members of your study group, can often unravel my response to the benefit of all members of the group much better than one person can, working alone.

If you are part of a study group, you will need to turn in only one copy of a solution to a problem set for the entire group. The front page should contain the names of all members of the study group who have contributed to the solution. Each student will receive the same grade for that problem set.

Although I encourage you to study together, examinations and programming assignments must be your own individual work.

Meeting Info: The course consists of three hours of lecture + a 1 1/2 hour discussion section each week. Lectures and discussions will take place MTW, from 5:30pm to 7pm. On average, two of those three sessions each week will be a lecture, the third (on average) will be a discussion. Some weeks, it will be more beneficial to have three lectures. Other weeks, it will be more beneficial to have three discussion sections. The exact schedule of lectures and discussions can be found in the Course Syllabus. All lectures will take place in BUR 216. Discussion sessions will usually take place in BUR 216 and ENS 127, except as noted on the Course Syllabus. Students are free to attend either of the two discussion sections, as they wish.
Teaching Assistants: Onur Mutlu ( and Kameswar Subramaniam (
Course Home Page:
Textbook: There is no required textbook for the course. Four textbooks have been identified as containing useful information on the material covered in the course. Each student is encouraged to obtain a copy of one of the books and share it with other members of his/her study group. In that way, each student can benefit from more than one author's interpretation of the material.

The four textbooks are:

Harvey G. Cragon, Computer Architecture and Implementation, Cambridge University Press, 2000, ISBN 0521651689, 0521657059

Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Computer Organization, 4th Edition, McGraw Hill, 1996, ISBN 007025883X

Harold S. Stone, High-Performance Computer Architecture, 3rd edition, Addison Wesley, ISBN=0201526883

Andrew Tanenbaum, Structured Computer Organization, 4th Edition, Prentice Hall, 199?, ISBN 0138546622

Prerequisites: The only formal prerequisite is EE 319K, with a grade of C or higher. It is also assumed that the student has facility in the programming language C, or is willing and able to pick up the small differences from C++ that will be needed to complete the four programming assignments.
Additional course resources: Class handouts will be supplied when necessary to supplement the concepts discussed in lecture. Other information will be downloadable from the course home page.
Homework policy: Problem sets will be assigned periodically. Usually, students will have between one and two weeks to complete them. Students will be encouraged to form study groups to work homework problems. Only one copy of a problem set per group will be turned in. There will be four programming assignments. Students are encouraged to discuss the general nature of the assignment with other members of their group. However, the detailed algorithm and actual coding must be done by the student working alone. If you have any question about what constitutes improper collaboration, please ask the instructor or TA before the fact. Collaboration on the algorithm and/or giving or accepting actual code for a program constitutes cheating, and will be dealt with harshly. If you cheat, you violate the soul of the University, which I take very seriously, and will not compromise.
Quiz and Exam policy: There will be two exams in class, the first on February 28, the second on April 18. There will be a final exam during the normal final exam period, on May 11. All exams will be closed book, with two exceptions: (1) The student may bring into the exam three sheets of paper on which the student is free to write anything he/she wishes. All three sheets must be original sheets in the student's own handwriting. (2) The student may bring into the exam any handouts that have been expressly permitted by the instructor prior to the exam.
Final Exam: See above.
Grading mechanics: Nominally, grades are based on the following percentages:
Problem sets: 10%
Programming Lab Experiments: 20% (5% each, times 4 assignments)
Midterms: 20% each (two of them)
Final exam 25%
My subjective evaluation of your work: 5%

Policy: Problem sets and programming assignments are due on the date and at the time specified.
Make-up exams will be given only in extraordinary situations. Excused absence from an exam must be obtained in advance.

The MEC Common Evaluation form will be used to evaluate the instructor in this course.

Additional details

The deadline for dropping without possible academic penalty is January 31.

Allegations of Scholastic Dishonesty will be dealt with according to the procedures outlined in Appendix C, Chapter 11, of the General Information Bulletin,

The University of Texas at Austin provides, upon request, appropriate academic adjustments for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4241 TDD, or the College of Engineering Director of Students with Disabilities, 471-4321.

For those of you who decide to continue in this course, Good Luck. I hope you find the experience an important part of your computer engineering education. I also hope you have a good time doing it.