I have some assignments that are 15 - 20 questions long. The students can submit them as many times as they would like up to the due date. In MasteringChemistry by Pearson each individual question is submitted - not the entire assignment. This allows the student to focus on one problem at a time, they get immediate feedback on that one question, and it doesn't force them to do a problem they understand time and time again. This is a much needed feature in Canvas assignments and quizzes. Currently, students have to complete the entire assignment, get feedback on the entire assignment, and then redo the ENTIRE assignment instead of just the problems the student missed. MasteringChemistry accomplishes this by having a submit button on each individual question. The teacher can choose to take off a certain percentage per question attempt. For instance, each time the student gets it wrong 3% of the points for that question would be deducted from that question. MasteringChemistry also has a give up button where the answer is shown and the student gets no credit and the teacher can decide how many total attempts to allow the student before they receive a zero for that question. I know I can create a one question assessment but that would take forever for me and the students - lots of clicks instead of just one.
TLDR: Each question should have a submit button, the student gets immediate feedback, and can retry that question. The teacher can decide on a percentage deducted per error, up to a certain total percentage.