The Ethics of Problem Solving

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.

Note by Harel Dor
5 years, 11 months ago

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold
- bulleted- list
• bulleted
• list
1. numbered2. list
1. numbered
2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in $$...$$ or $...$ to ensure proper formatting.
2 \times 3 $$2 \times 3$$
2^{34} $$2^{34}$$
a_{i-1} $$a_{i-1}$$
\frac{2}{3} $$\frac{2}{3}$$
\sqrt{2} $$\sqrt{2}$$
\sum_{i=1}^3 $$\sum_{i=1}^3$$
\sin \theta $$\sin \theta$$
\boxed{123} $$\boxed{123}$$

Sort by:

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 $$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.

Staff - 5 years, 11 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.)

- 5 years, 10 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, see High School Math II, Problem 1, which asks students to explain why their graphing calculator screwed up.

Staff - 5 years, 10 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.

- 5 years, 11 months ago

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.

Staff - 5 years, 11 months ago

Side note: Did anyone catch my pun on "The Art of Problem Solving"?

- 5 years, 11 months ago

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).

- 5 years, 10 months ago

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.

- 5 years, 10 months ago

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...

- 5 years, 11 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.

- 5 years, 10 months ago

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.

Staff - 5 years, 10 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.

- 5 years, 10 months ago

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.

- 5 years, 11 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?

- 5 years, 11 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.

- 5 years, 11 months ago

These problems help me to clear my concepts and strengthen my logical thinking. It also helps to increase my knowledge.

- 5 years, 10 months ago