Online code policy
YOU CANNOT SEE OR USE ANY CODE ON GITHUB (Exception being course content) If you use any github content it will result in being referred to academic dishonesty.
Code Collaboration Policy
- You are encouraged to help each other debug without viewing each other’s code. Beyond that, we don’t want you sharing approaches, ideas, code or whiteboarding with other students.
- YOU CANNOT SEE THE CODE OF ANOTHER STUDENT Students can discuss the assignments with other students, but the discussions should be purely for learning purposes only.
- YOU SHOULD NOT RECORD ANY INFORMATION during those discussions in any form (e.g., writing, printing, audio/video/picture records, memorization, etc.).
- ALL ASSIGNMENT CODE MUST BE YOUR OWN.
- YOU MUST NOT SHARE solutions in any form (e.g., direct sharing with other students, hosting code in “publicly accessible” repositories, etc.).
- YOU CANNOT LOOK AT ANY CODE ON GITHUB. We too can use Github, and also subtly tweak the projects to make cheating more detectable.
- YOU CANNOT VIEW ANY CODE ONLINE (other than the weblinks provided on the course page).
Code Grading Policy
There are ~50-60 students in the is course per TA. As you go through this course each student will possibly write 5000 lines of code. We will adopt industry-grade state-of-the-art automated testing and feedback. To help you track progress and obtain partial points, we have split each assignment into a multitude of test cases ranging from small unit tests to complete integration tests. The tests will all be rated at different point scales based on fraction of the assignment that has to be complete for the test to pass i.e., tests that require you to complete more code in the assignment will be awarded higher points.
Even if you do not complete the assignment,just passing some of the test cases will help you obtain partial grade.
Read here as to how testing helps.
- Late Policy is 0% - No code pushed into the provided repo after the deadline time has elapsed will be graded.
All assignments and homeworks are can be submitted and pushed at any time after the release date, prior to the deadline.
- Deadlines will be 9pm PST on the deadline day.
- CODE HAS TO BE COMMITTED AND PUSHED into provided github repo for it to be considered as a submission. Please commit lab 0 to understand the steps.
- ONLY COMMITS PUSHED TO REPO PRIOR TO DEADLINE WILL BE GRADED
- ONLY YOUR LATEST COMMIT PUSHED TO THE REPO WILL BE CONSIDERED FOR EVALUATION. example: You commit 10 times and push. Your
git log
shows many commits. Only the latest commit pushed to the repo will be graded.
- NO CODE MODIFICATIONS PUSHED TO REPO AFTER IT HAS BEEN LOCKED AT THE DEADLINE WILL BE CONSIDERED
- NO POINTS FOR NON-WORKING CODE. POINTS ONLY FOR TEST CASES PASSED. On each assignment page we include a number of test cases. You need to pass each test case individually to obtain the corresponding points.
- FEEDBACK WILL BE ON TEST CASES PASSED/FAILED. The test case gives you an indication of what portion of your code is failing without requiring TA intervention
- GRADING FEEDBACK ON CODE WILL BE AUTOMATED. Unit tests provides feedback on where you went wrong, not how you got it wrong.
- Submitted code must compile without error. Otherwise, we will not be able to test the code and the student gets no credit for it.
- Continuous SCRIPT based testing The grading of code will be done through scripts or testing programs that we develop. These tests will be automatically run each time you push a new commit on github. If your code causes failure of our grading scipts then we may apply any of the following i) simply 0 out your entire assignment ii) re-evaluate manually but then deduce 50% of your final grade. iii) delay your grade release (relative to other students in the class). Our decision will be final in all such matters.
- TESTING takes time (especially around deadline day). We have two VMs set up to run on travis-ci/github. test locally before pushing to github.
- We will make every attempt to release grades for each homework the 2 weeks. However, this means that after we review the source code we might have to lower your official grade.
- NO REGRADING FOR ASSIGNMENTS (UNLESS OUR TEST CASES HAVE A BUG)
Academic Dishonesty Policy
SFU Policy
- DON’T CHEAT. We use MOSS. and another tools to detect. If you get caught cheating, it will make its way to the university grade sheet and could potentially affect your future career.
- We take this seriously
- It is NOT acceptable to copy solutions from other students.
- It is NOT acceptable to copy (or start your) solutions from the Web.
- It is NOT acceptable to leave your code anywhere where an unscrupulous student could find and steal it (e.g., public GITHUBs, walking away while leaving yourself logged on, leaving printouts lying around, etc.
We have tools and methods, developed over many years, for detecting this. You WILL be caught, and the penalties WILL be severe. This software can even detect attempts to purposefully obfuscate copying. If you have questions whether a behavior is crossing the line, ask!
- At the minimum negative points will be given for the assignment (meaning you’re better off NOT submitting anything than cheating), and a letter in your record documenting the cheating.
Both the giver and the receiver of code are equally culpable and suffer equal penalties.
- If you cheated in some way, such as copying your submission or you have violated the ground rules for each homework, your grades will be decreased from the initial value perhaps even lowered to zero.
- Please do not try and bypass the intentions of the assignment. If we find that your code goes against the spirit of the assignment or willfully bypasses the code we have asked you to implement we will zero it out.
Obtaining help from TA/Instructor
- Go to the lab. The labs are there to help you get experienced in concepts that will help you do the assignments. Attend them.
- Book TA appointment for code-specific questions.
Post links to repo not actual code
on piazza (TA may respond)
- Post questions on groups. Tag and ask conceptual questions. on groups.
Grading and Data policies
By cloning the github repo you accept the following:
- I have read, fully understand and will follow strictly course policies about academic integrity
documented in course website and SFU website [1].
In particular, I will not:
Share my work with others, both before and after finishing this course.
Post my work in public repositories, both before and after finishing this course.
Plagiarize under any circumstance.
- All repos will be read-only following the deadline
- Assignment repose will be destroyed 2 weeks after deadline.
- Grades will only be distributed through coursys.
- All participation-based quiz data will be saved and destroyed.
Link to Assignments
Typically, you will have two weeks to complete the assignment.
github ci wait-times can be long close to these deadline dates.
So test often and early. Push to github often and early.
If all else fails in many assignments we include a local script to test
and assign a tentative grade; you can use that. See every assignment for instructions.
All deadlines will be 9pm PST on the day
git pushes will fail past the deadline
-
Assignment 5 link. Released date: Nov 14, 2022 Due on: Nov 28 2022 Grade: 5% Head TA: Grader: Yonas, TAs: Minh, Yonas, FatemeS
-
Assignment 6 link. Released date: Nov 28, 2022 Due on: Dec 5, 2022 Grade: 5% Head TA: Grader: FatemeS, FatemeS, Yonas, FatemeM
The head TA is expected to be the local expert on the assignment. While other TAs may help with programming Q/A that can help with the assignment, they may not be able to answer specific questions related to the assignment. During the Q/A sessions following a lab you can attend that Head TA’s Q/A sessions if you so choose.
Coding Rules
You cannot and will not need to modify the function return and arguments
You cannot and will not need to add any additional print statements
We will provide printf statements that you should insert in your code to match the reference output.
You cannot and will not need to add any additional .c or .h files. You cannot modify the header files
You cannot use your own methods or data structures that are designed to purposefully obfuscate or bypass
the provided methods. Our internal tools will fail and you will simply be marked as 0.
- `In general, if find yourself modifying or adding things outside the indicated fill or todo blocks,
then your assignment might be potentially contravening the rules
- Note that the grade distributed within the assignment scripts is tentative only. If you contravene the rules we cannot guarantee that your code will run against our internal testing.
- Failure to obey any of the rules above, may lead to failed test cases and/or a final grade of 0.
CI Policies
WE WILL NOT PENALIZE YOU IF YOU ARE QUEUED UP FOR A TRAVIS/GITHUB BADGE
YOU DO NOT NEED TO CONTACT US TO PROVE YOU HAVE COMMITTED AND PUSHED.
WE HAVE THE TIMESTAMP ON THE GIT REPO TO TELL US THAT
WE WILL ONLY GRADE THE FINAL COMMIT
