3 ms·
My teaching experience is limited, but for teaching compsci I've had good results with programmatically graded assignments, where the students get unlimited sub
by oconnor663 5y ago
My teaching experience is limited, but for teaching compsci I've had good results with programmatically graded assignments, where the students get unlimited submissions but also machine-enforced deadlines. (I liked this when I was a student, and I've liked structuring my own class this way too.) One of the big benefits is that you can be maximally clear about what the problem set is asking the students to do, because you give them an example input and an example correct output, and for each submission you tell them what their output should have been. But each grading run uses a randomized input, so they can't just hardcode the answers.
Compsci is perfect for this, because students can fix their bug quickly and resubmit their whole assignment. For math, I guess you'd want to avoid having them repeat problems they already got correct. But for other subjects that don't really have a place for "random input", I guess this doesn't work?
- mr_cyborg 5y agoAs a student I’ve taken computer science classes with and without some kind of autograder. I’ll say that depending on how it’s set up it can be complete nightmare fuel. In one class I recall that 3/4 of my time was formatting comments correctly to not trip the chest detection that came from not “properly attributing” the code I wrote. Also the assignments were written to the autograder. So instead of saying “write a method that does X” it would say “write a method named NAME that takes in XYZ parameters and outputs exactly in QRS format”. After having taken so many open-ended assignment classes that really hurt my brain.
- oconnor663 5y agoUgh automating the cheat detector sounds awful. The tool we used had a nice similarity detection feature for me to look at, and I used it by hand a few times, but of course it had false positives. > write a method named NAME that takes in XYZ parameters and outputs exactly in QRS format Yeah I hate that too. Personally I went with "your program should read JSON from stdin and write JSON to stdout". For students who had never seen JSON before, that was definitely some extra friction. But the upside is that it's something they're going to see a lot of in the real world.
- professoretc 5y ago> “write a method named NAME that takes in XYZ parameters and outputs exactly in QRS format”. That's a pretty realistic requirement, though, isn't it? If you're writing a class that's supposed to interoperate with other systems, it's not like you can just name things whatever you feel like. They have to fit the expected interface.