Computer Networks

Computer Networks

527, Fall 2017, Ivan Beschastnikh (

Mon/Wed 1:30-3:00PM, DMP 101, UBC course page

Course piazza

Office hours by appointment

Course description

Computer networks and protocols are critically important to modern life. They range from the small (set of peripherals in a laptop) to the very large (the world wide web), and are also extremely diverse. Yet, at their core, all computer networks have similar challenges, such as addressing and naming the entities in the network. The focus of this course is TBD.

This course satisfies the PhD "Computer Systems and Design" breadth requirement.

Course-level learning goals



This seminar-style course will be primarily driven through in-class discussion of the readings. Most of the readings will be research papers; there is no textbook for the course. The course will also include an open-ended course project that must be completed as part of a team, and a final take-home exam.

  • The discussion in each class will focus on 1-2 papers
  • The discussion for each paper is led by two students, an advocate and a skeptic
  • Everyone except for the paper advocate and skeptic writes a review of each of the assigned papers, due at 9PM the day before class

Advocate and skeptic are in charge of leading the discussion for a paper. Do not use slides. Instead, give a concise summary of the reading and pose questions to dig deeper into why the paper was written, what can we take away from it, how does the paper relate to the course, why it is or is not the final word on the subject, etc.

Advocate and skeptic need to review any other paper(s) that are discussed on same day, but they do not need to write a review for the paper they are leading.

Schedule (a work in progress)


Paper reviews


Paper reviews advice




Project proposal advice

A project proposal details the problem, your proposed approach/solution, and a realistic timeline for your team. The proposal must be no longer than 5 pages and must include at least the following sections: introduction/motivation, background, proposed approach/solution, evaluation methodology, timeline.

  • The timeline must include dates and milestones/deliverables. It must be sufficiently refined to include milestones that are specific to your project. Do not simply list the deadlines for the course without listing the internal project deadlines. The timeline is there to get you to think about your time and to loosely commit to a schedule.
  • This is a computer networks course, so make sure that your proposal is focused on issues/challenges/objectives relevant to this topic.
  • The bulk of a proposal must be dedicated to design: what will your system/approach look like, what properties will it have, what features will it include/omit. Who are the users/clients of your system (wireless phones, or people, or network routers)? How will clients interact with your system, etc. This section is more critical than related work, or introduction/motivation. Writing this section well is difficult; spend the time to do a good job on it.
  • It is important to omit content that is irrelevant to your proposal. Before including text, consider whether or not it plays a purpose in explaining your proposed system and its objectives. If not, then it can probably be cut.
  • Consider giving your project/system a name. This way you can easily refer to it in your proposal.
  • Your project can re-use external code/algorithms/ideas that you find online. Leverage prior work and build on it to avoid re-inventing the wheel and to get to interesting ideas quicker.
  • Make sure to define non-standard/specialized terms, include examples, and intuition -- anything to help get your ideas across. This work will pay off in the long term: (1) it will get you think more deeply about your work, and (2) you can re-used it in the project write-up and project presentation.
  • Make sure there is logical flow to your proposal. Define terms before you use them, motivate particular perspectives before launching into details, discuss prior work necessary to understand your proposal before you rely on it for your descriptions. Your proposal has to be self-sufficient, with citations to back-up your arguments. However, do not rely on related work to explain concepts that are critical to your proposal.
  • Consider including info-graphics/figures to explain your design. Sometimes it is easier to explain a complex idea with a picture. Likewise, don't hesitate to include formalism/math to explain your ideas (though, be careful with including formalism for formalism sake -- make sure it helps to explain rather than confuse the topic).
  • A well thought-out and detailed proposal will only benefit your group in the long run -- you'll have a more clear idea of what to work on!

Final report advice

The 10 pages should include title page and appendixes. I prefer that you style your paper in ACM latex format.

  • Your report should have all of the essential sections that a research paper has: title/authors/abstract/introduction/methodology-evaluation/related work/conclusion/references.
  • The report may have other, optional sections, that we've seen in research papers: motivation/design/implications/discussion/future work/etc
  • The report must properly motivate the research problem you have attempted to answer. Spend at least 1-2 pages motivating the problem (just look at any of the paper we have read this term). You should do this in the introduction, though many papers also have a separate "motivation" section or similar to motivate/introduce the problem in more detail.
  • The report must motivate/introduce a problem that you actually solve. Make sure you are not motivating a different problem than what you solved (a common mistake). It helps to connect the problem to a broader context from the very start (see last bullet below).
  • You must somehow argue that you have solved the problem. There are many ways to do this. If your problem was algorithmic/theoretical then you may have a proof. If your problem was empirical (e.g., what fraction of traffic on campus is due to BitTorrent) then you should have measurement study/results. If your problem requires a new system, then you should have built a system and demonstrated that it is the right system. Etc.
  • Any empirical evaluation results must have a proper methodology to introduce the results. What was the goal of the evaluation? How did you translate the research question into evaluation questions -- why did you measure what you measured? How did you select the subject programs/networks/people/devices/etc and why? Typically, the more information you provide to describe the experiments, the better. But, it requires careful judgment to report just the important details.
  • You must have some related work. The project for this class does not need to be a novel research project. But, it helps to position your work in the context of existing research. What is the closest work to your project? How is your work different? I don't expect you to do an exhaustive literature survey, but I would like to see at least half a page of related work discussion. Aim for maximum a page of related work.
  • I recommend that you find 1-2 papers that we read that tackle a similar problem or use similar methodology. Then, consider how these papers structured the motivation and the presentation of the solution/argument. Don't hesitate to adopt/copy their structure/form.
  • A good project report usually, at some point, takes a step back from the low-level details of the work and considers the broader context. It would be great if you can do this in your work. Show me that you can think more broadly, beyond your project and that you can identify implications of your work for other networking technologies/contexts/problems. Think of it this way: if the reader is generally interested in networks and not in the concrete problem that you solved, then what can they take away from your work? Typically this kind of discussion starts in the introduction, may appear in brief snippets throughout the paper (to connect the low-level details to a larger focus), and then picks up again in the discussion or the implications section.

Final presentation advice


Final exam




How to do well in this course

Be prepared to participate in in-class discussion. This is a seminar-style course, which means that most of the class time will be devoted to discussion. The best way to prepare for class is to read the assigned paper(s), write a thoughtful review, and then read and carefully consider the reviews submitted by your peers. Periodically re-read the readings from the first day of class and work to improve your paper reading and reviewing abilities.

Plan you reading time. The readings will likely challenge you. I recommend allocating an explicit time slot each week for reading the papers and for thinking about the papers. Note that some readings will be more difficult than others. Jump ahead and note the readings that are particularly long, theoretical, or may be especially challenging to you.

Invest time into the project. Do not underestimate the importance of a thorough (and interesting!) project proposal. Proposal write-ups that are vague or are incomplete will not be accepted. Put in consistent and weekly effort into the project. Rehearse and polish your presentation, and make sure your final report is well-written and conveys its ideas clearly.

Reach out for success. There are no explicit office hours for this course. Email and schedule a time to meet with the instructor to discuss the course, the project, etc. University students often encounter setbacks from time to time that can impact academic performance. Discuss your situation with your instructor or an academic advisor. Learn about how you can plan for success at: For help addressing mental or physical health concerns, including seeing a UBC counselor or doctor, visit:

Academic honesty and collaboration guidelines

The department has a detailed policy regarding collaboration and plagiarism. You must familiarize yourself with this policy.