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 the Course Content section.

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 edited by SCPD, so you will be able to watch the lectures online on the Canvas platform.

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 for Piazza?

A: Visit http://piazza.com/stanford/fall2019/cs224w and register with your @stanford.edu email address.

Q: How do I learn my grades?

A: You will be able to learn about your grades by logging into Gradescope. Once you officially enroll to CS224W, you will be automatically invited to the Gradescope site of the course.

Q: How do I submit my assignment?

A: Assignments (homework, project deliverables, etc.) are due at 11:59pm (PT) on Thursdays, unless indicated otherwise.

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

All students (non-SCPD and SCPD) should submit their assignments electronically via GradeScope.

Students can typeset or scan their homeworks. It is extremely important that students put the answers to each question on a separate page. That is the 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). There will be a 1-point deduction for each mistagged page.

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: How do I scan and create a PDF from a set of handwritten notes?

Many printers and photocopiers have a create PDF feature. You can also use smartphone apps such as the Genius Scan app for iOS and Android to create a PDF. Make sure the PDF size is smaller than 10MB.

Q: Are there any special submission instructions for reports?

A: Reports (project proposal, project milestone, and final project report) should be submitted the same way as assignments: via Gradescope.

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

A: Historically, SCPD students had no trouble finding project partners and perform the required work. 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 exclusively 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 other teams have accomplished. We also get many interesting visitors from industry and research labs. If SPCD students can plan their schedule and attend the poster session, they won't regret it for sure :)

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 students 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: How do I submit code?

Include all code for a particular question into a single compressed file, and upload it via Gradescope. Questions that require you to write code will also require a mandatory code upload.

BEWARE: We will check your code using Moss, a system for detecting software plagiarism. We will strictly enforce the Stanford Honor Code.

Q: How do I submit a regrade request?

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:

  • Re-read relevant sections of papers, the notes, and the text (where applicable).
  • Read carefully the comments we provide on your work and consider their meaning.

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.

Q: Who makes the decision for a regrade request?

Every time you submit a regrade request for a problem, a notifcation is sent to the instructors and the TA who graded your problem. Submitting multiple regrade requests on the same problem set will result in multiple emails being sent. All TAs will be able to see your request, but the original grader of the problem will have the final say in determining your grade, because after reading 300 solutions to the same problem, they become the expert in which answers are right and which ones are wrong. (In particularly ambiguous cases, the original grader will usually consult with other TAs before replying to your request, but they will still make the final decision.)

Q: What actions will be taken after a regrade request?

Regrade requests will only be honored in cases where the TA made a clear error in grading your problem set. Please read the solution set before submitting a regrade request, and try to work out why the TA said your answer was wrong.

If a TA gives back points to someone who submitted a regrade request, the TA must give back points to all people who had a similar deduction, even people who did not submit a regrade request. If a TA violates this policy, you should contact the TA team.

If you are not sure whether your regrade request is justified or not, come to office hours and speak to a TA.

Q: What are some good and bad regrade requests?

Examples of good regrade requests include:

  • The TA said I left Problem 4 blank, but I have Problem 4 right here, and they just didn't see it.
  • The TA said I was missing a step, but I have the step on line 30 of page 2 of my assignment.
  • The TA said this solution was wrong, and I realize it is not the same as the one in the solution set, but here is a clear and informal explanation of why my alternate solution is correct. I have also attached a statement addressing any concerns the TA may have raised in a comment.

Examples of bad regrade requests include

  • I think this rubric is unfair.
  • I deserved to get "minor error (-1 points)" instead of "major error (-4 points)."
  • I know I said X, but what I really meant was Y. (We can only grade what's on the page!)
  • Anything that suggests you did not read the solution set before submitting your regrade request.
  • I gave several distinct answers to the problem, and one of them was correct! (Even if another was wrong).
  • If I change one line in my code, I get the correct answer, so please give me more points.
  • I gave a correct answer to a different problem from the one on the problem set.
  • Any request that asserts your solution is correct without giving new information that helps the TA interpret your solution. If your regrade request just says "My solution is correct, please take another look at it," the answer will probably be "I looked at it the first time, and I disagree with you, so you are getting no points back." Regrade requests result from communication failures (either the TA has failed to properly explain to you why your answer is wrong, or you have failed to clearly communicate your solution and why it is correct). So if there is no new information, the TA is unlikely to change their mind.

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 SNAP.PY will do just fine. We imagine about 60% of the people will use SNAP.PY. However, SNAP.PY can be 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. The TAs and one of the SNAP maintainers 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: