The Hidden Perils of Automated Assessment
blog.brownplt.org
blog.brownplt.org
Wait, why would you do that? Algorithms are going to be terrible at judging the hardest and most important part of writing code: how maintainable it is.
Garbage code, through brute force, can eventually pass all test cases -- I hope that is not what schools are teaching.
The idea of using test cases isn't a bad way to form part of an evaluation, given the code getting worked on has a defined interface spec. It can also be done the other way around: run code that produces various bad results to exercise the student's test cases.
However, more often than not in the real world specs don't exist at this level, and by using them, they are going to lead people to certain implementations (rather than showing whether the student can come up with something appropriate on their own). From my experience in school, they often also force a compromise design because the imposed interface has shortcomings (eg: functions that use several output parameters rather than returning an object, or force a certain functional composition that is entirely different than what I would do and how I think).
1. It's PART OF the assessment. There's also a ton of human review. But humans aren't tops at checking for correctness. Using automation helps us run against a large set of tests, both normal and corner cases, and helps us figure out when things have gone wrong. Can even help the human find things they may have missed and need to re-review.
2. Also, some systems, like many MOOCs, use largely or only automated methods for "scalability" reasons. I don't defend this practice, but it's the reality. Our view is that those who are doing that need to be even more careful about making sure their practices make sense.
3. > It can also be done the other way around: run code that produces various bad results to exercise the student's test cases.
Which is something the article is actually about (eye roll). Sometimes helps to read beyond the first sentence.
This is a pity because we're currently experimenting with using automated assessment as part of our hiring process and understanding pitfalls would be very useful.
For your convenience, here's the paper link again:
https://cs.brown.edu/~sk/Publications/Papers/Published/wkf-w...
I don't think the visualization is all that "unusual": it's a standard presentation called a KDE [https://en.wikipedia.org/wiki/Kernel_density_estimation].
If you just want to understand the graphs, the x-axis is Rate and y-axis is Density, because it's a KDE (as the text says just above the first graph). Think histogram (which it also says): How many students had this particular true-positive/true-negative rate?
But I think you really will understand this better by reading the paper.
Anyway, the label is "density" because it's a KDE, which it says just above the graph: "Visualized as kernel density estimation plots (akin to smoothed histograms)".
Can we get our grade back now?