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 |
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.
The following are the intended outcomes for this course:
Students will be able to identify and explain the operation of major components of modern computer architectures.
Students will be able to analyze and explain the impact of decisions in the design of instruction set architectures.
Students will be able to evaluate and compare the performance of different examples of computer architectures.
Students will be able to evaluate and compare different methods of exploiting instruction-level parallelism.
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!
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.
Your final grade will be based on three components: a series of programming assignments, a midterm exam, and a final exam. In addition, homework 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 |
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
Midterm exam:
Thursday, April 12, 2012
Here is the
topic list
for this exam.
Final exam:
Tuesday, May 22, 2012, 12:30-2:30pm, GOL-3455
Here is the
topic list
for this exam.
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!
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.
Academic dishonesty will be dealt with in accordance with DCS and RIT policies.
RIT's
Honor Code
(section 1 of the
RIT Students Rights and Responsibilities handbook).
A general statement that sets standards of behavior for all members of
the RIT community.
RIT's
Academic Honesty Policy
(section 18 of the
RIT Students Rights and Responsibilities handbook).
Defines the basic forms of academic dishonesty (cheating, duplicate
submission, and plagiarism) and explains the official RIT policy
regarding academic dishonesty.
The
DCS Policy on Academic Integrity.
Explains the official Department of Computer Science policy regarding
incidents of academic dishonesty.
RIT is committed to providing reasonable accommodations to students with
disabilities.
If you would like to request accommodations such as special
seating or testing modifications due to a disability, please contact the
Disability Services Office.
It is located in the Student Alumni Union, Room
1150; the Web site is
www.rit.edu/dso.
After you receive
accommodation approval, it is imperative that you see me during office
hours so
that we can work out whatever arrangement is necessary.
Disclaimer: Normally, the number, type, and relative weights of assignments will not change from those specified in the syllabus and other course documents. However, I reserve the right to make changes to these or any other facet of the course, at my discretion, based upon the events of the quarter; if such a change must be made, you will be notified in class, via electronic mail, and on my web page for the course.
Coursework: Unless otherwise specified in the assignment, all work you submit for grading must be your own. Code or ideas (specific algorithms, optimizations, etc.) obtained from or inspired by other sources must be properly attributed.
Due dates: I select due dates for assignments in order to provide adequate time to complete the assignments, while allowing sufficient remaining time in the quarter to complete the remaining assignments. Should it become necessary, I reserve the right to change due dates; this, in turn, may require modification of due dates for other assignments during the quarter, or (in some cases) elimination of some assignments.
System downtime on or near the due date for an assignment is not usually grounds for an extension. An exception to this is extended system downtime (on the order of multiple days, not just hours); if this occurs, I may consider modifying a due date, but this is not guaranteed.
Documentation and Programming Style: I expect students to follow some reasonable form of programming style. I don't mandate a specific style; for the most part, it's more important that your code be neat, clear, and (above all) consistent. Here are the major things I'm looking for:
An example style standard for C++ from CS4 can be found online in HTML, PDF, and PostScript form.
Warning: This course requires a significant amount of programming. I strongly suggest that you very carefully consider whether or not you should take any other programming courses along with it.
Withdrawing:
During the add/drop period (the first seven calendar days of the quarter),
you may drop this course and it will disappear from your transcript.
After that time, you can only withdraw from the course; the course will
appear on your transcript with a grade of W.
Deadline to add/drop: Sunday, March 18, 2012
Deadline to withdraw: Friday, May 4, 2012
Project submission: Unless otherwise indicated in the assignment, programming project solutions are to be submitted electronically by 23:59:59 (11:59:59pm) on the specified due date. Any day of the week is a valid due date. Solutions submitted through any other method (e.g., sent via email, slipped under my office door, put in the bin on the wall outside my office, etc.) will be ignored.
Examinations: If you are unable to take an examination for a good reason (by my standards), I expect to be notified BEFORE the exam takes place. Exams will be handed back to be gone over during class; they will then be collected and kept in my office.
Final Exam: RIT has an official set of Final Examination Policies which detail procedures related to the scheduling of final exams. Most important among these is the procedure to be followed by students who wish to request a change in date or time for an exam. Briefly, such a request is only accepted if the student has an exam conflict (i.e., two or more exams scheduled at the same time) or the student has three or more exams scheduled on the same day. Requests for rescheduling an exam must be submitted by the last day of week six.
Assignment of final grades:
|
I use a traditional 90/80/70/60 percentage-based grading scale in this class.
I reserve the right to alter these division points as I see fit at the end of the quarter if I believe it to be necessary, based on my overall evaluation of individual or class performance and effort. |
|
Grading:
This is not a lower-division course. Think about what this should mean to you. You will be expected to incorporate all you have learned so far into this course; i.e., you will lose points for not following assignment instructions, for submitting code that is sloppy, undocumented or unstructured, etc.
Late submissions are generally not accepted without my prior approval.
Your project submissions may be graded by a grader. If so, and you have complaints about your grade, first talk to the grader. If you are still convinced there is a problem and you are unable to convince the grader, come and see me.
All requests for regrading must be made within one week of the original return date for the assignment.