CS 444/544 Compilers
Spring 2017

This honor code is adapted from Stanford University Computer Science Department’s Honor Code.

Honor Code

We take the Honor Code very seriously and expect you to do the same. Fortunately, most of you will do so. Unfortunately, there will be a few students who will submit work that is not their own. This disturbs the atmosphere of mutual trust, prevents them from learning the concepts, and it simply is a disrespect to other fellow students.

In many courses, it is usually appropriate to ask other people (i.e. the TA, the instructor, or other students) for hints and debugging help or to talk generally about problem-solving strategies and program structure. In fact, you are strongly encouraged to seek such assistance when you need. We want you to form study groups and discuss course topics with your friends; scientific evidence shows that this is a very effective way of learning.

We have absolutely no desire to create a climate in which you feel as if you are under suspicion. The purpose of the Honor Code is to make everyone benefit from working in an atmosphere of mutual trust. Students who try to take advantage of that trust, however, poison that atmosphere for everyone. As members of the Ozyegin community, we all have a responsibility to protect academic integrity for the benefit of the community. Please resist the temptation to violate the Honor Code by submitting someone else’s work as your own.

The purpose of this Honor Code is to clarify the limits of how much help you can receive from the others. The basic principle is that you are expected to submit your own work. In particular, attempting to take credit for someone else’s work by turning it in as your own is plagiarism, which is a serious violation of basic academic standards. The guidelines listed below are a reasonable baseline for academically appropriate collaboration at Ozyegin University CS courses. Note that specific classes will have their own rules. Do your best to follow the established guidelines to substantially reduce the likelihood of violating the Honor Code.

Do not share actual code with other students.

Do not give your code to any other student who asks for it and do not ask anyone for a copy of their code. Similarly, do not discuss algorithmic strategies to such an extent that you and your collaborators end up turning in exactly the same code. Discuss ideas together, but do the coding on your own.

Do not look at solutions or code from other years.

Developing a good programming assignment often takes years. When a new assignment is created, it invariably has problems that require a certain amount of polishing/tuning. To make sure that the assignments are as good as they can be, we, like many others, reuse assignments over the years, incorporating a few changes each time to make them more effective.

Beyond being a clear violation of academic integrity, making use of old solution sets is a dangerous practice. Most assignments change in a variety of ways from year to year and submitting a program that solves a previous year’s assignment perfectly while failing to solve the current one is particularly damaging evidence of an Honor Code violation.

Do not look at solutions or code from other schools.

For the same reasons explained above, do not try to obtain solutions from similar courses offered elsewhere.
That is, do not google for the assigned problems. However, you are strongly encouraged to use search engines to learn programming principles and topics.

Indicate on your submission any assistance received.

Making use of other people’s assistance without giving proper credit is plagiarism. When submitting assignments, provide proper citation. This is typically done in the comments at the beginning of the program. When receiving assistance, make sure it consists of general advice that does not cross the boundary into having someone else write the actual code. It is fine to discuss ideas and strategies, but be careful to write your programs on your own.

Be prepared to explain any code you submit.

When seeking help on an assignment, try to improve your level of understanding and do not be satisfied with simply getting your program to work. Suppose, for example, that someone responds to your request for help by showing you a piece of code that does the job. Don’t fall into the trap of thinking about that code as if it were a magical thing, something you simply include in your program and don’t have to understand. This puts you in a poor position to solve similar problems on exams and prevents you from learning necessary concepts and ideas.

In many cases of plagiarism, students take deliberate measures such as rewriting comments, changing variable names, changing output messages, etc. to disguise the fact that their work is copied from someone else. Don’t waste your time doing this. There are simple, effective, automated tools that can easily compare the structure of the programs by ignoring such cosmetic changes.