05 August 2011

Is typing and running code a form of cheating?

I received this email from a player today:

Is it okay to use sqlplus at all while taking a quiz? I know reading oracle documentation is acceptable, and typing the quiz in sqlplus verbatim is not allowed, but are we allowed to test basic concepts in sqlplus at all? I have been assuming it is not allowed. For example, I wasn't sure if IS OF type returned true if the value of the variable was the type or if the variable was the type. The documentation isn't always clear. If I was allowed to use sqlplus, I would have tested out a few statements to verify the expected outcome of that statement. 

The answer is: it is perfectly all right to use SQL*Plus, Toad, SQL Developer, PL/SQL Developer, etc. to write and execute code to help you answer the quiz.

You should not (and, in fact, you should not be able to) copy and paste code from a quiz, and then simply execute it. But as I note, you should not be able to do this; most quizzes present code as an image. If the code is accessible for copying, then it is not (or, shall I say, should not be) a competitive quiz (rankings and prizes) and we don't really care if you copy and paste.

But if you want to take the time to type in a block of code (or more), then execute that code to see the results, please go right ahead. The most important objective of the PL/SQL Challenge is to improve your knowledge of PL/SQL (and SQL and APEX and....). I can think of few better ways to do this then to write code. 

You will, of course, be "penalized" for taking the time to write code; your score will be reduced by the extra time required to do so. But it is definitely not cheating.


  1. I'll put my hand up and say that for many quizzes I'll run some code in SQL*Plus. This incurs a time penalty, but it's not as great as that for getting the quiz wrong.

    Being able to quickly write a simple bit of code that will correctly test an assumption is an important skill to have. So many times I've had people ask me a question, and instead of just answering "off the top of my head", I'll open SQL*Plus in front of them, write a quick test, and demonstrate it. (Sometimes the test will reveal that I don't have everything "in the top of my head" as accurately as I thought...)

    I agree with the comment about *writing code* - I learn things best by doing it myself. Some people learn things most effectively by listening to lectures or podcasts, or reading books. For me, however, I need to have the code flow from my own fingertips - trying different inputs and examining the output in real time. Only then does it become so internalised that I stop having to look up the documentation every time.

  2. Hello Jeff, All,
    I think you said it excellently for me as well :) :)
    We seem "to belong to the same party" ...

    Trying out things is nice, but sometimes I feel
    that I am kind of "losing my self-confidence" and just trying out things that I in fact do know perfectly well...

    Other occurrence is that you say to yourself: "Oh, well, I am not 100% sure of this, so SQL*PLUS is at hand and I better try it" ... and then you make a small mistake and lose a lot of time... and maybe also give up at some point ... while simply thinking of it without trying out anything would have worked 100% well ...

    Trying out things with your own fingers,
    by typing code and not just cut/pasting it
    is indeed the best way to learn things,
    if we only could do it before the quiz comes ...

    Daily working practice, however "colorful" and full of problems sometimes, probably will never touch many of the topics we encounter in the quiz ... so I need to create myself a kind of
    "private self school" and learn them alone, and practice them as much as possible on my own.

    For me, probably because most of the time I learn without having a database at hand,
    reading books remains a (or "the") top way of learning things ... and there are lots of
    them that just await us ...

    I am sure this topic will never be completely exhausted ...

    Thanks & Best Regards,
    Iudith Mentzel