CS 7270
Internet Applications & Services

Spring 2011

Instructor: Constantine Dovrolis

Course Information

Course Objectives

In the last few years we have seen an amazing new wave of Internet applications. People do not use the Internet only to browse the Web, email their friends, and download files. People use the Web to talk (with both voice and video), exchange video clips, watch TV and movies, play games, have a "second life" in virtual worlds,  and so much more. Furthermore, the Web has become a huge online community that is deeply interconnected and clustered at multiple dimensions. People use the Web to find new friends, shop, learn and express their political or other opinions. We are moving towards a Semantic Web, which can offer much more than data retrieval capabilities; the new Web can expand our intelligence and transform our world in ways that we have not yet grasped. In Spring'11, CS7270 will focus on this new wave of Internet applications and on how people use them.

The course has two objectives. The first objective is to understand in depth the algorithmic and technological innovations behind these applications. For instance, how can we search efficiently an unstructured and highly dynamic peer-to-peer network to find a certain file? How can we deliver real-time voice or video over a best-effort network that does not provide Quality-of-Service guarantees? How can we search the Web, not based on just keywords, but based on concepts and associations?

The second objective is to understand in depth the nature of the meta-networks that these applications have enabled. Here, we are not interested in the networking protocols or algorithms that applications such as "MySpace" or "Facebook" use, but instead, we focus on the social networks that these applications create. What is the structure of these networks, their clustering properties, or their dynamics? How do people traverse the Web, moving from link to link or searching through blogs? What can we learn from the geographical or temporal characteristics of user queries?

It should be mentioned that this course is NOT about specific applications. Also, the course is NOT structured around certain standardized application-layer protocols, such as HTTP, RTP, or SIP. We will discuss some of these protocols in the context of the applications that use them.

Lectures and mini-presentations

    Each lecture consists of two parts. In the first part, the instructor will talk about the state-of-the-art in that week's topic. The lectures will be based on recent research papers and other references. In the second part of the class, we will have one or two small (typically 5 minutes each) student presentations about specific applications that are related to that week's topic. For example, if the lecture topic is Voice-over-IP, the instructor will first cover fundamental principles and technologies about VoIP, while a student presentation at the end of the class can focus on a particular Skype feature.


    Some (recent and solid) knowledge of  computer networking is required. This should certainly NOT be the first networking course you are taking. However, you do not need to be a  "networking student" to take this course. Students with a primary interest in machine learning or AI, HCI, or databases will also find some of the topics interesting.

CS6250 is NOT a required prerequisite for this course, as long as you have taken another networking course before.

Textbook references

The course will NOT use a textbook. Instead, we will study a number of research and survey papers (listed in the syllabus section). You are strongly encouraged to look at the recent proceedings of the following conferences, especially as you look for a project topic:
You may also find the following textbooks useful at certain parts of the course.

Syllabus, schedule, and links to references (subject to change - please check frequently!)

Term Project

    Students will work on a term project in groups of two or three students. The term project is supposed to be the most creative and fun part of the course. Also, the project will be a "hands-on" study that is related to one or more Internet applications. The exact project description will be determined by students themselves. The only requirement is that the project should have a sufficiently challenging component, and it should be relevant to the syllabus of this course. For instance, you can write a new (or modify an existing open-source) application that is related to the course topics. You can measure or experiment with existing applications, evaluating their performance or other characteristics. You can study the social network of an online community application. Or, you can propose, study and implement an algorithm that would be useful in one of the applications we cover (for example, an advanced web searching algorithm based on clustering or semantic associations). Writing a survey paper or just running some applications would certainly not be enough.

Project Milestones: