Thanks for clarifying the problem Steffen. I've never really taught SQL using CodeRunner and your example is interesting.
The general intent with CodeRunner in all languages is to assess whether code produces the right output, without regard to how it does it - objective rather than subjective grading. I also believe students should be given the opportunity to correct any errors, as you can in real-life programming - authentic assessment. In our courses we do have strict style guidelines, enforced by style checkers, but style checking is free and students must correct their code to conform to the style guidelines before it is is even accepted for grading.
The general intent with CodeRunner in all languages is to assess whether code produces the right output, without regard to how it does it - objective rather than subjective grading. I also believe students should be given the opportunity to correct any errors, as you can in real-life programming - authentic assessment. In our courses we do have strict style guidelines, enforced by style checkers, but style checking is free and students must correct their code to conform to the style guidelines before it is is even accepted for grading.
Your example touches on all these issues:
- The code has leaked through into the output in the form of column headers. A solution might be to specify the column headers specifically, e.g. as Total with a capital T. The student would then have to write SELECT SUM(pop) as Total and whether they chose to use capitals or not, with spaces or not, would be irrelevant.
- Alternatively, you might have a style requirement, such as requiring all SQL keywords and function names to be in all-caps and without spaces following function names. Then the column header would have to be SUM(pop) and the other answers would be wrong.
- I would hope that students can in any case resubmit their answer for a small penalty if their first attempt is wrong. For formative assessment we are currently using no penalties and even for summative assessment we allow at least on zero-penalty wrong submission, e.g. a penalty regime of 0, 10, 20, ...
Hope that helps and that you find CodeRunner useful.
Richard