At the moment of writing this, I’ve briefly gotten stuck on an introductory OS course assignment – just a review of “common tasks in C.” While I’ve been stumped for all of five minutes, it’s brought my wandering attention to a source of mild frustration that I’ve noticed in similar exercises.
The submission system is more or less what you’d find on practice problem sites like HackerRank, CodingBat, or TalentBuddy (RIP): write some code, send it off for a handful of test cases, and get pass/fail feedback. This kind of thing is fine for trivial problems, but it’s a little annoying when anything breaks… because you can’t see the test cases. This is about as useful as your car’s “service engine soon” light.
It doesn’t take too much thought to figure out that exposing the test cases would allow lazy developers to hard code the correct answers (much like K12 standardized testing – one wonders why our education system is in its present state). But do we really care about those developers in the first place? Not to mention that this bears no resemblance to real software engineering; I doubt any sane team member would break your code and leave you alone with a bunch of red boxes. Heck, you ought to be testing your own code anyway.*
So practice systems: show me your test cases! I just want to fix my bugs, learn from them, and get on with my life. I don’t think that’s too much to ask.
* I would love to see an online system that allows users to practice writing tests in addition to solving existing challenge problems. Feel free to steal the idea, or contact me if you want to try to spin something up together (but be warned, I have zero experience with submission systems :P ).