General Course Information:


M 06:10P-08:00P 


F 11:10A-01:00P 

834 MUDD

Office Hours: F 9:30A-10:30A (464 CSB)

Important: We will use the month of February to go over all the material, both lectures (Mondays) and paper reading (Fridays). The rest of the semester will be devoted to projects.

Instructor Information

Pablo Rodriguez

Instructor Bio:

Pablo Rodriguez is the Internet Scientific Director at Telefonica Barcelona, where he leads the systems and networking research team. Prior he worked at Microsoft Research, where he developed the Microsoft Avalanche P2P system and helped design and analyze very popular services, such as Windows Updates, FolderShare, or Xbox live. 

During his early research career Pablo worked as a Member of Technical Staff at Bell-Labs, NJ where he designed wireless data acceleration solutions and new content distribution systems. Prior to Bell-Labs, he worked as a software architect for various startups including Netli (now part of Akamai), Inktomi (acquired by Yahoo!) and Tahoe Networks (now part of Nokia). 

He received his Ph.D. from the Swiss Federal Institute of Technology (EPFL, Lausanne) and obtained postgraduate studies from King's College, London. During his Ph.D. he also worked at AT&T Labs (Shannon Laboratory, Florham Park, NJ). He was the keynote speaker at WWW'09; the General Chair for ACM/SIGCOMM '09; he is a member of the editorial board for IEEE / ACM Transactions on Networking (ToN), and editor for ACM Computer Communications Review SIGCOMM/CCR, a special editor for IEEE/JSAC, and a steering committee member for IEEE / HotWeb.


The expectation is that everyone has a solid background on networking basics. This is a graduate-level class.

Course Objectives

You should join this course if you want to learn about the latest Internet architectures, how modern Data Centers work, what is the infrastructure behind Facebook, Rapidshare or Twitter, or how to make the Internet greener. 

We will cover a variety of topics from content distribution and content centric networking, to peer-to-peer, to clean-slate and future Internet designs, to online social networks, networking for datacenters, technologies for development, or greening the Internet. Each topic will provide background on existing mechanisms and will include discussions of current publications and ongoing research.

Method of Instruction

The course will be a mix of lecture presentations, paper reading and discussion sessions. The lectures will include invited guest lectures as well other Columbia Professors (Vishal Misra, Dan Rubenstein, Henning Schulzrinne). The course will also include an individual project on Internet distributed systems, which requires hands-on coding experience.

Course benefits

You should join this course if you want to

- Learn the network architectures behind some of the most successful Internet services (e.g. Facebook, Twitter, Spotify).

- Learn about the latest modern Internet architectures (greener networks, networking technologies for emerging regions, Data Center networking, clean slate designs) 

- Get equipped for research in modern networks and distributed systems.

- Get exposed to practical, real world network architectures


Grading is based on paper reviews and contributions to the class discussions (45%) and the final project (55%). 

Reading materials

Most of the papers are available on the Internet. There is no required textbook for this class.


The course is structured to provide (a) an in-depth understanding of current topics in large-scale, distributed systems and networking; (b) experience with reviewing and presenting advanced technical material. The class workload has a participation component and a final project.


In each class we discuss two research papers. Read the papers before class (look here for help on being an efficient reader!)  and write a review for each paper that includes the following:

  1. State the main contribution of the paper
  2. Critique the main contribution. 
    1. Rate the significance of the paper on a scale of 5 (breakthrough), 4 (significant contribution), 3 (modest contribution), 2 (incremental contribution), 1 (no contribution or negative contribution). Explain your rating in a sentence or two.
    2. Explain how it defers from the current state of the art and why the problem is important.
    3. Rate the solution. Is it straight forward. Try to explain the problem as a puzzle and find how is it that they solve it. What order complexity does it have?
    4. Rate the evaluation methodology. You may consider some of the following questions: do the claims and conclusions follow from the experiments? Are the assumptions realistic? Are the experiments well designed? Are there different experiments that would be more convincing? Are there other alternatives ? 
    5. What is the most important limitation of the approach?
  3. What are the three strongest and/or most interesting ideas in the paper?
  4. What are the three most striking weaknesses in the paper?
  5. Name some questions that you would like to ask the authors.
  6. Describe an interesting extension to the work not mentioned in the future work section.
  7. Optional comments on the paper that you’d like to see discussed in class.

Reviews must be submitted before class to a online repository (to be announced). Papers are discussed in class. Discussions will be lead by one or more students and may include a brief (5-minute) presentation of the paper. Discussion leaders do not need to submit reviews, but they need to:

Final Project:

The final project is an opportunity for hands-on research. It involves literature survey, programming, running experiments or modeling, analyzing results and writing a 10-page report. A list of project ideas will be posted, but students are highly encouraged to propose topics of their own interest. Be innovative and shoot for the stars. Teams of two students are highly recommended. Please see me if you want to form a 3-student team.


Potential project suggestions:

Preliminary paper reading list:

We will go through these and other papers at roughly two per week, trying to find the positive and negative in them. Here's some advice on How to read a paper by Keshav from Waterloo, plus how to write a great paper and give a great talk about it by Simon Peyton-Jones, from Microsoft.

Beyond Bloom Filters: From Approximate Membership Checks to Approximate State Machines

Networking Named Content

HashCache: Cache Storage for the Next Billion

Somniloquy: Augmenting Network Interfaces to Reduce PC Energy Usage


TrInc: Small Trusted Hardware for Large Distributed Systems

Scale and Performance in the CoBlitz Large-File Distribution Service


Adaptive File Transfers for Diverse Environments


Dynamo: Amazon's Highly Available Key-Value Store


A Scalable, Commodity Data Center Network Architecture


On Compressing Social Networks


Vanish: Increasing Data Privacy with Self-Destructing Data


On Effectively Exploiting Multiple Wireless Interfaces in Mobile Hosts


Moving Beyond End-to-End Path Information to Optimize CDN Performance


Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds


1/25 Introduction to the class, goals, and structure

2/2 Lecture: Dan Rubenstein. P2P Networks

2/5 Paper discussion. Amazon Architecture

2/8 Lecture: Pablo Rodriguez. Content Delivery and Content Networking

2/12 Paper discussion. Facebook Architecture

2/15 Lecture: Hening Schulzrinne. Delay Tolerant Networks and Virtualization

2/19 Paper discussion

2/22 Lecture: Pablo Rodriguez. Network Coding and Delay Tolerant Networks (II).

2/26 Paper discussion