# Autograder design thoughts (group 6)
###### tags: `ccss-summer-dev-projects`
## When a student uses the platform, what should it look like?
- Clear instructions and easy to use UI
- Place to go for docmentation on how to do thing
- Maybe a repository of videos on how to use the platform (like on Carleton website)
- System to enforce due dates (ex. the autograder for a particular assignment closes once a date has passed)
- Simple and straight to the point
- Some sort of login in system (studentID maybe as a username and a password)
- Maybe a class list (classes that support the autograder)
-
### To consider
- Possible Django and SQL for the backend for tracking accounts
- Maybe 2FA but probably not a concern short-term
- Disabling of assignments submission can be done with CSS and React (disabling components)
- There will be difficulties if students get extensions (how to give a certain student the ability to submit but others not)
- Ex. Deferred assignments
## What a prof uses the platform, what should it look like?
- should have list of students who sumbitted
- Easily export data by class
- A page to view overall statistics by class(avg grade for a given assignment)
- Ability to add assignment due dates and modify due dates
### To consider
- What does creating a new assignment look like?
- Backend is going to need to support exporting in .csv files to upload to Brightspace
- Is MOSS going to be built in?
- Are TA's going to manually read the code for students still or is the auto grader going to check for code plagarism?
## When a student submits an assignment, what considerations should there be?
- Grade feedback (probably a website/page that displays all the submissions of the person for that assignment)
- Multiple stages: ex. program failed to start (compile errors), missing test cases, program run time (relevant for COMP 2402)
- There should be still some seperation between what the problems in the students code are and what the students see
- Ideally, students should not be able to game the system to get correct marks
- Should still put onus on the student to correct their mistakes, autograder should just point them in the right direction
- If student didn't submit correct file format (ie. .pdf)
### To consider
- Load balancing (make it so if a bunch of people submit at the same time, then the server's speed isn't massively hampered)
- Might need to upload files to the server and then the server runs those files from there, instead of the students computer connecting to the server
- Maybe a queuing system for larger classes (ex. COMP 1405 and COMP 1406)
- If the system is going to be expanadable, React or some other framework might be necessary to make the expansion easier
- Is data going to be deleted after the semester is over, how is the data going to be maintained long term?
- Could possibly go cloud for long-term data handling, but this is uncharted territory