4005-720 Computer Architecture - Course Syllabus

Last Updated 2012/03/15 12:46:47

Update history:

2012/03/15: added programming style/documentation notes
2012/03/07: initial version

Name: Warren R. Carithers
Office: 3617 Golisano (70-3617)
Phone: (585) 475-5393
Email: wrc AT cs.rit.edu

1. Course Overview

1.1. Course Goal

The goal of Computer Architecture is to provide students with advanced knowledge of the design of modern computer architectures and to enable them to intelligently evaluate and compare the performance of different architectures.

1.2. Course Outcomes

The following are the intended outcomes for this course:

1.3. Course Prerequisites

This course has the following prerequisite structure:

These are prerequisites, not corequisites - to succeed in Computer Architecture, you should have already passed all of these courses, or their equivalents. Taking them at the same time as Computer Architecture is not sufficient! See me immediately if you are missing one or more of the prerequisites, or you may be dropped from Computer Architecture without further warning!

2. Books

The required textbook for this course is Computer Architecture: A Quantitative Approach, Fifth Edition, by John Hennessy & David Patterson; Morgan Kaufmann, 2012. Make sure you get the fifth edition, as there are significant changes from the earlier editions!

Not all of the material we will cover this quarter comes from this text; you will have to depend on handouts and class notes for the other material.

The programming assignments for this course must be done in C++. Although one is not required, having a C++ textbook is a good idea. One reasonable reference is C++: How To Program, by Deitel & Deitel; Prentice-Hall.

3. Grades

Your final grade will be based on three components: a series of programming assignments, a midterm exam, and a final exam. In addition, problem set assignments will be made to give you the opportunity to practice various techniques. The distribution between these groups is:

  10% project 1
  20% project 2
  20% project 3
  25% midterm exam
  25% final exam

3.1. Exams

Two exams will be scheduled for this course. The first is a two-hour midterm exam; the second, a two-hour exam during finals week. The second exam will not be comprehensive. As a somewhat deeper understanding of the material is expected of graduate students, the graduate and undergraduate versions of the exams may not be the same.

Currently, the best guess as to the dates of these exams are:

Last updated: 2012/05/16 11:27:37

3.2. Projects

There will be three programming projects this quarter; as with exams, undergraduate and graduate project requirements may be different.

Programming projects will be done using a component simulation class library written in C++. This means that you must be able to do some elementary C++ programming. If you do not already know how to program in C++ or another object-oriented language, please let me know as soon as possible!

3.3. Problem Sets

In addition to the graded assignments described above, a series of ungraded problem sets and their solutions will be posted to the course assignments page. Their purpose is to help you gain additional experience with the concepts and techniques covered in class. Although these will not be collected or graded, I suggest you attempt to work the problems before looking at the answers, to help ensure that you understand the concepts.

4. Academic Conduct

Academic dishonesty will be dealt with in accordance with DCS and RIT policies.

5. Notes