Skip to main content

Class Policy

Assignments Deadlines

  • Individual Work: All assignments are individual tasks. Collaboration is not allowed.
  • HARD DEADLINE: 9pm 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 dealine time.
  • LATE SUBMISSION POLICY: 0.. We will be locking down your project repositories at 9pm

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.

EPA 0.5%

Effort = {Office hours, doing every single lab, hw, reading Piazza pages, etc.} Participation = {Raising hand in discussion, asking Piazza questions, etc.} Altruism = {Helping other students in lab, answering Piazza or Office Hrs questions}

EPA was created to encourage people to be good academic citizens, in a way that traditional grades could not capture. This can help boost you over a grade boundary if you’re close to one. Scoring is confidential (we’ll never tell you your EPA score and you shouldn’t ask), and is decided by the teaching staff, so make sure they know your name.

Sickness Policy and Deadline extensions

  • Late Policy is 0%

  • We will only consider extensions of deadline due to medical reasons. Valid with University's Health Care Provider Statement will be accepted as proof. All such requests should be made to the instructor before the assignment is due or before missing the exam to discuss alternative arrangements.

  • Non Medical Reason Due to unforeseen (https://en.wikipedia.org/wiki/Force_majeure) circumstances (e.g., internet is cut-off, power lost in the house, family matters). Please read SFU policy on grading. Following this contact the CMPT student advisor to validate your situation and get it approved by the UPC director Toby J Donaldson (tjd@cs.sfu.ca). If the student advisor can validate your situation and the UPC director approves, the instructor will consider it (however instructor decision is final).

  • Regarding the newly announced academic concession policies.

    • Fill out the form here and upload SFU form atleast 48 hours prior to the deadline You will need to be logged into gmail before you fill form since you need to upload a pdf.
    • FAS SFU Concession Form
    • We may take up to 48 hrs to let you know our decision so you should continue to push your latest work to the repo. We will inform you prior to the deadline if your request was approved.
    • You can avail of at most one of these concessions per semester; Fill out a healthcare provider statement or contact the CMPT student advisor for longer-term issues.
    • Our late policy is 0%. But if your concession is approved there will be a penalty of 20% per day (maxium 3 days) If you wish to not have any penalty (e.g., health related); get a health care provider statement.
    • We will be locking the repos at deadline time and then unlocking your repo individually. If your repo is not unlocked, then your concession was not approved. Repo will be re-locked after the days you request. Deadline will continue to be 9pm on the extended day. e.g., Sep 27 9pm is deadline. You have a one day extension. you have until Sep 28 9pm.

Email policy

  • We will be using piazza for all discussions. For homeworks, assignments, labs, exams, lectures, or other clarification emails we will not be responding to private emails.
  • Typically staff (instructor/TA) will not reply to private email if we deem it belongs to piazza group or the information can be obtained from the webpage.
  • If you email the instructor or TA directly then use your SFU email address to send the email (do not use any other provider), and use cmpt295: as the prefix in your subject line.
  • Before you email or post to the discussion board read Piazza Policy.
  • You have to read the piazza reading list posts before you get posting privileges.

Making the Most of Office Hours 🕒

Hi everyone! We're really looking forward to seeing you during our extensive office hours this term. Here are some quick tips to help you get the best out of these sessions:

  • 10-Minute Help: To keep things moving smoothly, each help session is capped at 10 minutes. If you need more time, no problem – just hop back in line.
  • Be Prepared: We want to help you become awesome at debugging and testing! So, before you come to office hours:
    • Run valgrind to tackle any memory leaks/warnings.
    • Write a test to pinpoint your issue.
    • Use (c)gdb to find where the issue occurs.
    • Print out your variables in binary or hex using print_binary.
  • Show Your Work: The TAs will ask to see your work. Make sure you're ready to show that you've addressed compiler warnings or memory leaks.

Describing Your Issue

When you join the queue, help us understand your needs better by providing a detailed description:

  • For Conceptual Questions: Just type out your detailed question.
  • For Debugging Help: Confirm that you've addressed compiler warnings and memory leaks, and then describe your specific issue and the steps you've taken to solve it.

Remember, vague descriptions like "please help" won't cut it. The clearer your description, the better we can assist you!


Example 1

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.

Example 2

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.

Friendly Guide to Using Piazza Effectively 📘

Hey everyone! To make the most of our Piazza discussions, here are some helpful pointers:

  • Assignment Rules: If the assignment doesn't explicitly forbid something, feel free to go for it. Just be sure to check the assignment's coding rules.
  • Debugging Queries: If you're stuck with "Why doesn't my code work?", try to be specific. Describe the problem line by line using our provided template. Remember, our TAs are here to guide you, not to debug endlessly.
  • Your Setup Questions: We support VMs, CSIL, and zsh setups. If you're using something different, describe your setup in detail when asking for help.
  • Do a Quick Search First: Your question might have already been answered! This saves everyone's time and helps us focus on new queries.
  • Links and Screenshots: When referring to external resources or examples, including links and screenshots is super helpful.
  • Specific Questions: Avoid overly broad questions like "How does C work?" Instead, pinpoint what exactly confuses you, so we can assist better.
  • Public Posts for Project/Homework Questions: Please post these in the relevant threads for everyone's benefit. If it's too specific, consider asking during office hours instead.
  • Correct Use of "Student Answer" Box: Only use this if you're confident in your answer. For further discussions, use the "Follow ups" section.
  • Like a Post? Use the Helpful Button: Avoid +1 follow-ups, and use the 'Helpful' button to show your agreement or appreciation.
  • Unresolved Follow-Ups: Mark your follow-up as unresolved if you're seeking a reply.
  • Don't Understand an Answer?: Feel free to ask for clarification in office hours, where we can explain things more personally.
  • Avoid Spam: Excessive, repetitive posting could lead to a temporary ban. Try to research your question first using textbooks, Google, or Stackoverflow.
  • Be Careful with Anonymous Posts: You can't edit them later, so double-check before submitting.

We're all here to learn and help each other, so let's make our Piazza community a great resource for everyone. Happy posting! 🌟

Late Enrollments

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

Extenuating Circumstances

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)

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

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.

