Follow
Publications: 33 | Followers: 0

Academic Honesty - Texas A&M University

Publish on Category: Birds 0

Academic Honesty
CSCE 489- Problem Solving ProgrammingStrategiesSpring2019
Academic Honesty
As a special topics course, you should be taking this to improve your own skills. Cheating counteracts the reason you aretaking this class!The nature of this class makes cheating somewhat easier (and sometimes more difficult to see the boundary of OK/not OK) than in other classes. So, we are spending time here.2 aspects: Communications with other people, and Online resourcesIf you are caught copying code or havingunallowedcollaboration, you should expect a very strong penalty (no less than an F*) in the course.Since it is in some ways “easier” to cheat in this class, a higher-than average penalty should be expected if it does happen.
Discussions with Others
So, what is/is not allowed?
If you have not solved the problem, you probably should not look at someone else’s code.If you have solved the problem, you should be careful about the level of discussion you have with others.You can always discuss with others what a question is asking – making sure you understand what is being asked in the question.You generally should not discuss the actual way to solve the problem, until theupsolveperiod.After the deadline (in the “upsolving” week afterward) feel free to discuss the problem, read descriptions of solutions, etc.But,you still should not look at code. You get partial credit for theupsolvingbecause it shows you can still translate ideas into code, even if you could not come up with the solution!You may use some common sense for getting help from others with small debugging issues, syntax problems, language feature issues, etc.
Examples
To (hopefully) clarify what is and is not OK, I will give a lot of examples here to illustrate what is and is not OK.
Example conversations (OK or not?)
Person 1: “We’re supposed to read in coordinates. Do we need to handle floating point numbers or just integers?”Person 2: “I just read in integers and it worked fine.”
Example conversations (OK or not?)
Person 1: “We’re supposed to read in coordinates. Do we need to handle floating point numbers or just integers?”Person 2: “I just read in integers and it worked fine.”Yes, this is OK. It is part of understanding the problem itself.Now, hopefully the problem specified this, so a better answer might be “read the question!”
Example conversations (OK or not?)
Person 1: “Is this one we’re supposed to use a dynamic programming approach for, or does a greedy approach work?”Person 2: “You need to use a dynamic programming approach. The greedy one won’t handle all the cases.”
Example conversations (OK or not?)
Person 1: “Is this one we’re supposed to use a dynamic programming approach for, or does a greedy approach work?”Person 2: “You need to use a dynamic programming approach. The greedy one won’t handle all the cases.”Not OK. This goes to how to solve a problem, rather than understanding what the problem is asking. This is OK during theupsolveperiod.
Example conversations (OK or not?)
Person 1: “Can you look at my code and see why I’m not getting the total number correct?”Person 2: “You’re double-counting some cases – you need to make sure you’re counting each solution only once.”
Example conversations (OK or not?)
Person 1: “Can you look at my code and see why I’m not getting the total number correct?”Person 2: “You’re double-counting some cases – you need to make sure you’re counting each solution only once.”Probably not OK. This seems to be asking someone to look at your code and tell you if your solution method is right or not; the response is dealing with how to solve the problem.The response might be OK during theupsolveperiod if Person 2 had solved the problem already. But, be careful that you are asking for small debugging help rather than major “how do I code this” questions.
Example conversations (OK or not?)
Person 1: “Can you look at my code to tell me why this angle computation isn’t working?”Person 2: “It looks like you need to convert from degrees to radians.”
Example conversations (OK or not?)
Person 1: “Can you look at my code to tell me why this angle computation isn’t working?”Person 2: “It looks like you need to convert from degrees to radians.”Probably OK, although looking at code is not a great idea. Here, the problem is one dealing with a language feature, not actually a solution to the program.If the answer were “You don’t want to compute the angle – just use the Pythagorean Theorem.” that would not be appropriate, except during theupsolveperiod.
Example conversations (OK or not?)
Person 1: “How do I check for end of input when I don’t know how many lines to read?”Person 2: “If you try to read a line, then you can check whethercin.eof() is true to see if you’ve read to the end of input.”
Example conversations (OK or not?)
Person 1: “How do I check for end of input when I don’t know how many lines to read?”Person 2: “If you try to read a line, then you can check whethercin.eof() is true to see if you’ve read to the end of input.”This is OK – it is a more general language issue. Although it might be needed for the problem, it’s not the point of the problem.
Example conversations (OK or not?)
Person 1:“I don’t know how to code upDijkstra’salgorthim.”Person 2:“Here, I’ve coded it before, let me do it for you.”
Example conversations (OK or not?)
Person 1:“I don’t know how to code upDijkstra’salgorthim.”Person 2:“Here, I’ve coded it before, let me do it foryou.”Not OK, unless it is during a team programming time. Not sure why anyone would think this would be OK otherwise…
Example conversations (OK or not?)
Person 1: “I’m trying to create a pair of pairs, but keep getting a compile error. Do you know what the problem is?”Person 2: “You need to have an extra space in between your closing brackets, so that it’s clear you’re ending a template, not writing a steam operator.”
Example conversations (OK or not?)
Person 1: “I’m trying to create a pair of pairs, but keep getting a compile error. Do you know what the problem is?”Person 2: “You need to have an extra space in between your closing brackets, so that it’s clear you’re ending a template, not writing a steam operator.”Yes, this is OK – it has to do with basic syntax and how to use language features.pair<pair<int,int>, pair<int,int>>pair<pair<int,int>, pair<int,int> >
Example conversations (OK or not?)
Person 1: “Hey – I solved problem C. That was tricky.”Person 2: “I’ve been trying but keep failing on test case 4.”Person 1: “Oh, that got me, too. Make sure you are handling the case when the input is 0.”
Example conversations (OK or not?)
Person 1: “Hey – I solved problem C. That was tricky.”Person 2: “I’ve been trying but keep failing on test case 4.”Person 1: “Oh, that got me, too. Make sure you are handling the case when the input is 0.”Not OK. This is going to the specific test cases that can cause things to fail.The best response would be to stop at “Oh, that got me too.”A borderline answer would be “Make sure you’re handling edge cases.”
Online Resources
General statements
Since problems are public, it may be possible to find a public solution to the problem.THIS IS NOT OK TO LOOK AT!!!If you look, you will probably be able to find people who have implemented solutions, or have provided descriptions of solutions to the exact problem.You should not look at any coded solutions to problems until after you have solved it yourself (or until theupsolveperiod is finished).You should not look at descriptions of solutions until theupsolveperiod.In some cases, you’ll be able to find someone’s implementation of the nearly-identical problem.It is not OK to use this code, and you should probably not even look at it.
What IS alright to look at/use?
Code/descriptions from the textbookAnything we’ve done in classDescriptions of general/generic algorithms (not applied to the particular problem you are looking at)Borderline: Code to implement general algorithms. It is best to try implementing these yourself at least once before using them, and you should ensure you understand the algorithm before using the code for it. But, if it is a GENERALalgorithm implementation, you can make use of itLibraries/modules generally provided in a language
If you use external resources
Best to check with the instructor FIRST.Cite, CLEARLY, where you got them from. Don’t hide it in the code,It is good to notify the instructor that you’re doing this.If you are clear about where you got it from, the worst that should happen is you might not get credit for the question – there would be no honor code violation.
Example (OK or not?)
The problem was from the 2018 ACM World Finals. I found a presentation describing the problems from the finals and read through that.
Example (OK or not?)
The problem was from the 2018 ACM World Finals. I found a presentation describing the problems from the finals and read through that.Not OK during the initial assignment time. This would be describing how to solve that particular problem.OK during theupsolveperiod.
Example (OK or not?)
I didn’t look at the problem solution, but I found some test data that could be used for the problem, and used that.
Example (OK or not?)
I didn’t look at the problem solution, but I found some test data that could be used for the problem, and used that.Not OK. The test data is something that you should come up with, not something that you should use from someone else.During theupsolveperiod, you could discuss the type of test data you might want to use with other people, but you should write it yourself.
Example (OK or not?)
I used the suffix array code in the book to solve the problem.
Example (OK or not?)
I used the suffix array code in the book to solve the problem.Yes, that’s OK, since it’s from the book. However, make sure you understand how suffix array is working.
Example (OK or not?)
I didn’t look at that problem, but I found one on another site that was nearly identical. I just used that code and changed the output lines to match the format.
Example (OK or not?)
I didn’t look at that problem, but I found one on another site that was nearly identical. I just used that code and changed the output lines to match the format.Not OK! Just because it wasn’t the 100% identical problem doesn’t mean you can just copy the code from somewhere else.
Example (OK or not?)
I used myDijkstra’simplementation from 221 for this problem.
Example (OK or not?)
I used myDijkstra’simplementation from 221 for this problem.It’s OK, sinceDijkstra’sis a general algorithm, and it’s something you’ve implemented before.
Example (OK or not?)
I knew this was a depth-first search problem, so I looked at a website that showed how to do DFS.
Example (OK or not?)
I knew this was a depth-first search problem, so I looked at a website that showed how to do DFS.Yes, this is fine (in fact, it’s a good thing!) – you’re just looking up and learning about an algorithm.But, you still should not just blindly copy code from that website
Example (OK or not?)
I solved a really similar problem on my own a year ago. I just copied that code and modified it for this program.
Example (OK or not?)
I solved a really similar problem on my own a year ago. I just copied that code and modified it for this program.OK, but not the best practice. If you solved it once, you should be able to solve it again (and it’ll help reinforce how to do it).
Summary
The Goal
The goal is foryouto determine how to solve a problem (what the right algorithm/approach is), implement it, and test it.Things that interfere with that are not OK. You preventing others from coming up with their own solution, or you getting the solution from others, interferes with that.If you can’t come up with the solution yourself – that is what theupsolvingperiod is for.You need to use some common sense. The idea is not to prevent all discussion of problems
If InDoubt
Ask the instructor or teaching assistant!Better to err on the side of caution.Don’t ask others to put themselves in compromising situations!

0

Embed

Share

Upload

Make amazing presentation for free
Academic Honesty - Texas A&M University