If you are tempted to use something which has not been covered in class in one of your programs...

Here's what to do and WHY to do it

What: discuss it with your TA or with Dr. Keen FIRST, before you turn it in. We will ask questions to see if you truly understand what you are doing with it. We will definitely ask you WHY you are using it when it is not needed in the program. Program assignments are designed to use what has been taught in class. It is not certain we will say "don't use it" but the odds are very high.

WHY do we do this? We are not trying to "stifle your creativity"!

Here's what experience has taught us. If someone is cheating by getting help from someone outside the class (which is addressed in the syllabus, under "Plagiarism/Cheating") one signal is that they are given things that were not taught in the class, that are more advanced than what they have seen in class. It will automatically put you under higher suspicion of cheating if this is detected.

The same thing goes if a student finds some code on the Net that "looks like it will work" and pastes it into their program without understanding it at all. It is cheating.

The programs are designed to use the material covered in the class; that's their purpose - to exercise that knowledge. If you are convinced there is no way to do the problem using that material, you are mistaken. There is something in the class that you don't understand as you need to. That is a red flag to go back and get some help, NOT to go Googling to see what you can find. If you do find something out there which accomplishes the task, you are still not better off. You now know about a feature which will NOT be tested on (unless it is covered later in class), but you do not have a full understanding of the material that WILL show up on the tests, future programs, the final exam.

Your TA is tasked with grading either 20 or 40 programs as quickly as possible, while being fair, consistent and correct in every case. This is a HUGE job and gets bigger as the semester goes on. If students "embellish" their code with things that are not needed for the problem, that is that much more the TA must wade through to find the things they are supposed to grade.

If you DO understand the feature you want to add, we will ask you to write two versions, one with the feature and one without. You should be able to do that. Turn in the simpler version for grading, show the fancier version to me or your TA for feedback any time. Certainly we think you SHOULD be trying out things on your own, and we'll give advice at any time. That kind of work will actually improve your grade by giving you more practice and more confidence in your skills.

You will NOT get more points for doing a fancier job. The syllabus actually states that you can lose up to 75% of the points possible if you use these things without prior permission.

You may be able to use "power tools" but can you use "hand tools" to do the same job? A good programmer uses simplicity where it works - there are enough bugs without introducing unnecessary complications.

"You have to learn the rules to break them properly."

If Every assignment seems trivial to you, then why not take the Bypass Exam, get the 3 hours credit and move on to more interesting stuff?