Introduction to Internet Programming - Fall 2017
General Collaboration Guidelines
I'll begin by presenting my description of, and policies for collaboration, and then I will follow up with an informal discussion of collaboration and academic integrity. Please take note of my policies at the end of the page, as well as the remarks about citing code found on the web.
Almost all of life is filled with collaboration (i.e., people working together). Yet in our academic system, we artificially limit collaboration. These limits are designed to force you to learn fundamental principles and build specific skills. It is very artificial, and you'll find that collaboration is a valuable skill in the working world.
I apologize in advance to most of you for having to suffer through this distasteful topic (cheating), however, at every instance of this behavior in the past, before I wrote specific guidelines, the individuals involved claimed that I was not clear about what constitutes cheating. I am now being very clear, and it is up to you to read and understand all of these guidelines.
Here at Mercyhurst University we are aiming much higher than merely 'not cheating due to the risk of getting caught'. From our Mission Statement:
Confident in the strength of its student-faculty bonds, the College community is inspired by the image of students whose choices, in life and work, will enable them to realize the human and spiritual values embedded in everyday realities and to exercise leadership in service toward a just world.
- All homework must be your own work. I encourage students to collaborate at a high-level by talking about homework problems. However, the line here between appropriate and inappropriate collaboration is hazy. It is certainly not appropriate to look at or copy another student's work. It is appropriate to ask for help in understanding a concept or technique necessary to solve a particular problem. It is not appropriate to have someone help you solve a nearly identical problem. When in doubt, err on the cautious side and ask me!
- Programming Assignments
- Good programmers copy, borrow, and collaborate - it is the very
essence of the concept of software reuse which is at the heart of the academic philosophy.
However, like homework, unless the work is a team project,
all programs must be your own work. Again, the line between
appropriate and inappropriate collaboration is hazy.
- Getting help connecting to or transfering files to the server.
- Asking questions about syntax errors while programming.
- Using other components in developing your programs where the the development of that component is not the main purpose of the assignment.
- Unless told otherwise, our author(s) is(are) part of your development team, thus their code is fair to use verbatim.
- Sharing code with others in any form, this includes just looking at their assignments as they work (or allowing others to look at your code), or sharing links to your work.
- Discussing or describing an approach to solving a problem at a high level such as sketching an algorithm or specific piece of logic that might be used.
General CommentsWorking together in excess of these guidelines is considered academic dishonesty and can result in serious discipline. My general policy on discipline will be the following:
- First Offense
- Everyone involved will receive a score of 0 on the assignment. This means both the person(s) who did the work as well as the person(s) who reused the work of others. So beware - letting someone else use any of your work will result in a 0 for you as well.
- Subsequent Offenses
- A second offense will result in an "F" for the course and all individuals will be turned over the the Dean of Academic Affairs for further disciplinary action. Again, this includes any and all parties involved.
While some of you may be tempted to collaborate too much, others will collaborate too little. When appropriate, it's a good idea to make use of others - the purpose here is to learn. Be sure to make the most of this opportunity but do it earnestly and with integrity. And by all means, once assignments have been graded, utilizing your classmates to clarify outstanding areas of confusion is encouraged.
- Collaboration is not having someone explain material from the text to you, merely because you don't wish to read.
- Collaboration would include having some one explain a particular concept from the reading that you could not figure out on your own.
- Keep your eye on the goal - to learn, if your 'collaboration' is not facilitating that goal, perhaps you are depending too much on others (too much collaboration).
- Sitting next to another individual and coming to a consensus on each question in an assignment is NOT your own work.
- Finally, presenting code you found on the web as your own is also a form of cheating, and will be
dealt with as discussed above.
- The majority of the code you submit should be your own, but in some rare cases, it may be appropriate to use code you've found elsewhere as a starting point or to add an additional feature to your project.
- Any external code must be acknowledged by including a comment in your project indicating the
origin of the code (called a citation).
This should include the web address or text where the code was found, and the author's name (if known).
- Using parts of complex projects you find online may be appropriate, but you should never simply copy and paste large portions of your code (even with citation).
- When in doubt, ask me if your intended usage is acceptable.