Tue, 22 Jan 2013, 00:52

A student writes:

> Professor Patt,
> I have a question about cheating and code sharing for lab 1. I am working
> on lab one and plan to turn it in by myself. Since we are allowed to work
> with others if we turn our programs in together, can we look at others code
> if we don't turn ours in together?

Actually, you are allowed to work with ONE other.

> The specific situation that I'm asking for is this: I've written some code
> for the isOpcode function which works, but the code I've written is very
> poor style and is inefficient.  ************************ I am pretty sure
> there is a better way to do this, and have thought of some ideas (like
> *****************************************************) but the ideas are
> either intimidatingly difficult or hardly beneficial enough to warrant
> rewriting the code. I want to ask a couple friends of mine what they did,
> but I don't know what would be considered cheating.
> Thanks,
> <<name withheld to protect the student who wants me better clarify cheating>>

I have several comments to make.  First, on the first two programs, you are
allowed to work with one other person, so why not find someone in the class
such that you solve it, he/she solves it, then you compare notes.  ...and, you
can even change your program after comparing notes if you wish.

After the second program you are on your own, or rather you are on
your own + my TAs + me.  The problem with having you compare notes on labs 3,
4, 5, and 6 is the 4th lab depends on a correctly working 3rd lab, and the
5th requires a correctly working 4th.  And by the time you turn in the 5th lab
you will have too much to do to find time to discuss coding.  So, bottom line,
save the comparing labs until after the semester.

Also, I need to point out that 460N is a computer architecture course, not a
programming course.  It is true that we computer architects in fact do a lot
of programming, but we are not evaluating you on this this semester.  The only
reason I am having you write code is that it is a good way to let you see 
whether or not you really understand the concepts.  Almost anybody can be good 
at explaining how a computer works at a cocktail party.  It is a very different
matter getting your programs to execute correctly.  So, we care that you get
it correct and in 460N don't care how inefficient they run.


Yale Patt