Quickstart Guide

Are you new to teaching with CodeGrade? Follow this guide to set up your first CodeGrade assignment and learn about some of the most important features for a successful first assignment.

β€‹πŸ“Ί Rather watch videos?

In our CodeGrade Basics YouTube series, we show you step by step how you can set up your first autograded CodeGrade assignment. We have videos especially for autograding Java, Python and Jupyter Notebook assignments:

1. Creating your first CodeGrade assignmentπŸ“β€‹

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.

Creating the first CodeGrade assignment for your course? The course will be created automagically in CodeGrade, you do not need to manually do this.

TODO: Create your first CodeGrade assignment, either from inside your learning management system or directly in CodeGrade! Follow the guides below to find out how to do this. πŸ‘‡

2. Setting up a rubric πŸ“‹β€‹

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.

TODO: For your first assignment, set up one or multiple rubric categories on which you want to grade your students. These can be categories like functionality, code quality, documentation and code structure or even more fine grained like functionality of bubble sort algorithm or correctness for question 1. More information in the guide below! πŸ‘‡

3. Setting up hand in requirements πŸ“₯

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.

TODO: Set up the hand in requirements for your assignment. This can be specific code files students have to upload or a whole submission structure (students can hand in archives, which can have directory structures). For example, for your Java assignment, you may require the file IsEven.java or deny any file that ends with *.class. See the guide below! πŸ‘‡

4. Setting up autograding πŸ€–β€‹

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.

TODO: Set up one or two easy automatic tests for your assignment. First, select the rubric category you want to fill in (in our example this is Functionality of IsEven), then create the tests you want to use to grade this rubric category. In our case, we first compile the student code in a Run Program step (with the command javac IsEven.java) we then use an I/O (input / output) test to check if it actually works using the command java IsEven, standard input 6 and expected output even. All AutoTest guides can be found below! πŸ‘‡

5. Testing your assignment setup β–Ά

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.

TODO: Upload your example solution as a Test Submission in CodeGrade. Confirm if your Hand In Requirements work as expected and accept your submission. Then, turn on your AutoTest and check if the autograding works as expected too. Read the guide below for more info! πŸ‘‡

Already have student submissions in your assignment and still want to make changes to your AutoTest? That is no problem at all, simply stop your AutoTest at any point, make your changes, and start it up again. After you start it again, it will automatically rerun and update grades of all existing submissions too.

6. Opening the assignment to students πŸ‘©πŸŽ“

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! πŸ‘‡

By default, students cannot hand in after the deadline anymore. Click here to learn how to allow (certain) students to still hand in after the deadline has passed.​

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.

TODO: Set the deadline for your assignment and open it up, so that your students can start handing in their submissions (and getting instant feedback with your automatic tests) until the deadline.

β€‹βœ… Giving feedback, grading and sending grades to students

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.

You (and your teaching assistants) can now give feedback right on lines of code and use snippets to speed this up.

Good practice: Have a bigger course with many teaching assistants? Setting up course-wide snippets for your course can greatly reduce grading time while improving feedback quality and consistency between teaching assistants. It does not take much time to set up, but has pays off big!

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.

TODO: Give your feedback and give grades to all submissions. After finishing this, release your grades and feedback by setting the assignment to the 'Done' state. Learn how to do this in the video below! πŸ‘‡

β€‹πŸ“š Understanding Course Management & Permissions

While no course configuration is needed for most basic assignments and courses, it is good to understand how to navigate to the Course Management Page and what permissions you can configure.

β€‹πŸš€ Next steps to get even more out of CodeGrade

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.

β€‹πŸ’™Need some help or consultation?

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.