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