Social and Information Network Analysis
Autumn 2014

Course Information

Meeting Times and Locations

Tuesday & Thursday 9:30AM - 10:45AM in Gates B1

Recitation Sessions

In the first two weeks of the class we will also hold 3 recitation sessions:

Tentative Course Schedule

Refer to handouts for detailed course schedule and topics that will be covered.

Important Dates

Out on
Due on
Homework #0
September 23
October 2
Homework #1
September 25
October 09
Project proposal
October 16
Homework #2
October 9
October 23
Homework #3
October 23
November 6
Project milestone report
November 13 (no late periods)
Homework #4
November 6
November 20
Final project report
Tuesday December 9 at 11:59pm Pacific time (no late periods)
Project poster presentation
Thursday December 11; 12-3pm

See FAQ for information on how to submit homeworks and other work.

Course description

World Wide Web, blogging platforms, instant messaging and Facebook can be characterized by the interplay between rich information content, the millions of individuals and organizations who create and use it, and the technology that supports it.

The course will cover recent research on the structure and analysis of such large social and information networks and on models and algorithms that abstract their basic properties. Class will explore how to practically analyze large scale network data and how to reason about it through models for network structure and evolution.

Topics include methods for link analysis and network community detection, diffusion and information propagation on the web, virus outbreak detection in networks, and connections with work in the social sciences and economics.


Students are expected to have the following background:

The recitation sessions in the first weeks of the class will give the overview of the expected background.

Course materials

There is no official text for this course. Notes and reading assignments will be posted periodically on the course web site. The following books are recommended as optional reading:

Course handouts and other reading materials can be downloaded here.


The coursework for the course will consist of:


The idea for the problem sets is to practice some skills that will be required for the project. The homeworks will contain written questions and questions that require some programming. Specifically, we will be working both on mathematical models of networks and analyzing real network data, for example, how to find stable sets in structural balance theory or how to optimally seed the network to maximize the influence. Second, we will also work with network datasets to get a flavor of types of questions one asks in network analysis. For example, using citation data create a small citation network, compute degree distributions, clustering coefficients, node centralities.

Questions: We try very hard to make questions unambiguous, but some ambiguities may remain. Ask (i.e., post a question on Piazza) if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.

Assignment submission: All students (SCPD and non-SCPD) submit their assignments via GradeScope. You can typeset or scan you assignment. Make sure that you answer each question on a separate page. That is, one question per page regardless of the answer length.

To register for GradeScope please fill out this form and allow us 24h to create you an account.

Students also need to upload their code at http://snap.stanford.edu/submit. Put all the code for a single question into a single file and upload it.

Regrade policy: We take great care to ensure that grading is fair and consistent. Since we will always use the same grading procedure, any grades you receive are unlikely to change significantly. However, if you feel that your work deserves a regrade, please submit a request on GradeScope within one week of receiving your grade.

Before requesting a regrade, please prepare a clear and concise argument for your stance by doing the following:

And then submit your regrade request via GradeScope.

We reserve the right to regrade the entirety of any homework for which any regrade is requested.

For grading questions, please talk to us during office hours.

Course Project

One of CS224W's main goals is to prepare you to apply state-of-the-art network analysis tools and algorithms to an application. If you are interested in research, CS224W will also leave you well-qualified to do network science research. The class's final project will offer you an opportunity to do exactly this.

Students can (and are strongly encouraged) to work in teams of up to 3 people. If you have a project of such large scope and ambition that it cannot be done by a team of only three persons, you can propose doing a project in a team of four.

Your first task is to pick a project topic. If you are looking for project ideas, please come to either Prof. Leskovec or the TAs' office hours, and we'd be happy to brainstorm and suggest some project ideas. Also check the resources page.

In the meantime, there can be three kinds of course projects:

Ideally, projects will be a mix of the three types of projects outlined above. As with the reaction paper, the project should contain at least some amount of mathematical analysis, and some experimentation on real or synthetic data. You can also check previous course project reports.

