CS7780 - Topics in Networks: Social Networks
General Course Information
|Room and Time:||Tuesdays and Fridays, 1:35p - 3:15p|
|Hayden Hall 12 (subject to change, likely to relocate to WVH)|
|250 West Village H|
|Office Hours:||Tuesdays, 3:15pm - 5:00pm|
|E-mail is the easiest and fastest way to contact me.|
|Please put the string "[CS7780] " in the subject line of your message|
|Class Forum:||On Blackboard|
Recently, online social networking sites have exploded in popularity. Numerous sites are dedicated to finding and maintaining contacts and to locating and sharing different types of content. Online social networks represent a new kind of information network that differs significantly from existing networks like the Web. For example, in the Web, hyperlinks between content form a graph that is used to organize, navigate, and rank information. The properties of the Web graph have been studied extensively, and have lead to useful algorithms such as PageRank. In contrast, few links exist between content in online social networks and instead, the links exist between content and users, and between users themselves.
The resulting graph is used to connect and to communicate. Unlike previous networks, graphs in online social networks intermingle people and content, allow systems designers to relate the reputation of content to the reputation of users, and vice versa. It opens the door for new types of systems, new ways of solving longstanding problems, and new security attacks and vulnerabilities.
In this course, we will examine the rise in popularity of online social networks, study their properties, and explore how social networks can be used to solve problems in computing systems. The course will consist of two components: a paper-reading component where students will read and present papers in a round-robin fashion, and a project component where students will work in groups on real-world social network data.
The official prerequisites for this course are CS 3600 and CS 4700 (or equivalents). I also expect you to understand the basics of computer architecture and operating systems, and to have experience implementing non-trivial systems-type projects. Specifically, you should know what a processor is, how memory is organized, and what the user/kernel boundary is. You should also be able to read UNIX manual pages, and be able to familiarize yourself with UNIX utilities.
This course will be project-centric, and all students will complete in projects in groups of two or three. Thus, to succeed in this course, you must be able to work in a group. I will allow you to form your own groups, and the course staff will serve as a matching service if necessary. As you are free to choose your partner(s), I will not be sympathetic to complaints at the end of the semester about how your group-mates did not do any work.
Finally, to succeed in this course, you should have some experience with programming in C and UNIX development tools (e.g. make, gcc, gdb). It is also highly recommended that you become familiar with using a debugger, as this will greatly aid you in completing the projects. At a high level, you should be motivated, eager to learn, willing to work hard, and make up, on your own, any prerequisite deficiencies you may have.
As this course is a seminar course, the structure will consist of two components:
- Reading and Discussing Papers Each week, we will read a small number of papers and will discuss them in class. The instructor will create the list of papers to read, but this list is subject to change as the course progresses. Each student will be in charge of leading the discussion on a selection of these papers.
- Research Project During the course, you will conduct a research project that is related to the topic of the course. Working in a group, you will propose, investigate, write up, and present this project. It is my goal that some of these projects would be publication-worthy by the end of the semester. More information on the project is available below.
Leading the discussion involves two tasks. First, you will make an approximately 30 minute presentation that describes the motivation, goals, and results of the paper. Second, after this presentation and for the remainder of the 90 minute time slot, you will lead the discussion on the paper. It is you just to ensure a lively atmosphere for discussion, while being careful to stay on the topic of the paper. I will let students sign up to lead the discussion for the papers they choose, but every student will be required to lead the same number of discussions over the course of the semester.
If you are not an audience member, you are expected to have read the paper and to participate in the discussion. This is a seminar course, meaning that the point of the course is to have a discussion. Not participating in this part of the course is not an option.
The schedule of papers is now available on the course wiki, located at https://wiki.ccs.neu.edu/display/CS7780SP10 - please email the instructor with a login and password for write access.
The goal of the project is to conduct a miniature version of a "real" research project. You will first pick a topic, and argue in a written research proposal that this is a topic worth exploring, and that you are capable and prepared to do so. You will design and implement a solution to the problem you have chosen, and quantitatively evaluate your solution. You will then write up the results of your project in a draft final report, which, after review, you will turn into a final report. Finally, you will give a 25-minute presentation of the results of your project in class.
I emphasize that this is a "research project", and not a "programming project". Although the implementation of your solution is an essential component, it is only one aspect of the project, next to other equally important components, such as the evaluation and the presentation of your results.
You are free to choose any project topic related to this course, however, I will encourage you to choose a topic that is challenging yet can be accomplished in one semester. In particular, we have collected a large amount of data on online social networks (for example, a large collection of tweets from Twitter). This suggests an interesting avenue to explore, as the data has not been looked at by researchers before.
Finally, if you are doing large-scale data analysis, I will try to get computing resources that are appropriate for the amount of data analysis you aim to do.
We will follow a rough schedule of
|January 15, 2010||Project Groups Formed|
|January 29, 2010||Project Proposals Due|
|March 16, 2010||Intermediate Report Due|
|April 16 and 20, 2010||Project Presentations|
|April 25, 2010||Final Report Due|
Good advice for choosing a project and writing a project proposal and report is provided on Dr. Alan Cox's web page.
Grades will assigned based on the following weighting:
Please keep up with and participate in the class forum, located on Blackboard.
I will use the forum for broadcast announcements and to answer questions
that may be interesting to more than one of you. Further, the forum
is the best medium for asking questions about homeworks, for debugging
your programming environment, and for posting the latest Internet rumor.
Thus, unless it is private, post to the forum before writing e-mail.
Attendance, Group Interactions, and Class Participation
This is a graduate course; I will not mandate you to come to class. The
project are a major part of this course, and please be aware that
you will be working in groups of two. Lastly, note that 10% of your
grade is based upon class participation. This is to
encourage you to voice your ideas in class and to post them to the
forum. Minimally, I must know your name by the end of the
term in order for you to get any points for class participation.