Programming projects are the core functionality offered by Mimir Classroom. By combining our compiling, testing, and plagiarism detection technology with your test cases, we make grading easy while providing valuable feedback. Below are the 4 steps for creating a project in Mimir Classroom.
To begin, go to the course for which you want to create a project and then click Create Project.
1. Basic Settings
The first page of the project creation wizard contains basic settings including the Name, Description, and Programming Language. You can also choose to enable our group project feature here.
Give your project a name and describe the task or objective in the description (these fields can be edited at a later time if needed). Select the project's programming language from the drop down list. If you don't see the language you need, click the orange chat bubble in the bottom right corner of the screen and ask us to add it to the platform.
Our servers are very flexible so we can generally add a new language within hours of the request. You can also email email@example.com to submit a request.
2. Submission Settings
On this tab you need to fill out four fields. The Release & Due Dates determine the dates and times during which the project will be open for submissions. You can also leave these empty to leave the project in a draft mode.
The Solution Code field is where you will upload a zip file of the solution to the project. The solution code will let you ensure that your test cases are working properly.
The Submission Limit is the number of times each individual student will be allowed to submit this project. Once a student meets the submission limit they will not be able to submit again. By default a student's project grade is determined by the highest score out of all their submissions (you can change this setting using the Grading Setting field in the third tab).
You can also supply Student Starter Code, which can be a zip file containing code files and instructions to help your students begin working. Usually instructors will at least supply a very basic starter code for their students that sets up the basic standard in/standard out processing.
3. Other Settings
All settings in the third step are optional customization tools.
In the Grading Setting field, you can choose whether to a student's project grade is determined by the most recent or the highest scoring submission.
Manual grading is a useful tool which will let you review the code yourself and add points to the total grade of the project based on your observations. If you enable manual grading you will be given access to a page that displays a students code and their test case results alongside a field to score their code. When you save their grade it will take you to the next student who you have not graded. This score will be added to the score of the auto grader, and the value you put in for Manual Grading Weight will be added to the total maximum of the project.
The Plagiarism Threshold setting is used by our comparison algorithm to determine whether or not two submissions are similar enough to indicate cheating. The plagiarism algorithm gives a score for how similar two submissions are. If this score is equal to or greater than the threshold you give here, it will be visible in the "Plagiarism Report" of this project.
This means a lower threshold would yield more submission results labeled as potentially plagiarized but more likely for a false positive, and higher numbers would yield fewer results but a higher percentage of similarity between results. We recommend you experiment with this setting to determine the right number for you.
Late Days are the last setting you will configure if you want your students to be able to submit after the due date and receive a penalty. Allowed Late Days determines how many days after the due date they can submit. Penalty Per Late Day determines what percent of their grade they will lose for every day late.
Once you've created a project, you can create test cases and start allowing your students to submit to receive fast and useful feedback!