A simple test:
If your behavior were shown to the class, your family, the tas or the instructor would you be proud or ashamed?
The professor has an assignment involving recursion. You didn't understand recursion in the text or the lecture. Which of the following behaviors is dishonest?
One way to judge is to see whether the work you present as a solution is your own, or was partly generated by someone else. In cases 1 and 3, the friend provided needed information. It is dishonest and could result in a grade of F, a letter in your file, and possible expulsion from ICS and even UCI. This type of unethical behavior would be difficult to spot, although the damage would eventually accumulate. By misrepresenting your knowledge you are fooling yourself. At some point you may find that computer science is inappropriate for you - then you will have wasted many years. Also employers will recognize your lack of ability and that is unlikely to make you very happy.