Archive for February 3rd, 2009

Grading reports

Tuesday, February 3rd, 2009

I've spent today grading reports from my "applied programming" class.  This is really hard work.

It is not that the reports are particularly bad.  They are better than I expected.  Still, correcting all of them and doing my very best in being fair in how to grade them is a lot of work.

I base the grades mainly on the code they have written, not so much the report they've written about it.  After all, the class was on programming, not technical writing.

I thought about writing a test suite I could run their programs through and then base the grades on that, but many of the problems they've had in the code I've corrected so far wouldn't have been caught by this.  Stuff like storing numbers as strings and casting them back and forth between strings and numbers when doing arithmetic.

As a side note, I'm very confused about why they do this, but prefer to think that one or two of them came up with this solution and the other copied it, rather than believing that so many could be confused about strings and numbers...

Anyway, stuff like this prevents me from automating the grading.

Now I've come up with a scheme where I initially assign 100 points to each sub-task they've had to solve, and then subtract points for each error (and in one case added points for a particular nice solution).  I subtract 5 points for minor issues that affect the running time (in minor ways) but not the correctness.  10-15 points for errors that the should have avoided with a little thought, but again that do not affect correctness.  25-50 points for errors that leads to incorrect results (with the number of points varying depending on how unusual the conditions have to be to trigger the error), and 25 points for not testing obvious special cases in their test suite.  100 points are removed, of course, if a sub-task is not solved at all, or when it is wrong on all (common case) input.

The main problem with this approach is that there are a lot of subjectivity in which category I put an error in, and while I can argue for each case, I have to make absolutely sure that the same error always costs the same number of points.

So I have a list of common errors and their penalty, but whenever I spot an error I haven't seen before, I have to go back and look at the previous solutions to see if it is also there... so I keep looking at code I've already corrected over and over again.

I can copy and paste the corrections as I collect more and more errors, but having to go back and check the other reports from time to time is slowing me down...

I need to come up with a better way of grading for next time I teach the class...

--

34-56=-22

What do you name your boxes?

Tuesday, February 3rd, 2009

There's a piece at IT-World about the name we give our servers: Would a server by any other name be as functional?

I've always named my Linux boxes after Michael Moorecock stories, such as Stormbringer, Mournblade, Elric...

At our Dept. of Computer Science, we've used various naming schemes depending on the architecture.  Like X-men names for Linux machines or valutas for Sun workstations.  I am not in that department now, so I don't know what they use now.

I still use some of the machines, but those are Linux machines from a large computer farm (called the Horse Farm) in the server room.  Those were introduced to have a large number of interchangeble machines that everyone could log into to run various jobs, so they were just named horseXX where XX is a number.  Now they are called camelXX, after they were upgraded, so I guess it is now a Camel Farm, but the command to get an unused machine is still "fresh-horse".

At BiRC we have a similar setup with bircXX machines and the command "fresh-birc", but it is a setup we will replace with something better Any Time Soon Now, since explicitly logging into machines to run a few jobs doesn't really fit our needs as much as having a proper queue system where we can schedule longer runs and more easily deal with the much larger data sets we work on.

For our personal machines, we used to name them after amino acids, but these days whoever buys the machine just use whatever name scheme he likes.

As I said, I use Moorecock names.

What about you?

--

34-55=-21