20%      In-class test
30%      Final exam
50%      Assignments

  • The in-class test will be held in tutorial approximately in the middle of the term.
  • There is no better preparation for the midterm than the past midterms! They are all available on dropbox and you should study them carefully. Try to do as many of them as you can, and you will be in good shape!
  • There will be four assignments in total. Assignments will be approximately tri-weekly. Most assignments will have a small written portion and a significant programming component.
  • Some assignments may have one or more optional "bonus" parts. Since all assignment grades will be added and averaged in the end, any extra points you receive in one assignment can offset lower grades in other components of the course (other assignments, exams).

Late Assignments

Late penalties for assignments are as follows. Assignments are due at noon on the due date and should be submitted only in electronic form.

For each day late, including weekends, 15 percent of the total possible points will be deducted (a day ends at noon). For example, if an assignment is due on Wednesday, no late penalty will be assessed if it is turned in by noon on Wednesday. If turned in before noon Thursday, there will be a 15 percent penalty, etc.

No work will be accepted if it is more than five days late.

Remark Policy

All remark requests should be submitted in written form.

Remark result that does not end up with any mark increase receives an extra 5% deduction from the total weight of this assignment or term test.

Email & Newsgroup Traffic

  • Please do not send email directly to the TAs. They will not be replied.
  • Main forum for answering questions about class or about the assignments is Piazza. The instructors will be handling all email responses, possibly delegating them to one of the TAs.
  • Appropriate use of newgroup: clarifications on assignment, on lecture material, general concerns about the course, or other remarks that are appropriate for all students to see/participate in.
  • Do NOT broadcast pieces of your code to Piazza. Specific or general implementational questions whose answer would benefit all students in the class are appropriate. However: Piazza is NO replacement for the tutorial hour. That should be the main forum for asking/answering questions of this sort. Note that we may
    organize additional "office hours" about 3-5 days before the midterm and final to answer assignment-related questions.
  • Questions of the form "I cannot find the problem with my code; here it is, can you help me" are unlikely to be replied, so don't count on it. If you have a question, come with them to my office hours, to the TA office hours, or to the tutorials.

Academic Honesty

Academic honesty is a very serious matter. We are very saddened by the fact that isolated incidents of academic dishonesty occur almost every year the course is taught. These resulted in very serious consequences for the students that took part in them. Note that academic offences may be discovered and handled retroactively, even after the semester in which the course was taken for credit. The bottomline is this: you are not off the hook if you managed to cheat and not be discovered until the semester is over!!

You should never hand down code to students taking the course in later years. This will likely land you both in a lot of trouble!
  • Tests and exams in this course must be strictly individual work.
  • Each assignment will have a programming component and a written component. Assignments will be strictly individual work.
  • For programming components of an assignment: Collaboration on a programming component by individuals (whether or not they are taking the class) is encouraged at the level of ideas. Feel free to ask each other questions, brainstorm on algorithms, or work together at a blackboard. Be careful, however, about copying the actual code for programming assignments or merely adapting others' code. This sort of collaboration at the level of artifacts is permitted if explicitly acknowledged, but this is usually self-defeating. Specifically, you will get zero points for any portion of an artifact that you did not transform from concept into substance by yourself. If you neglect to label, clearly and prominently, any code that isn't your own or that you adapted from someone else's code, that's academic dishonesty for the purpose of this course and will be treated accordingly.
  • The principle behind the collaboration rule is simple: I want you to learn as much as possible. I don't care if you learn from me or from each other. The goal of artifacts (programming assignments) is simply to demonstrate what you have learned. So I'm happy to have you share ideas, but if you want your own points you have to internalize the ideas and them craft them into an artifact by yourself, without any direct assistance from anyone else, and without relying on any code taken from others (whether at this university or from the web).
  • There are some circumstances under which you may want to collaborate with someone else on the programming component of an assignment. You and a friend, for example, might create independent parts of an assignment, in which case you would each get the points pertaining to your portion, and you'd have the satisfaction of seeing the whole thing work. Or you might get totally stuck and copy one subroutine from someone else, in which case you could still get the points for the rest of the assignment (and the satisfaction of seeing the whole thing work). But if you want all the points, you have to write everything yourself.

For purposes of this class, academic dishonesty is defined as:

  • Any attempt to pass off work on a test that didn't come straight out of your own head.
  • Any collaboration on artifacts in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
  • Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (eg. digital cameras), or deliberately providing them with misleading information.

[Note: this policy, with minor modiciations, was developed by Michael Scott at the University of Rochester]