For all homeworks and projects that you do in this course, you may make full use of all resources listed on the course webpage. This includes lecture notes, textbook, printed material distributed in class, and web URLs highlighted in class. You are strictly not allowed to use past year solutions posted by similar courses taught in the past, or search the Internet for solutions. If you consult other people, you must list them (i.e., cite your sources) and should indicate what portion of your work was affected. When in doubt, consult the teaching staff.
You are not allowed to use code submitted by other students in prior semesters, or code that you searched on the Internet. We will be running the highly effective MOSS (http://theory.stanford.edu/~aiken/moss/) tool to compare with solutions from past semesters, prior TA solutions, between all students, and any additional web sources to detect similarities. If you have someone else's code, delete it now because you will be caught.
We understand that people learn better from discussions with other students. Thus we strongly encourage you to discuss your homework questions, high-level concepts for the homeworks, and tips on programming with other enrolled students, particularly on the newsgroup. In fact, students who are active on the newsgroup in helping other students will receive the highest score for class participation.
However, all work you hand in must be your own, i.e. the discussions should not lead to word-for-word copying and code exchanges. Therefore we require that in your homeworks you include the names of the people in your discussions. Similarly, in the project writeup, include the names of students from other groups whom you have had discussions with.
All group programming work involves the whole group. Therefore it is very important that each person do their fair share. To ensure this occurs, we require that in the group homeworks that you each provide a summary of your contribution to the project. This is much like a "peer review". You will also be required to use version control for all programming assignments and you may use the logs to help resolve disputes.
We have a zero-tolerance policy on cheating. At the very minimum, you will receive a zero on the assignment and course participation for the first cheating incident. The penalties also apply to students who share their solutions with others for the purposes of copying (including prior year's participants in the course - I can change grades post-graduation!). If you are caught twice, you will be given an F grade and referred to the Office of Student Conduct. This semester, we will be collecting the names of cheaters across all 500-level courses to identify students who violate the policies in multiple classes. You are likely to receive F grades in multiple classes if caught.
Students who are caught disseminating past-year solutions to students who take the course in future semesters will be immediately referred to the Office of Student Conduct. This is an offence that can lead to expulsion from the university. If you know of such students, refer them to the teaching staff for immediate action.