I’m looking for suggestions of how to manage a group of about 50 students who need to turn in assignments which are scala programs which I need to grade. I have not 100% determined the grading criteria, but I assume there will be some account for (1) whether the program compiles (2) whether it runs on a set of secret test cases, and (3) perhaps in some cases performance calculation based on a range of different input sizes.
My current idea is that each student submit a single file named according to his student-id-number and assignment number. The file is required to implement a certain interface, but not the main program. I’ll have a wrapper program which will either be an extra file which will import their class, or I’ll have a script which simply wraps their file with a prolog and epilog.
I’d be happy to hear suggestions from people. Is there already a framework I can use for this which is not protected by paywall or copyright (the engineering school is for-profit, so in a sense I’d be using any such existing software for-profit).
Questions I don’t know how to address at this point is,
- Is it possible to run students code in my environment, this seems very insecure, what if the students code accidentally tries to remove my home directory?
- Are there library version issues I need to understand? I.e., do I have to care about which version of scala and various libraries I’m using or which the students are using?
- Is a single file student-submission sufficient? Or do I need to accommodate multiple submissions, and thus have to support some sort of build-script nightmare?
- Is there an infrastructure where each student can submit a single file thousands of times before a deadline, no student and intentionally or accidentally see or modify another student’s submission, and thereafter I can easily loop through all the files in batch? Students submitting attachments via email seems like the wrong solution.
- Does Scala have naming conventions for files which prohibit the students from naming their file with their student id number?
- What about file encoding? The students are mostly French. What if they use special french characters in the file or in their code?
val vàlúê = 100
Other concerns that I’m overlooking?