One of my recent programming assignments in my Data Structures course included these instructions for an assignment.
This assignment is the next step after the Create a git repository assignment.
This assignment also uses repl.it and GitHub Classroom. The new part of this assignment is that it will be autograded using GitHub’s inbuilt Continuous Integration tools called Actions.
With Actions, every time you commit changes to the repository created by the links below, two automated tests will run:
- First, a 0 will be input to the program. The program is expected to respond by printing out a 0.
- Second, something else will be input to the program. The program is expected to respond by printing out a string that includes the characters “Hello World!” (excluding the “s).
If your program passes both tests, you get 100%. If your program passes 0 tests, you get 0%. If you program passes 1 of the 2 tests, you get 50%.
Future coding assignments will also use this method of grading.
As with the Create a repository assignment, you will need to tell me you’re done with the assignment by submitting something (anything!) here on Blackboard.
Use this link to get it from GitHub Classroom. Link removed as I just want students to use it.
Despite mentioning GitHub several times, and linking to it in the appropriate places, several students wrote their own code for the assignment and just submitted screenshots of it to finalize the assignment.
I’m at a complete loss as to how I could make this any clearer. I’ve also mentioned the autograding piece during classes and demonstrated what the passes and failures look like.
This is what a failure looks like:
This is what a pass looks like:
I set a due date for each assignment, including a one week no-penalty grace period after the due date. I also allow all students to submit their assignments up to three times, if done before the due date + one week grace period, so they can get feedback on anything that is wrong and have a chance to correct it.
I’m wondering what I am doing wrong that doesn’t facilitate their engagement.
I suspect that the current mostly on-line learning environment is partly what is wrong. Students are not as engaged as they might otherwise be. And I also suspect the issue is different for different students.
How do I react?
The most direct thing I’ve done with students who don’t follow the assignment instructions is assign a grade of zero for all students whose code either doesn’t pass the automated tests or doesn’t appear to have been written. I’m hoping that gets their attention and leads them to consult with me.
Thankfully, so far some of the students not following instructions have reached out.
What else can I do?
During class last week, I asked the students what I could do better as far as the assignments are concerned. They had several good suggestions:
- Make a short introductory video for each assignment, showing what they need to do.
- During class, give some tips on the Java or C++ language that might help them do the assignments.
- Make the test cases easier to understand. At the moment, they are not given the specific test cases run, just the information included above.
We’ll see if this helps!