Half of your course grade (and most of your learning) comes
from doing the programming projects. I can talk about programming all day in
class, but you
will only truly absorb the material after practicing with the language and tools. The projects are
non-trivial and you will find them time-consuming and sometimes frustrating.
I also hope you will find the work to be rewarding and that you will be
proud of your accomplishments and the new skills that you will gain.
I think it is important that you do your own independent work on the
assignments. However, that does not mean it is impossible to get help
or talk to anyone else when you get stuck. In fact, you are encouraged to interact with your
classmates in this course:
discussing course materials, clarifying misunderstandings, working through
conceptual problems, understanding compiler errors, or just commiserating.
Collaboration of this type can be an extremely effective way to learn.
However, assignments that you hand in for the course must represent
your own effort and not that of a fellow student, past or present. Violating
the spirit of collaboration described here may result in a charge of academic
dishonesty.
This document attempts to give you some guidance about how to get the
most out of your collaborations and avoid accusations of cheating.
Collaboration means that you can consult with other students about code provided
during class, debugging, and any material presented in the books, on
the web pages, or in class. To consult with another student does
not mean that you passively receive their solution. Under no circumstances should you directly copy another student's code. Additionally,
no collaboration is allowed on exams and quizzes. For each assignment
you are expected to include a list of the students with whom you have consulted.
As the course progresses, there will be several group assignments.
For these, you will be required to work with one or two other students
in the class. If you have not gotten to know your classmates by then,
or if you have been cheating (and getting away with it) throughout the
semester, then you may not be able to find a decent partner. So how
well you collaborate may affect how well the second half of the semester
goes.
In fact, this is similar to the way people interact on the job.
If someone is having a problem, he may go to a co-worker's office, or offer
to buy them coffee in the break room, to discuss the problem. The
co-worker may offer some suggestions or point out flaws in his solution
or understanding. Afterwards, the person will return
to his office with a fresh perspective and attempt to tackle the problem.
In the end, he is responsible for his own work; it is unreasonable to believe
that he can blame his co-workers for their advice if the project fails.
On the other hand, it is reasonable for his co-workers to stop helping
him if he gains a poor reputation.
Your name must appear on every assignment you hand in, electronically or on
paper. Putting your name on an assignment constitutes your agreement to this
policy.