Projects require substantial work. The average student should expect to spend about 30-40 hours per homework.
Each student will receive a private code repository on the course's GitHub Organization to use it for the development and submission of all assignments. You will be using the git source code management tool to maintain your homework code.
Here are some helpful PintOS resources:
|HW00||Optional C review||Not Graded||None|
|HW01||Threads||Wed. June 7, 2017 @ 11:59PM (PST)||Submit|
|HW02||System Calls & User Programs||Fri. June 23, 2017 @ 11:59PM (PST)||Submit|
|HW03||Virtual Memory||Fri. July 7, 2017 @ 11:59PM (PST)||Submit|
|HW04||File Systems||Fri. July 21, 2017 @ 11:59PM (PST)||Submit|
In order to properly submit your assignment, please follow the course submission instructions. )
For each assignment, a precise time will be specified (usually at 11:59.00 pm) on the due date. Submission must be made correctly via your github account. Each student has 4 grace days they can use over the course of the semester. A maximum of 2 grace days can be used on a single assignment. Once you have used your grace days, any late submission will not be accepted and graded as a 0.
To use a late day you MUST follow the submission policy outlined in our late submission instructions.
We will grade your assignments in the virtual machine we provide for the course. You must ensure it works in that environment before submission.
With PintOS you will know a good aspect of your assignment score before you even submit your code since all the tests we will use are available with PintOS. However, another chunk of your grade will be based on the design documents. We will work hard to post assignment scores and feedback within 1 week of the due date. Exams will typically be graded within at most a few days of the exam date.
Any disputes with posted grades must be raised within 1 weeks of the score posting.
Since we want to be able to make sure we can address all of your homework-related concerns as easily as possible, please follow the below policy for creating homework regrade requests:
- You will receive a grade report for your homework or project on GitHub.
- If you have questions, you should assign your grader to the issue, and then describe your questions in the comments for this issue.
- If the grader and you cannot resolve the issue, the grader will reassign the issue to one of the TAs.
- The TA will then review your homework and make any necessary adjustments, up or down.
Final settlement will be, if necessary, decided by the professors, but you must go through the TA first.
To raise an issue with your exam score, you should come to the office hours of the professor teaching your section. If you cannot make posted office hours, schedule one by e-mail. The TAs will not be allowed to grant regrades on exams.
Homework Grading Policies
For each assignment, a precise time will be specified (usually at 11:59.59pm) on the due date. Submission must be made correctly via your github account. After you believe you have submitted, you should always clone your repo into a new folder and make sure everything you think you submitted was cloned into this new folder. Then compile your code in this new folder and run it to ensure we will also be able to compile and run your code.
The official language on academic integrity is on the syllabus . Here is a little more clarification.
Practically speaking, it is important to be able to seek out helpful information and collaborate, yet it is clearly wrong to pass off work done (even just in part) by others as your own. When in doubt whether some behavior you are considering is appropriate, feel free to consult with us (course staff) before engaging in it. As a general guideline, imagine that your professor is looking over your shoulder, but can't read your mind. Would it look to him like you're legitimately seeking to understand things, or trying to get a better grade than your own work warrants? That should guide your behavior.
A few things are clearly fine, while a few are clearly not fine. We are listing some of the most relevant ones here:
- Asking other students for hints or discussing high-level ideas. This is clearly OK.
- Having other students look at your code and help you discover mistakes. This is also OK, though the other student may have to be careful about not copying - from you (which would have negative consequences for both of you).
- Asking course staff (instructor, TAs, sherpas) for help, ideas, having them look through code, etc. Clearly no problem; if you are asking for too much help, we'll simply not provide that much.
- Copying code from other students, even if you subsequently edit, improve or change it. Clearly not OK, even if you intend to understand the code before submitting it as your own. This is most definitely plagiarism. We will run software on all submissions in the class to detect instances of copying.
- Sharing your code with your classmates. Even if you have the best of intentions, such as helping a friend understand the material, this is very dicey. It allows someone to appear to do better than they do. We have had several cases of trusting friends getting into trouble because their "friends" submitted code as their own.
- Looking at other students' code (before having finished your own). This is a gray zone. If you just take away some basic conceptual ideas, then it is fine. If your code ends up resembling the other student's very closely, then it is cheating. To avoid accidentally cheating, we recommend that whenever you checked out a friend's code extensively, you spend significant time (about an hour) doing something else before returning to your own code. That way, you will just work based on your understanding of the code, and not accidentally copy anything.
- Looking up concepts, syntax, and basic instructions on how to deal with the topics online. This is clearly OK, as you are learning.
- Looking online for solutions to specific homework questions, such as copying code from Wikipedia and other sites. Clearly not ok, even if you subsequently edit them. You are trying to use the work of others instead of your own. Clearly cheating.
- Posting in online forums asking people to solve homework questions (or parts thereof) for you. Clearly cheating, for the same reason as the previous one.
- Unfortunately, we are aware that (1) there are solutions to many homework questions available on the WWW, and (2) even USC students tend to cheat quite frequently on homeworks. Please help us restore faith in the integrity of Trojans by not being those students.