Academic Honesty

  • Some examples of unacceptable behaviour:
    • Handing in assignments that are not 100% your own work (in design, implementation, wording, etc.), without proper citation. There must be a README file in your submission with citations to any external code used.
    • Note that hardcoding in printfs or logic for specific inputs in the assignment is considered a form of dishonesty. If we find this to be the case, we reserve the right to 0 out the grade for specific test cases, or entire assignment.
    • Using any un-permitted resources during an exam.
    • Looking at, or attempting to look at, another student's paper during an exam.
    • Submitting work that has been submitted before, for any course at any institution.
  • If you are unclear on what academic honesty is, see Simon Fraser University's Policy S10-01.
  • All instances of academic dishonesty will be dealt with severely.
  • In general, minimum requested penalties will be as follows:
    • For assignments: a mark of -100% on the assignment. So, academic dishonesty on an assignment worth 5% of your final mark will result in a zero on the assignment, and a penalty of 5% from your final grade.
    • For exams: an F in the course.
    • Please note that these are minimum penalties. At the instructor's option, more severe penalties may be given/requested. All instances of academic dishonesty will be noted on your University record.
  • The instructor may use, or require students to submit assignments to, an automated service that will check for plagiarism.
  • Refer to assignment page for precise instructions on what you can refer online.

Mark Appeals

Except for final grades, this is how you can go about getting your mark changed: WARNING: THERE WILL BE NO MAKEUP EXAMS We have a large class and will not be able to accomodate exceptions

If you're concerned about your mark at the end of the course, you can see the instructor. Here are some guidelines: This is a good reason:

  • There's a marking irregularity on my final or some other piece of work.
  • The marking scheme is fixed. If you did badly on a midterm, you can't weight the final more heavily.
  • For multiple choice, fill-in-the-blanks, one-word answers etc we will no regrade unless the marking key itself is incorrect

The instructor will go over the some of the questions post exam

  • If you need a further explaination fix an OH.

The following are not good reasons to get a higher final mark:

  • I want it.
  • I think I deserve it.
  • I need it.
  • I'm close to the next grade cutoff.

Assignments

  • Requests for a change in your mark must come to the course instructor. Teaching Assistants will not change your mark, except for errors in addition or data entry.
  • Requests should come in the same form as you received your marks: if you got marks by email, forward that email to the instructor; if you had paper handed back, return that.
  • You should give a brief explanation of why you want your mark reevaluated.
  • Appeals may be made up to two weeks after the mark is returned or until the final exam date, whichever is first. After that deadline, you must make a formal mark appeal for any changes.
  • For exams in particular, these are not reasons to get more marks:
    • I knew what I was saying here, but didn't write it.
    • This is the correct answer for some question other than the one asked, but I didn't get any marks for it.
    • I didn't understand the question.
  • ONLY FINAL COMMIT PUSHED INTO YOUR REPO UNTIL DEADLINE WILL BE CONSIDERED FOR EVALUATION. We will not evaluate any local commit not pushed to your git repo. We will not consider any earlier commit that has been pushed.

Diversity 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 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.

Acknowledgment

This document has been modified by your CMPT 295 instructor. It has been derived from John DeNero and Kara Nelson. All comments should be sent back to your CMPT 295 instructor only.