Many fantastic class projects come from students picking either an application/dataset that they're interested in, or picking some sub-field of network analysis that they want to explore more, and working on that as their project. If you haven't worked on a research project before but would like to, you can also use this as an opportunity to try your hand at it. (Just be sure to ask us for help if you're uncertain how to best get started.)

Alternatively, if you're already working on a research project that network analysis might be applicable to, then working out how to apply network analysis techniques to it will often make a very good project topic. Similarly, if you currently work in industry and have an application on which networks might help, that could also make a great project.

A very good CS224W project will comprise a publishable or nearly-publishable piece of work. Each year, some number of students continue working on their projects after completing CS224W, and submit their work to a conference or journal.

Projects will be evaluated based on:

Lastly, a few words of advice: Many of the best class projects come from students working on topics that they're excited about. So, pick something that you can get excited and passionate about! Be brave rather than timid, and do feel free to propose ambitious things that you're excited about. Finally, if you're not sure what would or would not make a good project, please also feel strongly encouraged to either email us or come to office hours to talk about project ideas.

There are four deliverables (Click the respective deliverable to know more):

You can work in groups of 3 people on the project.

Previous course project reports:

Project proposal

This assignment consists of two parts. The first part is a reaction paper to several published research papers, and the second part is a proposal for the project you want to pursue for this class. Two parts should be related: your reactions to published papers should inform the project you will work on.

Part 1: Reaction paper component. The course is based on material from the last few years. This means that most of it in form of research papers, which raise lot of interesting issues that have yet to be explored. The goal of the reaction paper section is that students familiarize themselves more in depth with the material covered in class, do reading beyond what was covered in class.

Students will pick at least two or three related papers where at least one has been mentioned in class or the book (see course handouts) or any other paper clearly related to course topics (if in doubt check with course staff about the papers you aim to read). Students should carefully read the papers and write a short (approximately 2-3 pages) reaction paper about the content of the chosen papers. You should be thinking beyond what you read, and not just take other people's work for granted. The reaction part of the paper should address the following questions:

Reaction papers should not just be summaries of the papers you read. The last two bullets should form the most substantial part of the document. Answering these questions can be a very good way to explore a potential project topic. The reaction paper should be concluded with a section with a description of some promising further research directions and questions, and how could they be pursued. The reaction paper has to include at least some amount of each of the following two types of content:

In prior versions of the course, the reaction paper has been a very good way to explore a potential project topic.

Part 2: Project proposal. The project proposal component should build on the reaction paper component. The purpose of the reaction paper is to survey the related work and identify what are strengths and weaknesses of the papers and how they may be addressed. The proposal should then focus on what are some promising further research directions and questions: How precisely do you plan to pursue them? What methods/data do you plan to use? The proposal should contain at least some amount of each of the following two types of content:

When writing the proposal you should try to answer the following questions:

Some other points to note:

We strongly encourage you to work in groups of 3 people. It is hard for us to balance the grading based on the group size. This means that projects will be graded about the same regardless of how many people are in the group -- working in groups is strongly encouraged!

Here are some examples of past reaction papers / project proposals:

Project Milestone

Project Report

The final project report should be a 5-10 page paper, describing the introduction, related work, approach, results and conclusion. We will not accept reports longer than 10 pages. At the end of the report, you should also highlight the contributions of individual team members to the project (in the format outlined below). The project report should contain at least some amount of mathematical analysis, and some experimentation on real or synthetic data.

Course staff will use the following guidelines when grading your final project write-ups. Keep in mind however, that if there is a good reason why your project doesn't match the rubric below, we will take that into consideration when grading your report. For example, we recognize that purely theoretical or pure data analysis projects may not fit the rubric below perfectly, and that depending on your project you may want swap the ordering of certain sections. But hopefully all projects can be roughly mapped to the criteria below:

Unlike the project proposal and milestone, we plan to assign individual scores to team members for the final project report. We observed that there is a skewed distribution of work in some of the teams and would like to take that into account when we are grading. Your score for the final report will now be a function of two aspects:

  1. The criteria outlined above for your final report
  2. Your contribution to the project relative to that of your team members.

In order to do be able to assign such individual scores, we want you to write down a brief summary of the individual contributions of each of the team members in the format outlined below at the end of each report:

John: Plotting graphs during data analysis, crawling the data, preliminary data analysis
Mary: Problem formulation, writing up the report, coming up with the algorithm
Chris: Coding up the algorithm, running tests, tabulating final results

If you fail to outline individual contributions at the end of your report, we will assign equal score to all the team members.

Project Poster Session

The goal of the poster session is to give you a chance to see what your classmates have been working on, so make sure to go around and explore the posters. TAs will walk around and talk to you. At least two TAs will stop by your poster to talk to you.

General info Logistics

Pick up poster boards (20"x30") between 9am and 11:30am on the day of the poster session in the InfoLab Lab (Gates 423, the lab room with glass walls in the middle of Gates A Wing on 4th floor). After 11:30am you will be able to pick up the poster boards from the Packard atrium.

Check out easels starting at 11:30am from the Packard atrium. As these are expensive and we need to return them to the CS department, we'll require an ID card as collateral

Set up posters in any of the black squares on the map. The Packard building managers have requested that we not set up in front of the large pieces of artwork or in front of any major hallways or fire exits. So, consult the map if you are in doubt.

Return easels AND POSTER BOARDS after the poster session from 3:15pm to 3:45pm

Honor code and submission policy

The following paragraphs apply both to any material submitted for this course (homework, project proposal, project milestone, and so on).

Honor code: We strongly encourage students to form study groups. Students may discuss and work on homework problems in groups. However, each student must write down the solutions independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student should write on the problem set the set of people with whom she/he collaborated.

Further, since we occasionally reuse problem set questions from previous years, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions or code. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year.

Late submissions: Each student will have a total of two late periods to use for homeworks and project proposals. One late period expires at the start of every class. (This means that if the assignment is due on Thursday then the first late period expires on the following Tuesday at the start of the class.) Once late periods are exhausted, any write-up turned in late will be penalized 50% per late period. However, no write-up (homework and project related documents) will be accepted more than one late period after its due date, and late periods cannot be used for the final project write-up.


The grading will be based:


General course questions should be posted Piazza (use access code "snap" to register).

If you need to reach the course staff, you can reach us at cs224w-aut1415-staff@lists.stanford.edu (consists of the TAs and the professor). Do not email TAs or the professor individually.