| |
Course Policies
|
Home
Notes/Slides
|
Contents:
Course Info
Course Layout: This course is effectively divided into two halves.
The first half (blue weeks on the calendar) are traditional lecture-based
classes where we will go into depth about the hardware algorithms, designs
and tradeoffs in modern high-performance microprocessors. Accompanying
this will be four homeworks consisting of both some simulator programming
and pen-and-paper exercises. The programming parts of the homeworks are
both to enhance learning as well as to get you ramped up on the simulation
framework for use in your term project.
In the second half of the course (green weeks on the calendar), we will
take what we learned in the first half and go through many case studies of
real microprocessor designs. This will be primarily discussion driven and
directed by the students. Each session, there will be one or more assigned
discussion leaders, but all students will be required to have
completed the readings.
Supplementary (but required) reading: While this course does not
have a traditional textbook (so attendance in class is very important),
there is supplementary required reading. In particular, you will be
required to have completed reading "The Pentium Chronicles" (TPC)
by Robert Colwell before the start of the case studies. For the case
studies, there will be additional papers assigned (these are mostly
industry-based articles rather than academic research papers).
Enforcement of required reading: For the classes where we discuss
the case studies, there will be reading(s) assigned to be completed
before the class. For each set of readings, you will need to complete
a mini-summary (a standard template will be made available), and this
mini-summary must be handed in at the start of class just to gain
entrance to the classroom. That is, if you don't hand in a summary,
you won't even be allowed to attend. The idea is that since this
will be discussion based, you will not contribute anything useful
if you haven't done the reading.
For the TPC readings, summaries for different chapters will also be
submitted at different times during the first half of the semester.
Term Project: Each student will be required to complete a term
project. Students may work in teams (size limitations to be determined).
All projects must be approved by the instructor.
Mini-Conference: After the final project write-ups are due, each
project write-up will receive multiple reviews. One review will always
come from the instructor, and the others will come from your classmates to
implement a peer-reviewed system. The reviews will be (almost)
double-blind, in that you will not know who is reviewing your project, and
when you review a project, you won't know whose it is. The only exception
is that the instructor will know who's done what and you will know which
review comes from the instructor. This allows you to see and critique your
classmates' work and get some perspective on how the conference and journal
reviewing processes work. After receiving the feedback from the reviewers,
you will have a short interval to prepare your "camera-ready"
version.
The projects will then be presented in a conference format. We will have
a formal presentation schedule over the course of the last two class sessions,
complete with proceedings, name tags, food and drink, and maybe even a
keynote speaker if logistics allow for it.
Acknowledgment: The idea of running the project part of the course like
a conference came from Prof. Alex Orso.
Note on workload: If you look at the schedule
in the first half of the semester, this may appear intimidating as there is
something due each and every week! The TPC readings are pretty quick and
painless (many computer architecture students have already read this book
in their time because the book is both interesting and an easy read -- it's
more like a narrative and nothing like a regular "textbook"), and
the corresponding summaries are also pretty short (I'll provide a template).
The homework assignments are spaced out so that there's two weeks between
each one. The schedule is also arranged such that nothing is due immediately
after spring break, so you have the option of relaxing and catching your
breath (or catching up on other classes) during that time, or you can get a
head start on your term project. And of course, there are NO
EXAMS (Hooray!).
Collaboration, Cheating, etc.
Readings: You are expected to do all of the readings yourselves, and
all reading summaries must be completed independently.
Homework: All homework is to be completed individually with no
assistance from other people ("other people" includes other
students in the class, students not in the class, students not even
at GT, industry contacts, friends, relatives, or even complete strangers).
This no-collaboration rule applies to both the written components as well
as the coding parts of the homeworks. Coding assignments will be
cross-checked for copying. Don't even bother trying the simple tricks
like changing variable names, switching loop nestings, reversing
if(x) {A} else {B} to
if(!x) {B} else {A}, etc. I've
seen all of these before and you're not going to trick me with this type of
stuff.
Project: Depending on the class size, groups will be allowed, and you
will obviously be able (required, really) to work/collaborate with each other.
You may not, however, collaborate with other groups (this is important for
maintaining some semblance of blind review). Try not to even talk about
your project to other groups (they could steal your ideas).
Exams: You are free to copy from each other, discuss the questions,
share answers, etc.... especially since there are no exams. ;-)
Ambiguities and Questions: If you're in a position and you're not
sure whether sharing information, helping out, etc., would constitute
a violation of policies, please ask the professor!
So, What Can We Do?!?: You are still free to talk to each
other (as well as people outside of the class) about public materials.
"Public" materials include anything in the course notes/lecture
slides, anything discussed in class, anything posted on the newsgroup/wiki,
etc.
This also includes discussing/deciphering the simulator source code. So
you can ask someone "What in the
world is this piece of the code doing?", but you cannot ask them "I want to add XYZ to the
simulator, which file should I add it to?" or "What do I need to
change in the simulator to do what the homework is asking for?" The
main distinguishing point is that the original source code provided to
you by the professor is free game for discussion. Any changes to or
changes of the source code are not. Again, if you have any questions,
please ask.
|
|