Assignments
Get The Assignments
See pinned post for your section for assignment due dates and links:
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.
Deadlines: D100 (Dr. Li, Burnaby) on course main page
Late policy: available in course info page
Enrollment and Submission
For all students, please submit your github username account to CourSys, no matter whether you selected your name on Github classroom or not. No account name submission, no grade.
For normally enrolled students: Selecting your name in Github classroom list is totally optional. You can either select your name or click "Can't find your name? Skip to the next step".
For late enrolled students: You may not find your name in Github classroom. Please click "Can't find your name? Skip to the next step" on Github classroom.
A pushed commit to the github repository means a submission. We will use your latest commit by the deadline to grade. If there are multiple commites 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 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.
Remark Assignment Process
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 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.