We all know it's unethical to obtain your answer to a problem by copying someone else's answer, but what if the two of you worked together? What if the "second person" is not a person at all, but a computer program you wrote? Where do we draw the line between assistance and cheating, and just what tools can you use to solve a problem?

These are just leading questions to get the discussion going, I hope we can cover every possible idea for what is and isn't an ethical way to solve a problem.

## Comments

Sort by:

TopNewestTo me, the usage of a computer program is valid IF AND ONLY IF you completely understand AND would be able to replicate the result. While I know that programs like Mathematica, Wolfram Alpha, Matlab, etc are extremely useful and powerful, they should be merely computation aids that you use because you're lazy, and not a genius entity that you resort to because you do not know how to solve the problem. If you're solving a problem by saying "My computer tested all \( 1000^2\) pairs of integers \( (a,b)\) and only found these solutions", then you're approaching the problem without any understanding, and are no closer to being able to solve the problem in more generality. While you may have 'solved' the problem, you are unable to formulate any proper through process with regards to the problem.

Of course, we are unable to stop you from using a computer program to solve these problems, and do not intend to do so. At the end of the day, it is you who is benefitting (or not benefitting) from doing these problems. These problems are not geared towards testing your coding ability, I'm not your teacher (nor parent) and do not need to ensure that you have learnt particular material.

Note: If you want to submit a solution by coding, please make sure you justify any and all possible sources of error, like transcription error, memory error, computational errors (fractions, exponentials etc), rounding errors and such. – Calvin Lin Staff · 4 years, 7 months ago

Log in to reply

– Arndt Jonasson · 4 years, 7 months ago

Has it happened yet at all that someone has submitted a program as solution, and you deemed it a valid proof? (I'm not going to try it.)Log in to reply

High School Math II, Problem 1, which asks students to explain why their graphing calculator screwed up. – Calvin Lin Staff · 4 years, 7 months ago

I have not accepted any pure programming solutions, since they provide no justification for why various errors do not occur. As an example, seeLog in to reply

– Harel Dor · 4 years, 7 months ago

I have a question about that last bit, when would you say it is acceptable to submit a solution by coding? You seem against brute force programs, but I can't think of any others someone would make instead of just using a calculator.Log in to reply

These problems are not designed to be solved with a computer, but I know that there would be students who will insist on using a computer just to obtain the correct numerical answer, even if they have no concept of the mathematical theory behind the problem. Such a solution doesn't help you build any understanding, and would eventually be pointless for you to do so. There are much better programming questions out there, like Project Euler, or Python Challenge.

Personally, I do not care if you can only solve them through massive computing power. It's of no use to you, and you might just as well go create a variety of other problems (by changing various parameters) and code them up. In the long run, the value to you is negligible. – Calvin Lin Staff · 4 years, 7 months ago

Log in to reply

Side note: Did anyone catch my pun on "The Art of Problem Solving"? – Harel Dor · 4 years, 7 months ago

Log in to reply

Is the following strategy allowed:

For example, the question asks for f(123) I write a computer program which solves f(n) for some very small n (perhaps up to 8), but it could have been done by hand in a reasonable amount of time. Then I notice a pattern in those solutions. I am able to figure out why the pattern works and to prove it mathematically. I use the newly obtained pattern to compute f(123). – Ivan Stošić · 4 years, 6 months ago

Log in to reply

I thought I'd share this article on computational power (more like miracle). Very good for inspiration, but thats just about it :) I don't think these things happen any more. – Harshit Kapur · 4 years, 7 months ago

Log in to reply

oh my god ... i just thought about using a compute program to solve a problem... then i decided it'd take a long time to write such a complex program../. so i thought better of it... – Dilip Kumar · 4 years, 7 months ago

Log in to reply

– Arndt Jonasson · 4 years, 7 months ago

I think that if you have time enough after solving the challenges here in the spirit of this site (that is, providing a stringent proof - if possible short and elegant), it can be educational (at least if you like programming at all) to try to write a computer program to solve the same problem. Sometimes it's much easier, sometimes much harder.Log in to reply

My concern however, is that students will be spending most of the time "checking all possible integer pairs from 1 to 1000", and get a false sense of accomplishing a 'hard' task. A problem that is worth 500 points in mathematics, could be worth 30 points in computing, if all that it requires you to do is to run through a million test cases. – Calvin Lin Staff · 4 years, 7 months ago

Log in to reply

– Ethan Berl · 4 years, 7 months ago

Yes, I think this is the real issue here and why computer programs as solutions should be avoided. If there were a side of Brilliant which was specifically focused on computer science (which would be really cool btw) then the problems would be correctly calibrated and actually test programming ingenuity. The math should be done with pencil and paper.Log in to reply

I think that if you're truly working with someone then it's not cheating. You don't have the intention of copying someone else's answer. As for the computer program, you wrote it, so it's your work. It's like using a calculator. – Sherry Sarkar · 4 years, 7 months ago

Log in to reply

– Harel Dor · 4 years, 7 months ago

Interesting. I would like to note that a calculator can only work as fast as you can input equations into it while you can set up a computer program to cycle through thousands of inputs a second, then choose the one that gives the most satisfactory output. Does a brute force algorithm (one that goes through every possible set-up of a problem without actually deciding which is more logical) count as guess and check?Log in to reply

– Sherry Sarkar · 4 years, 7 months ago

Reading yours and Calvin's answers made me rethink what I said and I guess what I meant to say was that your codes should only be used for computations when solving problems, not for brute force. Using brute force is not solving the problem, it's answering the problem. (Here in this website we want to solve the problems, but in the real life problems just answering is okay since you're not copying anyone else's work. Plus, I don't think guess and check is really problem solving unless it is only two or three times. None of the problems here would actually require you to go through a large number of cases.Log in to reply

These problems help me to clear my concepts and strengthen my logical thinking. It also helps to increase my knowledge. – Ashish Kumar Singh · 4 years, 6 months ago

Log in to reply