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.


Gabriel H. Loh, © 2009
Last modified 4 Nov '07
Last generated 9 Jan '09