CS 7270
Internet Applications & Services

Spring 2015


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 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'15, 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 Twitter 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 student presentations

The course will cover 12 topics, listed below. Each topic corresponds roughly to one week of the semester. There will be two (in some cases, three) class sessions for each topic.

In the first session of each topic, the instructor will cover the fundamentals, providing the necessary background to understand that topic.

In the second session, we will learn and discuss about important and recent research results in that area. These research papers will be presented by the students. Each student will present one or two papers during the semester. The presentation of a research paper should take about 15 minutes, with 5 minutes for questions (asked both by the instructor and other students). The presenter needs to send the slides (ppt or pdf) to the instructor at least two days before the presentation; the instructor may ask for changes.

All presentation slides will be posted online at this webpage.


Prerequisites

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 (links to lecture slides are available on T-Square)


Term Project

Students will work on a term project in groups of two or three students (three is preferred). The term project should hopefully be the most creative and fun part of the course. 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:

Grading


Professional education students (distance learning)

The key difference is that you will do the course project individually. Consequently, your project's scope and level of difficulty should be set accordingly, in collaboration with the TA/instructor.

You will also need to present a research paper and your final project. The presentations can be done live through skype or they can be pre-recorded.

Everything else will be the same with the main course section.

If you have any additional questions, please do not hesitate to email the instructor.