![]() ![]() ![]() It rewards production of readable, maintainable code.It maintains the objectivity and automation friendliness of grading on program behavior.It solves your original problem of testing whether students understand the code they have written. ![]() Tune the original homework size and the exam requirements changes so that a student who understands the code and has well-written code can complete the exam exercise quickly, but one that started from scratch would not likely be able to complete the work. Then give each student access to the code (s)he submitted for the homework as a starting point for completing the exam exercises. What I would do instead is construct exam exercises that are relatively small requirements changes to homework assignments that students have completed earlier, ideally at least 2 weeks earlier. So how could you keep these qualities while testing for actual understanding? While I agree that good code structure, variable naming, and possibly comments can offer proof of understanding, they are all highly subjective. Using program correctness for grading has the desirable qualities of being objective and automation friendly. I assume that they do this by some combination of brute force trying things and SO search. If I understand your problem correctly, it's that students can create programs that behave correctly without understanding why they behave correctly. ![]()
0 Comments
Leave a Reply. |