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 Canvas.
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, colabs, 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/colab/proposal. A late-period lasts 4 days from the original deadline (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.
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 and final project report) should be submitted in pdf files 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.
Q: How do I submit code?
A: Typically you don't need to write code for the 3 written homework (but we'll let you know when you do and where to submit). For colabs, we will provide you with submission instructions so that you submit your work in the correct format through Gradescope.
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?
A: 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?
A: Every time you submit a regrade request for a problem, a notifcation is sent to the instructors and the CA who graded your problem. Submitting multiple regrade requests on the same problem set will result in multiple emails being sent. All CAs 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 CAs before replying to your request, but they will still make the final decision.)
Q: What actions will be taken after a regrade request?
A: Regrade requests will only be honored in cases where the CA 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 CA said your answer was wrong.
If a CA gives back points to someone who submitted a regrade request, the CA must give back points to all people who had a similar deduction, even people who did not submit a regrade request. If a CA violates this policy, you should contact the CA team.
If you are not sure whether your regrade request is justified or not, come to office hours and speak to a CA.
Q: What are some good and bad regrade requests?
A: Examples of good regrade requests include:
- The CA said I left Problem 4 blank, but I have Problem 4 right here, and they just didn't see it.
- The CA said I was missing a step, but I have the step on line 30 of page 2 of my assignment.
- The CA 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 CA 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 CA 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 CA 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 CA 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 CAs 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:
- SNAP.PY: Main page, Tutorial
- SNAP C++: Main page, Tutorial, Reference guide, Programming guide