Analysis of Networks
Autumn 2017
CS224W Frequently Asked questions

Q: What are the prerequisites for the course?

A: Students are expected to have good programming skills (Python or C++), and know some basic probability / statistics and linear algebra. You can find a more detailed description of the prerequisites on Course information.

Q: I have a time conflict with this course and cannot attend the lectures in person. Is it still possible for me to take it?

A: Yes it is. This class is recorded and televised by SCPD, and so you will be able to watch the lectures on-line at the SCPD site and any Stanford student can see them here.

Q: How do I know learn my grades?

A: You will be able to learn about your grades by logging into GradeScope.

Q: How do I submit my assignment?

A: Assignments (problem sets and all other reports) will be due at 11:59pm PST on Thursday.

All students will be given two no-questions-asked late periods, but only one late period can be used per-homework and no late periods can be used for submission related to the final project. A late-period lasts from the original deadline until the day before the next class (so if an assignment is due on Thursday the late period goes to the next Monday at 11:59pm).

All students (non-SCPD and SCPD) should submit their assignments electronically via GradeScope. Students can typeset or scan their homeworks. Simply sign up on the gradescope website and use the course code MRW7PY. Please use your Stanford email and ID number if possible.

It is extremely important that students put answers to each question on a separate page. That is answer to Q1.1 goes on page 1, answer to Q1.2 goes to page 2 and so on. If you fail to follow this protocol we will not be able to properly grade the assignment. To assist with following this protocol, we will provide a solution template (.pdf and .tex).

Also, make sure to tag each part correctly on gradescope so it is easier for us to grade. There will be a 1-point penalty for each mistagged page.

All 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.

SCPD students do not need to include the SCPD routing form nor do they need to submit their homework via SCPD. Just submit through GradeScope.

Q: Are there any special submission instructions for reports?

A: Reports (project proposal, project milestone, and final project report) should be submitted same way as assignments via GradeScope as well as http://snap.stanford.edu/submit.

Q: Are there any special project requirements for SCPD students?

A: SCPD have no trouble finding project partners and perform the work needed. We normally use Piazza for SCPD and Stanford students to find project partners. Generally, we require at least one person from each project team to attend and present at the poster session. If the team is composed of non-local SCPD students, the team can do a remote presentation instead.

Poster session is lots of fun and allows students to go around and see what others have been up to. We also get many interesting visitors from industry and research labs. If SPCD students can plan their schedule and travel and attend the poster session they won't regret it. :)

Q: How will the project poster presentation work, if I'm enrolled in a conflicting class that will also have its final scheduled during that period?

A: We strongly encourage people to form groups of three. We require at least one person from each project team to attend and present at the poster session. So it should be fine if your other teammates can show up for the poster session. But please let us know if you are going to be absent.

Q: Will the recitation sessions be recorded?

A: Yes. The recitation sessions will also be available along with the other recorded lectures.

Q: How do I register to Piazza?

A:Navigate to http://piazza.com/stanford/fall2017/cs224w and register. You should be able to use any email address you like and use access code "snap" to register.

Q: Are there any advantages to using SNAP for C++ over SNAP.PY (SNAP for Python) and vice versa?

A: Both are great libraries to work with. If you are much more comfortable with either C++ or Python, then it makes sense to use the respective library (SNAP for C++, SNAP.PY for Python).

SNAP.PY is a little easier to get started with, as it is better documented and Python is overall a friendlier language than C++. So if you just want to pass the class, have fun, and do a project using small data then NetworkX will do just fine. We imagine about 60% of the people will use SNAP.PY. However, SNAP.PY is about an order of magnitude slower than SNAP and can scale to somewhat smaller networks than SNAP. SNAP, on the contrary, can process 1 billion nodes easily (given that you have a big enough server). So if you are more ambitious, plan to do something bigger/faster, maybe use network analysis for your research/work, and are comfortable reading C++ code then SNAP will work great for you. We develop and use SNAP in our research group. There is a bit of learning curve at the beginning but for students in our research group it quickly pays off.

Q: I have a question specific to SNAP or SNAP.PY. Who can I ask?

A: You can always ask your questions on Piazza. You can also ask the TAs who will be glad to help.

Q: Is there a tutorial to get SNAP working on Mac/Linux/Windows

A: Yes, here are some useful links: