Assignments
Get The Assignments
See pinned post for your section for assignment due dates and links:
- D100 (Dr. Ko) info coming soon.
- D200 (Dr. Brian, Surrey) post on Piazza
You may need to join the class on Piazza before the above link works for you.
Overview
There are two types of assignments in this course---short assignments and long assignments. Short assignments are designed to be straightforward and tutorial-like, while long assignments require a significant time investment. The difficulty level of long assignments is substantially higher than that of short assignments.
Students should consider these assignments take-home exams rather than traditional homework. This is because we require students to complete them in a highly-controlled environment using our Docker setup. Modifying the environment is not allowed and considered a violation of academic integrity.
Late policy: available in course info page
Enrollment and Submission
Please submit your GitHub account's username to the CourSys "quiz", even if your SFU username matches your GitHub username. We cannot give you a grade otherwise.
A pushed commit to the github repository means a submission. We will use your latest commit by the late-submission deadline to grade. If there are multiple commits before and after the deadline, please refer to course info page Late Policy for the grading criterion.
Short Assignments
The first type of assignments in this course is short assignments.
- In the first few weeks of the course, students are expected to finish two short assignments per week.
- Each short assignment is in the style of a tutorial and usually takes about 2-3 hours to complete.
- These assignments are designed to teach students basic tools and concepts that students use for in-class activities and long assignments.
- Unlike long assignments, short assignments are designed to be straightforward.
Long Assignments
The second type of assignments in this course is long assignments.
- Long assignments are exponentially more challenging than short ones, specifically designed to push students to test and enhance their programming skills.
- The expectation is that each assignment will take 15-20 hours to complete. However, students sometimes report spending 30-40 hours on each long assignment. This discrepancy is likely due to varying levels of preparedness with the prerequisites.
- In other words, the level of challenge posed by the assignments can vary significantly, depending on the student's stage of proficiency in general programming and their understanding of the prerequisite materials (e.g., beginner-beginner, intermediate-beginner, advanced-beginner).
- Long assignments typically do not provide a detailed step-by-step guide. Students are expected to figure things out independently. The course is designed to train and challenge students, fostering self-reliance and problem-solving skills.
Mark / Remark Assignment Process
Assignments are automatically marked by the auto-grader. See the course info page for how quizzes affect assignment grades.
If a student has a concern with the marking on an assignment then, within 7 days of the grades for an assignment being released to students on CourSys, they must meet with a TA for their section during their office hours (in person, or online) to address the marking issue.
The TA will ask the student to open the CMPT201 container and clone into a fresh directory a copy of the assignment in question. First the student will run git log
to show the history of commits to ensure nothing was submitted past the due date. Then the student will run the checker in that folder, and the TA may ask the student to run certain additional steps to demonstrate the solution works.
The TA will then adjust the student's marks according, adding a comment in CourSys explaining what was changed on the marking.
If a student has concerns with the remark procedure, or how it was applied to them, they are invite to talk to the instructor.
Copy-and-Paste Policy
On assignments (short and long), each copy-and-paste operation for assignments leads to at least 5.01% penalty. The fractional score triggers us to inspect whether cheating (e.g., pasting multiple lines of codes from others or AI tools) exists and if so, zero marks will be given.