Remember to check this regularly!
- We will meet on Friday Jan. 13, at our regular time, in Ford 3-340. There will not be a lecture on Monday Jan 16.
- First class meeting on Wednesday January 4th in the assigned time and location. John Otto and Mario Sanchez will introduce two, mostly complementary, platforms for experimentation - PlanetLab and our own Dasu.
ProfessorFabián E. Bustamante
2145 Sheridan Road, Room 345
+1 847 491-2745
Office Hours: TBD
This a graduate level course on advanced concepts on distributed computing and operating systems. The course covers a wide array of research topics in systems, from historical perspectives to current topics in mobile, peer-to-peer and cloud computing.
Rather than trying to cover all relevant work, we each year focus on a few interesting topics. The topic for this year is "Internet systems experimentation and experimental platforms" - we will explore the challenges with large-scale system testing and investigate the strengths and weaknesses of existing and proposed experimental platforms.
The class consists of two major thrusts: reading and reviewing papers and doing a research project on your own. This quarter we will be discussing existing and proposed platforms for experimentation and measurement (e.g. PlanetLab, Emulab, SatelliteLab, Dimes) and their pros and cons (e.g. platform control, heterogeneity, dynamism), as well as some potentially useful building blocks for building new platforms (e.g. scalable consistency and consistency metrics, notification at scale, coordination).
For the research component of the course, you would have the chance to work with a few of these platforms and their datasets as you try to answer some key questions including: How resilient is the Internet in the face of natural disasters and political unrest? (see our blog) How are the Internet and its economy evolving? Can you "route" around censorship?
Location and Time
Class meetings: Mondays and Wednesdays 2:00-3:20PM (L170)
In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or email@example.com. SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.
- Please contact me if you would like to take the course.
We will use the course web site to post announcements related to the course. You should check this regularly for schedule changes, clarifications and corrections to assignments, and other course-related announcements.
We will use the Google Group EECS 495 W12 at Northwestern for class discussion. This particular channel is intended to foster communication among you, the students. If you don't have a subscription already, you can request one:
A set of research papers I will make available (see the schedule page for a full list).
The course is organized as a series of discussion sessions and a single term-long project.
When reading papers it is normally useful to write down a summary of about a page. Your summary should include at least:
- Paper title and its author(s).
- Brief one-line summary.
- A paragraph of the most important ideas: perhaps a combination of their motivations, observations, interesting parts of the design, or clever parts of their implementation.
- A paragraph of the largest flaws; maybe an experiment was poorly designed or the main idea had a narrow scope or applicability. Being able to assess weaknesses as well as strengths is an important skill for this course and beyond.
- A last paragraph where you state the relevance of the ideas today, potential future research suggested by the article, etc.
You may find the following brochure useful: Efficient reading of papers in Science and Technology by Michael J. Hanson, 1990, revised 2000 Dylan McNamee.
You must submit you summaries before 10AM on the day the paper
is scheduled for discussion. Please use the following subject line
with your submission: "ISE Summary
There will be one single project on which you will work throughout the quarter - this is a critical component of the course. Your goal is to evaluate existing platforms as a researcher/user, experimentally evaluate their strenghts/weakness, and perhaps propose useful extensions or all-together new platforms to address their current limitations. If you decide to use these platforms to answer an specific research question your work (and your report) should include a component on the evaluation of the platform itself.
Projects must be written up in a term paper (due during finals week) and teams will present their results at the end of the course in a systems class mini-conference. Projects ideas will be suggested by the instructor, but you are strongly encouraged to come up with your own ideas. Based on the topic of your project, you will be assigned a project leader to help you through the quarter (you will meet weekly with them).
This is the schedule of meetings and deliverables (this is
mainly to ensure steady progress):
- Form a group. January 3-6.
- Project meeting with instructor. January 9-13.
- Project initial presentation (you should read the CSP project startup or look at the Questions
that any project proposal should answer -- the Heilmeier
"Cathechism"). The presentation should be 4 slides long,
including (1) Project name and team members, (2) What is the
research contributions of the project? List of new/interesting
concepts to be investigated, (3) Why do we care if you are
successful?, and (4) Project milestones and schedule for the
rest of the quarter.
January 16 & 18
- Midterm presentation and report. The presentation should be
4 slides long, including (1) Project name and team members, (2)
Revised statement of project goals and list of new/interesting
concepts to be investigated, (3) List of issues addressed and
pending, and (4) Updated project milestones, highlighting
date, and schedule for the rest of the
February 8 & 13
- Project meeting with instructor. February 20-24.
- Final presentation. Scheduled final day.
- Final report due. During finals week.
The final report has to conform to the format used by the Workshop on Hot Topics in Networks or the Workshop on Hot Topics in Operating Systems. Reports shuold be no longer than 6 pages (you can use appendices or a webpage to document details). The following structure is suggested:
- Abstract: What did you do, why is important and what are your high-level results?
- Problem statement: What is the problem you tried to solve?
- Prior work: How others have addressed the problem before and why that was not enough?
- Research approach: What was your approach to solving the problem? What did you design, built? What was your experimental methodology?
- Results: What were your results? How did you evaluate your work? What were your figures of merit?
- Lessons learned and future work: If you knew what you know now, what would you do differently? What questions are left for future work?
- Summary and conclusions.
I use a criterion-referenced method to assign your grade; in other words, your grade will be based on how well you do relative to predetermined performance levels, instead of in comparison with the rest of the class. Thus, if a test has 100 possible points, anyone with a score of 90 or greater will get an A, those with scores of 80 or greater will get a B, those with scores of 70 or greater will get a C, and so on. Notice that this means that if everyone works hard and gets >90, everyone gets an A.
Total scores (between 0 and 100) will be determined, roughly, as follows:
- Class participation 15%
- Summaries 15% (90% required)
- Paper presentation and discussion leading 20%
- Project 50%, made up of ...
- Proposal: 10%
- Midterm report and presentation: 15%
- Final report and presentation: 25%
- Existing and proposed platforms for experimentation (e.g. PlanetLab, Emulab, SatelliteLab, Dimes)
- Strenghts and weaknesses of existing experimentation platforms (e.g. platform control, heterogeneity, dynamism).
- Building blocks for building new platforms (e.g. scalable consistency and consistency metrics, notification at scale, coordination).