First things first, let's create our first CodeGrade assignment to benefit from all of CodeGrade's awesome tools. If you work with a Learning Management System (e.g. Canvas, Brightspace or Blackboard), this is done from inside your LMS. If not, you can create your assignment directly inside CodeGrade.
A rubric is the heart of your assignment on CodeGrade. Rubrics, or grading schemes, will make grading assignments clear and efficient. Rubrics help with communicating to your students how they are being graded, making grading more consistent between different graders and nudging you to articulate clear goals and categories in your assignment.
A rubric consists of one or more rubric category. Each rubric category can be either manually tested or automatically tested (if you set up tests for it in AutoTest, see step 4). There are two types of rubric categories:
Discrete rubric categories are traditional rubric categories. They allow you to create multiple levels within a category. While grading you can select the level the student achieved. Perfect for manual grading.
Continuous rubric categories allow you to set a maximum amount points, and give everything between 0 and the set maximum for that category. These categories are especially useful when automatically grading using AutoTest.
Now that we have set up the rubric of the assignment, we know what we will grade the students on. For the students to meet the requirements of your rubric, they need to hand in certain files. With CodeGrade's hand in requirements, you can specify exactly which files students are allowed to hand in, are not allowed to hand in or are required to hand in.
The benefits of this are that it makes manual grading less cumbersome or that it will allow you to make specialised tests for autograding. This is also a good way to communicate to students what we expect them to hand in and warn them early on if they are attempting to hand in wrong files.
After making the requirements clear to your students via the rubric and hand in requirements, you can now automatically grade some of these requirements using CodeGrade's AutoTest. You can use AutoTest to specify and create tests that will fill in certain rubric categories that you have created. Multiple test types are available in CodeGrade, which can be used together depending on your needs and wishes.
CodeGrade's autograding system offers you all flexibility you need, you can upload any file and install any software you need. Luckily, for most easy assignments in common programming languages (like Java, Python or C#), all software you need are already installed (see full list here) and you do not need to do any configuration. With all of this flexibility come a lot of options you can use to create very advanced autograding for your assignment. You can find guides for all of these options here. For now, let's just set up two easy tests to check the functionality of an
IsEven.java file the students has handed in.
Now that the basics of your CodeGrade assignment have been set up, it is a good practice to confirm that everything works correctly before opening your assignment to students. Especially continuously testing out each iteration of your AutoTest is recommended, so you can make sure grading is done as you expect it to go and no typos or errors are present.
To do this, we can simulate a student hand in by using the Test Student option in CodeGrade. When uploading your example solution as a Test Student, you can confirm your Hand In Requirements and autograding, while it is excluded from analytics and grading divisions. It is especially useful to upload this test submission while extending your AutoTest, since it will automatically rerun on this submission every time you stop, make changes and restart your AutoTest.
You did it! You have set up a very basic CodeGrade assignment and made sure everything worked as expected! Well done!
You can now open up your assignment to your students. First, set a deadline before which your students have to submit. This is often done inside your learning management system (Canvas, Blackboard, Brightspace, etc.), but in some cases inside CodeGrade. Read the guide below for more info! 👇
After setting a deadline, you are good to open your assignment! Again, in most cases managing this is done in your learning management system, where you can unhide or open the assignment. If this has to be done in CodeGrade (e.g. if you use SSO to sign in) you can set the assignment to the 'Open' state.
After your students have submitted their code, it is time for you to give some manual feedback too! Or not, if you decide to let AutoTest fill in all rubric categories for you and have your assignment fully autograded.
Next to inline feedback, you can also give general feedback and of course fill in the rubric categories that you have set up to be manually graded (i.e. for which you did not set up automatic tests). Finally, you can give a final grade or override the one that was generated using the automatic tests.
All feedback and grades are not visible to your students until you manually release them to your students. Doing this also sends back all the grades to your learning management system if you use CodeGrade from there.
This guide has taught you the steps to set up and grade the most basic CodeGrade assignment possible. Most of the steps from this guide will have to be done for each assignment (or imported from previous assignments). There are however many more options in CodeGrade that allow you to better customize your assignments, create even more advanced automatic tests and analyze your students' performance even better. Amongst other things, your next steps can be:
You can find guides and video tutorials for these and many other options in this help center and we recommend you to scroll through the main pages to get a taste of everything that is possible in CodeGrade.
Let's talk programming education! Just reach out to us with any question about using CodeGrade or computer science education, and we would love to help you out and give you our advice.