Well, obviously cheating is bad. And obviously breaking an ethics code is bad. I think an issue with what's going on here is that, in this case, there are conflicting natures between education and programming.
To be a good programmer, you need to be efficient. Writing 100% unique code is not efficient. It's not even good. It's bad. Good developers research solutions to solved problems. Good solutions have been used and tested by dozens, if not hundreds, of other developers in just as many different use-cases.
So, as a DEVELOPER, it's GOOD to research and find an existing solution to your problem. It's even good to go on places like Stack Overflow and post your problem and let someone else solve it for you.
But, as a STUDENT, doing these things is BAD. Taking credit for someone else's work isn't good. And letting other people do your work for you is cheating.
So, how do you resolve being a STUDENT DEVELOPER? Do you follow practices that would make you a bad developer? Or do you follow practices that would make you a bad student?
What I see is a complication in proving that the student understands the concepts they need to understand for the course. If you just go out and copy other people's code, but never take the time to understand it, then the course is worthless. Remember that the knowledge and understanding gained is the purpose of the course. Assignments, quizzes, whatever - these are just measurement tools, they are not the purpose behind the course.
I feel that we probably just need a different way to determine whether or not a student understands the concepts of the course. Is there a way to determine a student's understanding or comprehension outside of assignments, tests, and quizzes? Something that isn't replicable student to student?
To be a good programmer, you need to be efficient. Writing 100% unique code is not efficient. It's not even good. It's bad. Good developers research solutions to solved problems. Good solutions have been used and tested by dozens, if not hundreds, of other developers in just as many different use-cases.
So, as a DEVELOPER, it's GOOD to research and find an existing solution to your problem. It's even good to go on places like Stack Overflow and post your problem and let someone else solve it for you.
But, as a STUDENT, doing these things is BAD. Taking credit for someone else's work isn't good. And letting other people do your work for you is cheating.
So, how do you resolve being a STUDENT DEVELOPER? Do you follow practices that would make you a bad developer? Or do you follow practices that would make you a bad student?
What I see is a complication in proving that the student understands the concepts they need to understand for the course. If you just go out and copy other people's code, but never take the time to understand it, then the course is worthless. Remember that the knowledge and understanding gained is the purpose of the course. Assignments, quizzes, whatever - these are just measurement tools, they are not the purpose behind the course.
I feel that we probably just need a different way to determine whether or not a student understands the concepts of the course. Is there a way to determine a student's understanding or comprehension outside of assignments, tests, and quizzes? Something that isn't replicable student to student?