|CIT 591 and 594 Academic
Spring 2008, David Matuszek
Individual and team programming:
rules are written for individual programming assignments. When you are
assigned a team member or members, the rules apply to individual teams.
For example, where it says "You may not work together on the same
program," this means "Your team may not work together with another team
on the same program."
- Discuss the assignments with one another.
- If you don't understand something about the assignment,
ask. The best people to ask are myself and my teaching assistants, but
there is no harm in talking to other students about the assignments.
- Help others debug their work.
- Sometimes other people will notice immediately
something that you have spent hours trying to find. Maybe they've had
the same problem. Being "stuck" for long periods is not
a good way to learn.
- More often than not, your errors become obvious when
you try to explain your program to someone else.
The other person doesn't even have to be a programmer; in fact, it's
probably better if they aren't a programmer. It's often said that
explaining your program to your dog can be a big
- If you help someone else, don't overdo it--don't write
their program for them. Help them understand their errors and how to
fix them, but don't do it for them.
- If someone is helping you, do not let them
take a copy of your program. Not everyone is honest.
- Use, without attribution, anything I post to the
- If I post it, it's so that you can use it. I will know
where it came from.
- However, it's an important habit in general to give
credit to any source that you "borrow" code from--it's the honest thing
You may not:
- Work together
on the same program.
- Talking about the program is fine, but when it comes to
writing the program, do it by yourself.
- Writing programs jointly is unacceptable. You will
be caught and you will fail.
- If you write a program jointly and try to hide the fact
by making cosmetic changes, this will be regarded as further evidence
that you know the rules and are being deliberately dishonest.
- Working together may be acceptable in your home
culture, and it is usually encouraged in business; it but working
together is not acceptable in this educational
- If you discuss your assignment extensively with another
student, and make reasonably detailed plans about how you will do it,
and then go off and each write each program separately,
you will be surprised at how different they turn out. I have never
had a problem with programs that were "accidentally" the same.
- Copy another’s code.
- If you copy someone else's program--even just a part of
it--the fact will be noticed.
- Allow your code to be copied.
- Fair or not, this is the rule. If you and someone else
turn in the same program, both of you are guilty, regardless of who did
the actual work.
- Lend your code to someone else.
- There is no good reason to do this, and if they copy
your program, you are at fault.
- Leave your code lying around where someone else
may copy it.
- Be careful with your thumb drives
and your program listings
- Use any code from textbooks or the Web without my
- Let's be clear. There is no problem
with looking up how to do something, and copying two or three lines to,
say, open a file, or create a Frame. Even an entire method of, say, ten
lines, should be OK--particularly if it's a general-purpose thing that
might be used in a lot of different programs.
- Finding code that does a significant part of your
assignment, and using it, particularly if you use it without
attribution, is a violation.
- For the most part, it should be pretty obvious what is
assignment-specific and what is general-purpose. If in doubt, ask me.
- Have someone else write your program for you.
- This one is so obvious I didn't even think to mention
it in my lecture.
Penalty for first offense:
- You will be reported to the Office of Student Conduct.
- You will receive an F in the course.
If you think you may have accidentally broken a rule, come and
talk to me about it. You will be much better off than if I discover it
I don't want to catch you cheating. It
hurts you and it's a lot of work for me. I go to a huge amount of extra
effort to make it difficult to cheat. But it's my job to watch for
cheating, it's my responsibility to make things as fair as possible,
and I'm good at it.