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.
Easy Math Editor
This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.
When posting on Brilliant:
*italics*
or_italics_
**bold**
or__bold__
paragraph 1
paragraph 2
[example link](https://brilliant.org)
> This is a quote
\(
...\)
or\[
...\]
to ensure proper formatting.2 \times 3
2^{34}
a_{i-1}
\frac{2}{3}
\sqrt{2}
\sum_{i=1}^3
\sin \theta
\boxed{123}
Comments
To 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 10002 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.
Log in to reply
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
I have not accepted any pure programming solutions, since they provide no justification for why various errors do not occur. As an example, see High School Math II, Problem 1, which asks students to explain why their graphing calculator screwed up.
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
I am against using computer programs, as it requires little thought on your part. These problems are set up to not require the use of a calculator, though I understand that certain students may be lazy (or extremely error prone) and hence extremely reliant on calculation aids.
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.
Side note: Did anyone catch my pun on "The Art of Problem Solving"?
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).
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.
Log in to reply
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
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.
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...
Log in to reply
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
Just be aware that the problems were not designed to test your computing abilities. Some of them lend themselves towards good computing projects, especially when various restrictions on the problem has been removed.
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.
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.
These problems help me to clear my concepts and strengthen my logical thinking. It also helps to increase my knowledge.