The following policy is designed to ensure that your learn as much as possible from the course, and also to promote fairness and accuracy in grading. Policy on Collaboration Plagiarism -- or simply, cheating -- is taken to be the handing in of work not substantially the student's own. It is usually done without reference, but is unacceptable even in the guise of acknowledged copying. It is reprehensible, and the penalty ranges from a zero on the assignment to suspension from the university. It is not cheating, however, to discuss ideas and approaches to a problem, nor is it cheating to seek or accept help with a program or with writing a paper. Indeed, a moderate form of collaboration is encouraged as a useful part of any educational process. Nevertheless, good judgment must be used, and students are expected to present the results of their own thinking and writing. Never copy another student’s work -- it is plagiarism to do so, even if the other student "explains it to you first." Never give your written work to others. Sharing work with others for the purposes of plagiarism is also a violation. Do not work together to form a collective solution, from which the members of the group copy out the final solution. Rather, walk away and recreate your own solution later. The basic premise is that you should do your own thinking, your own design, and your own coding. We realize that Scheme/ML/Prolog (and associated tools and concepts) are going to be new to some of you. You are allowed to assist another student in learning to use Scheme/ML/Prolog and related tools. We will be routinely comparing your code to that of other students for undue similarity. Assignments will not be marked without a signed statement with the following: I understand that collaboration is not allowed. All answers are my own, written in isolation, without help from others. This submission is in accordance with the University of Toronto Code of Behavior on Academic Matters.