I think coding assignments should also include style check/marking. A university should pick whatever standards out there and follow it for most of the situations. Preferably a standard that is used by the industry (For Java, follow SUN/Checkstyle, for C++ follow Google or some other open source project)
Students should write assignment code as if it's their professional job to do so even if they're not majoring in CS.
They should:
- Write unit-test (doesn't matter if they want to practice TDD or not, as long as when submitted, there should be minimum X unit-tests or so)
- Be given access to source code repository, and they have to write informative logs
- Write decent comments and learn how to use a template license at the top of their code (make all code GPL or BSD, doesn't matter, it's just an assignment and it's just a way to show them the importance of code license).
Yes, it sounds silly for just an assignment, but then again, they are students. Most of them needs to be taught/told.
And yes, sometime these things could be gamed as there is no hard-fast rule especially in terms or marking (i.e. subjectives), but the TA and instructor should mark them based on their effort (for the subjective parts)... even if it's just a checklist.
At least we're forcing a bit of a good habit to them.
For example, ask them to fix bugs in a prepared project with a number of subtle errors without unit tests and comments, then another project with good tests and comments. After that, when you give them a group term project, not only will they be graded by you according to the code standards you set, but their peers will demand and expect that they write the code well.
Students should write assignment code as if it's their professional job to do so even if they're not majoring in CS.
They should:
- Write unit-test (doesn't matter if they want to practice TDD or not, as long as when submitted, there should be minimum X unit-tests or so)
- Be given access to source code repository, and they have to write informative logs
- Write decent comments and learn how to use a template license at the top of their code (make all code GPL or BSD, doesn't matter, it's just an assignment and it's just a way to show them the importance of code license).
Yes, it sounds silly for just an assignment, but then again, they are students. Most of them needs to be taught/told.
And yes, sometime these things could be gamed as there is no hard-fast rule especially in terms or marking (i.e. subjectives), but the TA and instructor should mark them based on their effort (for the subjective parts)... even if it's just a checklist.
At least we're forcing a bit of a good habit to them.