222a Projects

The centerpiece of CSE222A is the term project, which culminates in a workshop-quality paper and a public poster presentation. You are encouraged to think carefully about the project topic and scope, as I expect that a number of the projects, with some amount of extra polishing and follow-up work, will be submittable to a high-quality venue. Indeed, students with successful projects from recent CSE222A offerings earned all-expense-paid trips to present their work at international conferences in places like Austin, Texas; Hong Kong; and Bern, Switzerland.

Of course, time is limited. The key to a successful project is to carefully lay out a plan of action so that some significant portion---but frequently far from all---of it can be completed in time to write up and present at the end of the term. Projects will be graded in the same manner that conference papers are evaluated: we're looking for interesting insights, clarity of presentation, and appropriate positioning of your work within the framework of existing research. From the point of view of the class, the goal of the project is to give you first hand experience conducting research in networking and exploring a topic that interests you in more detail than we well in class. It is OK to carry out work that validates (or invalidates!) results that have been published in the literature. Furthermore it is OK to publish a "negative" result, as long as you clearly and carefully describe your research process.

Each project will be presented during a poster session scheduled during the official final exam period for the course. Groups will also submit an 8-10 page research report describing their efforts. All class members are required to attend and the poster session.

Projects should be done in groups of three to four. Project groups of size five require permission of the instructor.


To assist in the timely completion of the project, we have established the following checkpoints.

10/8: Form your project groups, and fill out the Google web form with information on the group members. Then email the TAs to ask for login information and accounts that can be used for the course (optional).

10/22: Each group must submit a page-long project proposal. The proposal should contain five sections:

  1. An introduction, providing a basic overview of the goal. What is the problem you're trying to solve? Why is solving that problem important?
  2. What is the approach you are going to take? This could be (1) validating (or invalidating) results from the published literature, especially on workloads not considered in those papers, (2) making a change to an existing idea to (hopefully) improve it, or (3) coming up with an entirely new idea.
  3. Related work, which discusses the current state of the art that you intend to build upon.
  4. What is your plan of action? What research questions do you want to answer? How will you answer them? What applications/workloads/traces/etc. will you employ in this task? How will you know when you're done?
  5. A schedule, specifying concretely what you intend to have accomplished by each of the two milestones below as well as for the final report/poster. It is perfectly acceptable if the final deliverable is not a completion of the project---which, if successful, some members of the group may wish to continue after the term ends---but it does need to be something that can be clearly demonstrated/evaluated/graded.

Included in this schedule is a description of any resources you believe you will need to complete the assignment, such as access to testbeds, software, hardware resources, etc. We expect most of you will be able to complete your projects on resources already available to you, but if you have some particular needs please call them out and we'll see what we can do. Note that if the successful completion of your project depends on these (as opposed to "it would be nice if") please make sure you discuss this with the TAs and/or the instructor before submitting. You will be provided with at least on VM that you can use during the term.

11/5: Each group will submit a 1-2 page summary of their progress to their assigned TA. We will take a look, and either provide written feedback via email, or schedule an in-person meeting to discuss the status updates.

11/24: Submit a 1-2 page summary of your progress since the last checkpoint to your assigned TA. In particular, concisely describe the deliverables you have completed, and provide a brief preview of what you expect to present during the poster session.

12/3: A draft of your poster is due, in PDF or PPTX/PPT format.

12/8 (8am-11am): All groups will present a poster during a poster scheduled in CSE 1201 (the large room right off the main lobby). All group members are expected to participate in presenting the posters and answering questions about the work. In addition, students are expected to visit other posters and actively participate by asking questions of the presenters. This will count toward your class participation grade. The actual poster session will be from 9 to 10:30, with 8-9 available for setting up the poster, and 10:30-11 for taking it down.

12/8 (midnight): Final project reports are due by midnight. All groups are expected to submit an approximately 6 page project report in the format of the papers we've read in class (i.e., double column, single spaced). The report should include references and citations to related work, as well as graphs, figures, etc., documenting the performance of your software prototype to the extent possible. Submission instructions will be provided closer to the end of the term.

Project ideas

To help you get started on potential project directions, here are some areas you might think about:

One potential way to organize your thinking is as follows:

  1. Deploy application X, or workload generator Y into a VM environment
  2. Pick a mechanism from the course. Examples include MPTCP, DCTCP, various congestion control systems (eyeq, pfabric, pdq, ...), P4, a new SDN program, 802.11ac, an Android feature, a wearable body monitor (e.g., FitBit), etc.
  3. Download the code for that system from the author's website, email the authors and ask for the code, or implement your own version.
  4. See if you can reproduce their results.
    1. Try their approach on a workload they didn't consider in the paper
    2. Try to tweak or modify their algorithm/system and measure the effect.
The experimental methodology will depend in large parts on the topic, but hopefully this will get you started. You will receive feedback as part of the project proposal process.

Helpful links

Last updated: 2015-11-24 13:57:44 -0800 [validate xhtml]