Originally published at The Renegade Coder on March 11, 2019
Since I started teaching, I’ve been trying to find ways to automate my grading respon...
For further actions, you may consider blocking this person and/or reporting abuse
Why not teach them JUnit as a way of learning the language and doing TDD? While their tests may not be correct, it will help them to think about functionality ahead of time.
This will also change your testing requirement to behavior of the solution-- that is, blackbox testing. To your point, at this level, the guts of the projects may not be as important as a functioning project so maybe this is enough.
We actually do teach JUnit in the second CS course. But, there are a lot of complications that make it hard to teach in the first place. In particular, it’s a 3-credit intro course (2 hours of lecture and 1 hour of lab a week), and a lot of the students have no interest in coding. Of course, the main issue was I didn’t have any control over the curriculum, though I suppose I could have snuck a lesson or two in.
They piloted a new way of doing projects last semester which had an online textbook where you could submit code for testing. It would show all the test cases you missed and how you missed them which I thought was pretty cool. Granted, it doesn’t really teach them how to test code themselves.
Oddly enough, I learned JUnit when I was in my first Java class, so I get where you’re coming from. It’s possible, and it would be great if the course moved in that direction in the future.
As a former adjunct professor, I can appreciate this. However, how do the students get feedback on ways to improve their code?
So, that’s kind of the cool part of a script like this. It handles the heavy lifting in terms of making sure that each solution is correct. Then, I have more time to actually comb through each solution and provide feedback.
At the end of the day, I still have to manually enter grades, so I take that opportunity for a little complement sandwich.
nice!
🔥🔥🔥🔥🔥
Maybe incorporate the use of linters, style guide & CI/CD process.
Which email the student's results of their program if it fails the linter check?
I like the idea of using a linter! I might try to add that as a step to the Python script. That said, we don't really enforce any sort of style as students are learning the basics. I encourage good style practices, but we don't teach anything formal at that level.
Unfortunately, the project just has too many constraints to be able to use existing tech like CI/CD, so I had to roll my own project. I'd also love to get students using version control, but, again, there's just too much they don't understand at that point.