Assignments are designed to give you heavy-duty experience with the application of course content. Assignments are graded on correctness.
You will work on ALL Assignments individually All of these Assignments were designed to be completable on your own. Collaborating with other students is strictly prohibited. Please see the section on Academic Dishonesty below.
HARD DEADLINE: 11:59pm on Due date. Assignments have a hard deadline. Assignments have to be pushed into your github repos by the deadline time (locally committing is not sufficient).
FINAL COMMMIT RULE We will only consider the final commit pushed into your git repos by the deadline time.
LATE SUBMISSION POLICY: 0.. We will be locking down your project repositories at 11:59pm
Projects are difficult, so don’t worry if you don’t get 100% on projects! We also have a philosophy on autograders: we only provide visible sanity tests. So there will be immediate feedback that your code compiles and runs on a simple test case but you won’t be able to see the results of the tests that are used to determine your grade. Additionally, you should ensure you have set the submission you want to use as your final grade as your ‘active’ submission. You may change your ‘active’ submission up until the late due date. We will not change your project submission after the late due date passes regardless of if you did better on another submission. We do not want you to use the autograder as an oracle since much of programming is actually testing your code.
cmpt295:
as the prefix in your subject line.We hope you take advantage of the ample office hours we have scheduled this term. When coming to office hours for lab or project help, there are some policies you’ll need to abide by.
In order to reduce queue wait times, help will be limited to 10 minutes. If this is not sufficient, please rejoin the queue. This is designed to make the queuing time both significantly shorter and more predictable.
TAs will not be debugging code endlessly without reason
. This is not a good learning practice, they have limited time, and part of the goal of this course is to turn you into a great tester and debugger.
Therefore, before coming to office hours, students should have done the following:
There are instructions for testing on all project specs, and you can review how to run valgrind and (c)gdb in lab.
Before joining the queue, you must add the following to your problem description in order to help the TA better understand what you need help with and to ensure that you have attempted to debug your code before coming to office hours.
If your question is conceptual/homework/lab (non-debugging), fill in the prompt below: Detailed question:
If your question is project/lab (debugging), fill in the prompt below: Have you fixed all compiler warnings? Have you run valgrind and fixed all memory leaks? Detailed question: Steps have you taken to solve this problem:
If you do not fill out the description properly, your ticket will be resolved. Descriptions like “please help”, “I don’t understand how to do this problem”, etc are not sufficient and will be resolved. Examples of good descriptions:
conceptual/homework/lab (non-debugging): Detailed question: I am having a hard time understanding when you should use malloc(). I understand that malloc will store data on the heap, and that this data will remain allocated until you call free(), but I don’t understand when you should allocate data using malloc() vs when you should allocate data on the stack.
TA: Have you fixed all compiler warnings?
Student: yes
TA: Have you run valgrind and fixed all memory leaks?
Student: yes
Student: I am getting a segfault in my code for Project X. I have determined that it is occuring in the function example_func(). I have also figured out that it only happens when the parameter example_param is greater than 16. Steps have you taken to solve this problem: I have run my code through gdb which helped me determine that the error is occurring in example_func() when example_param() is greater than 16. The segfault is occurring on line 57 when I try to access an element in the example_array.
We have two different types of office hours: Normal OH (includes Head TA and Instructor OH), Lab OH. Each of them has a priority of types of questions which they will answer. Normal OH will prioritize assignment, exam, and conceptual questions. It then will take project questions, and finally take lab questions last. Lab OH will take lab questions first but also take any other type of question if there are no lab questions.
We do NOT give extensions for late additions to the class. If you have any intention of taking the class but are not enrolled in the class, you must enroll the class (at least being on the waitlist) and you must keep up with the work.
READ THE CANVAS PAGE
Inclusion: We are committed to creating a learning environment welcoming of all students that supports a diversity of thoughts, perspectives, and experiences, and respects your identities and backgrounds (including race/ethnicity, nationality, gender identity, socioeconomic class, sexual orientation, language, religion, ability, etc.) To help accomplish this: If you have a name and/or set of pronouns that differ from those that appear in your official records, please let us know.
If you feel like your performance in the class is being impacted by your experiences outside of class (e.g., family matters, current events), please don’t hesitate to talk to the student advisors. If you have any unforeseen circumstances that arise during the course (e.g., electricity cut-off, unable to access internet, living ), please fix an appointment with instructor, or the CMPT student advisors or Toby Donaldson (tjd@cs.sfu.ca)
As a participant in this class, recognize that you can be proactive about making other students feel included and respected. We recognize that our students come from varied backgrounds and can have widely-varying circumstances affect them during their time in the course.
We (like many people) are still in the process of learning about diverse perspectives and identities. If something is said in class (by anyone) that makes you feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident to our instructors, head TA, or another member of staff you’re comfortable with so that we may address the issue and maintain a supportive and inclusive learning environment.
Except for final grades, this is how you can go about getting your mark changed:
If you’re concerned about your mark at the end of the course, you can see the instructor. Here are some guidelines:
We are committed to creating a learning environment welcoming of all students that supports a diversity of thoughts, perspectives, and experiences, and respects your identities and backgrounds (including race/ethnicity, nationality, gender identity, socioeconomic class, sexual orientation, language, religion, ability, etc.) To help accomplish this: If you have a name and/or set of pronouns that differ from those that appear in your official records, please let us know. If you feel like your performance in the class is being impacted by your experiences outside of class (e.g., family matters, current events), please don’t hesitate to come and talk with us. We want to be resources for you. As a participant in this class, recognize that you can be proactive about making other students feel included and respected. We recognize that our students come from varied backgrounds and can have widely-varying circumstances affect them during their time in the course. If you have any unforeseen circumstances that arise during the course, please do not hesitate to contact the instructors in office hours or private Piazza post to discuss your situation. The sooner we are made aware, the more easily these situations can be resolved. Extenuating circumstances include work-school balance, familial responsibilities, religious observations, military duties, unexpected travel, or anything else beyond your control that may negatively impact your performance in the class. We (like many people) are still in the process of learning about diverse perspectives and identities. If something is said in class (by anyone) that makes you feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident to our instructors, head TA, or another member of staff you’re comfortable with so that we may address the issue and maintain a supportive and inclusive learning environment. You may also contact the department’s student advisors and UPC chair Toby Donaldson. tjd@cs.sfu.ca
Graduate students will compulsory do a project
chosen by them in conjunction with the instructors. Can be done in groups of up to 3. Contributions of each group member should be catalogued at the end of the project. Contributions and project quality will determine the grade assigned by the instructor.Undergraduate students have the option to choose a project
in conjunction with instructor. Can be done in groups of up to 3. Contributions of each group member should be catalogued at the end of the project. Contributions and project quality will determine the grade assigned by the instructor.Undergraduate students have the option to complete one or two assignments
(decided by the instructor) in-lieu of the project. These should be done individually. The same assignment will be assigned to all students that choose this option.Masks in the classroom are encourged but not required. Please consider wearing a mask to protect yourself and your classmates.
If you are sick with Covid-19 or other contagious diseases, please do not attend class. You can request a lecture recording link from the instructors in this case.
If instructors are sick with Covid-19, we will attempt to communicate with students as soon as possible and have a contingency plan to deliver the lectures (possibly through recordings).
This document has been modified by your CMPT instructor. It has been derived from John DeNero and Kara Nelson. All comments should be sent back to your CMPT instructor only.