3/18/08: Welcome back! A paper has been posted for Thursday. We will also spend an hour going over the projects; please come prepared to talk about your significant progress! :-)
2/05/08: Don't forget -- as agreed in class, we will read the STI and ASTI papers this week.
1/23/08: Current groups are:
Thread Smashing: Colin Ihrig, Yu Zhang
Software Virtual Memory: Alexandre Ferreira, Shayne Evans, Li Weijia (Vicky)
1/21/08: Be prepared to lead discussion on one of the "non-presented" papers. You may be asked to do so during the seminar.
1/21/08: If you wish to switch presentations with somebody else, you may do so. Please inform me of any changes.
1/21/08: There are no volunteers for the presentation this week. Therefore, I am assigning presentations in (semi-) alphabetical order. Please see the schedule for when you are assigned to present. This schedule is tentative; once I have the final class roster, I may have to shift the presentations.
1/17/08: Given the class size, the original course schedule is too aggressive. Instead, we will present and review one paper per week in a conference style. We will still read other papers, which we will discuss in a quick, informal round table approach. The current papers are on the schedule.
1/17/08: Jose's solution to the first assignment is here.
1/17/08: There is a second assignment. It is in the CS3230 project directory. Please try this assignment in the next week or two.
The seminar topic will be virtual execution and software dynamic translation. The course will have a few goals: 1) introduce you to research and how to carry it out (from idea to publishing a paper to presenting the paper); 2) learn about the state-of-the-art in virtualization, dynamic translation and related topics; and 3) get your hands dirty working with a software dynamic translator (the Strata system co-developed at Pitt).
There are no pre-reqs for the course (other than the willingness to very actively participate!). I.e., the compilers course is NOT a pre-req.
The meeting time is Thursdays, 5:30-8:00pm. After the first couple of weeks, I expect that we will only need to meet 5:30-6:45pm to discuss papers, the projects, etc.
This course is a "graduate seminar." It is not a lecture course. The goal of this seminar is very different from a lecture course. In this seminar, we want to explore a new topic, possibly discovering new research directions and opportunities. While the seminar will have a certain broad set of topics, it will also be flexible enough to accomodate interests of seminar participants and new ideas that we develop at the semester progresses. To be successful, this seminar will require active and regular participation by everyone. You should also be highly motivated to contribute and explore new ideas.
We will read and discuss a number of papers, averaging about 2 to 3 per week. Student participants will be responsible for presenting these papers. The course will also give students the opportunity to use a software dynamic translation framework, Strata, to implement new techniques for virtualization. (That is, a project is required in the seminar.)
1. It's a new and exciting topic!
2. You'll get your hands dirty and get to play with cool technology!
3. You love systems programming and low level software/hardware development!
4. You have lots of ideas and can't wait to try them out!
5. You want to get involved in research right away!
6. You love a challenge and doing something creative!
7. You want to learn how to present and critically read research papers!
8. You want to see and learn how the research process works!
9. You want to learn how to write and prepare a paper for publication!
10. You reversed engineered a portion of Microsoft Windows as a kid (and then
switched to Linux)!
The requirements are simple: Read papers, present papers, participate in discussion, and work on one of the research projects.
1. Paper presentations. Each student will do 2 to 4 presentations (depending on number of participants). The presentations will be done in PowerPoint and should be approximately 25 minutes in length (10-12 slides).
2. Seminar project. Everybody will do a significant project. I have a couple specific research ideas that we'll investigate. These ideas will drive the course and putting together a complete publishable research result. We already have preliminary work that suggest these ideas have merit, but the ideas need further conceptual development, implementation and evaluation. You may suggest your own project ideas, but this should be done with my approval.
3. Seminar participation. It is expected that everybody will attend all seminar meetings (unless sick or have a previously excused commitment) and contribute to the seminar. It's critical to read every paper beforehand.
4. Paper evaluations. We will use a "program committee" style to discuss papers; this means everybody will have to write and submit a paper review before we meet to discuss the paper.
More details about the specific requirements of the seminar will be given at the first meeting.
Grades will be determined based on three criteria:
1. Presentations - 30% of grade.
2. Project - 40% of grade.
3. Participation - 30% of grade (participation is based on #3 and #4 above).
To do well in the seminar, you need to do well in all three criteria. There are no exams or quizzes.
Semester schedule (subject to change)
We will use this review form in preparing our evaluations of the papers that we read. The review form is due via e-mail one day before a paper is to be discussed (i.e., 24 hrs in advance -- not 12 hrs in advance at mid-night the night before). All students must write a review and submit the form by the deadline. Come to the seminar prepared to talk about your review.