CSC418/2504 Fall 2000: Marking Codes for Assignment 2.
Here's how to interpret the marking codes listed on your
assignment cover page, for questions 5 and 6. Dave Hill
a418hil@cdf.utoronto.ca
was responsible for these questions.
I was responsible for marking Q5 & 6 of Assignment 2. One the papers, I
wrote some 'codes' beside each question if there were common errors in the
answer. For all of these, (and especially for Question 5), take the
comments with a grain of salt. For some of the assignments, I
couldn't figure out why it didn't work -- but I knew it was giving the
wrong answers. As much as possible, I tried to indicate where I felt
the problems were... sometimes I may have guessed a bit. (Note:
the 'guessing' as to what was wrong
applies particularly to codes that are followed by a '?' (e.g., B?)).
Dave Hill
Codes for Question 5:
A - Projection done incorrectly.
Either you didn't bother projecting at
all (and YES, you did have to do this -- whether or not you felt it was
necessary... it was), or your projection code had problems. Maybe you
didn't project the polygon points (only the intersection point), maybe you
projected incorrectly... maybe something else.
B - Not returning the hits when there should have been hits.
I had some
test cases that I ran on everybody's code. If your code didn't report hits
on these test cases when it should have reported hits, you got this code.
C - Ray computation done incorrectly.
Could be anything from simply
forgetting to negate the Z-direction, through to being completely out in
left-field. The code for this should have been very straightforward -- if
you ended up writing >15 lines of code for this, you almost certainly
were doing it wrong! (Which is not to say I marked it wrong based on how
many lines of code you had -- just that it should have been simple code to
write).
D - Returning the intersection point incorrectly.
You computed whether or
not a collision occurred, but you returned the wrong point. Most often, this
was a result modifying the computed intersection point when projecting it onto
one of the axial planes. When this happened, you ended up returning an intersection
point that was totally incorrect.
E - General brokenness.
This was kind of my 'fall back' comment. I
couldn't figure out what you were doing at all -- if you got this comment,
there were serious problems with your code.
F - Wouldn't compile/run as submitted.
If you got this comment code, then I
had to mess around with your code to even get it to compile. Sometimes it was
just memory leaks, etc., other times, I'm not sure whether the code was ever
compiled before being submitted.
Codes for Question 6:
A - Angles messed up.
There were two different scenarios here. Some programs would
start out with the angles approximately in the right position, but then the angles would
get messed when redrawing. This was probably due to not pushing and popping the
transformations properly. As well, there were some programs that just didn't get the angles
correct at all. Again, probably a problem with getting the transformations pushed and popped
properly.
B - Angles start at the wrong place.
People who got this code didn't look at the
diagram closely enough. Based on the drawings, theta1 = 0 should have had the
robot's arm against its side. Some people had it sticking out straight (i.e., off
by 90 degrees). As well, there were some programs which got the first angle correct, but
then got the elbow angle wrong.
C - Dimensions wrong (forearm or hand).
Similar to the last code, this was another
case of not following the diagram carefully. Most commonly, the forearm ended up being
twice as long as it should have been. (If you're going to scale a 2-unit box, you need to
scale by half of the size). Additionally, there were some programs where the spacing
between the two hand segments was way off.
D - Didn't compile/run as submitted.
I had to hack your code to get it to run.
The biggest problem here was memory allocation errors, although there were a variety
of unusual errors that needed to be fixed to get the code to run at all.
E - General brokenness.
Again, this was kind of my 'fall back' comment. I
couldn't figure out what you were doing at all -- if you got this comment,
there were serious problems with your code.
Last modified: Wed Nov 22 12:25:20 EST 2000