MATLAB Grader Overview
Create autograded MATLAB® assignments using MATLAB Grader. Build MATLAB coding problems and store them in collections. Host courses for students on MATLAB Grader, or include MATLAB based assignments in your Learning Management System based course.
Published: 26 Jul 2018
In this video, we will be demonstrating MATLAB Grader, MathWorks’ solution for automated, online assessment of MATLAB-based programming assignments. We will show you how to create assessment items, how automatically grade your homework and exams, how to invite students to participate in the assessments, and how to invite other instructors to collaborate with you in creating your assessments.
For this video, I am going to use the version of MATLAB Grader that we host for you at MathWorks.com. We have other videos available that will show you how MATLAB-based assessments can also be integrated into your LMS, like Moodle, Blackboard and Canvas.
Before I start to build a new course, let me show you how a final product looks like!
This is a course on Introduction to Programming. On the left you can see the structure of the course, where we group problems into multiple assignments. On the right is the exercise. It includes a problem description, a window where students can write their code. Below are multiple assessment tests that are going to run and grade the exercise. Let me show you how to create a new course and problem.
First, just log into MATLAB Grader at grader.mathworks.com using your MathWorks Account. Everyone with a MathWorks account that is linked to a MATLAB license currently under maintenance or part of our Campus-Wide or Community and Technical College Licenses has access to MATLAB Grader
On the top left, you can see a Get Started section where you can find links to how-to videos, documentation, and training on MATLAB Grader. Our Teaching with MATLAB training includes a section on MATLAB Grader but also some example and ideas on how to update your courses.
Below this section you will see the home page of MATLAB Grader that is divided in two parts, Courses and Content:
The first part is Courses that includes the courses already developed and shared with students.
The order depends on Duration/End date of the course. It is not mandatory to include the start and end date of a course but if included, after the end of the course, it will be archived in the Past Courses tab.
Courses also have a description, a roster of enrolled students, and additional settings that are used to control how assignments are made available to students.
The list of courses would initially be empty if you never used MATLAB Grader before.
After the Courses Section, you have the Content Section; These collections are groups of problems where you can create and organize your assessment content for use in future courses. You can also share the collections with your collaborators and invite them to contribute. The main difference between a course and collection is that a course is a set of assessments that are being delivered to a group of students, while a collection is where you create and store assessments until you are ready to use them in one or more courses.
Let’s create a course by clicking on the Add course button. I get to a page where you can include the details of your course. This page will be something like the course description you have in course page or syllabus in your LMS. In this case, it includes a title, that is “Introduction to Statistics" the start and end dates of your course. This is important because the start and end date restricts when the course will be visible to students.
You can select the products you want to be included. MATLAB is already included by default. If your assignments depend on built-in functions, or toolboxes to implement an algorithm, make sure to select them. The description includes details of the course, much like a syllabus. You can even link out to the course syllabus on your website. You can copy and format text, put links to course material, latex code, pictures.
Images can be from my local machine or from the web. You can resize it if necessary. After clicking on the save button, you will arrive on the main page of the course. Inside a course you can create one or more assignments to organize the assessment items. For example, you could have one assignment for each lab or week of the course, or you can divide assignments into practice, homework, quizzes and exams.
To create a new assignment, you can click Add Assignment. This includes a title, and a visible date similar to the course start date. This is useful if you want assignments to be visible after a specific date, such as releasing homework assignments after an in-person lecture or lab. You can optionally limit the number of submission attempts, depending on the type of coursework and if you want to allow students to review assessment feedback and iterate on their solutions.
We recommend you leave the submission attempts to unlimited whenever possible to encourage students to make use of the automated feedback that is unique to MATLAB Grader. And you can add a description of the topics discussed during the week. Upon saving, you will see the option to Add Problem that will direct you to the Problem Chooser, which gives me the following options starting from a blank problem or Select one problem from Problem Collection provided by MathWorks. It includes topics as Introduction to Programming, System Dynamics and Control, Digital Signal Processing, Numerical Methods, Calculus and more… and can help you to speed up the creating of a problem for your course. Each of these can also help you when you are trying to find the best way to structure your assignments!
Our problem collections are restricted to instructors only, so if you don’t see these collections in your problem chooser, reach out to your account representative or technical support to request access to them.
If you browse the examples, you will see a preview from the exercise and then copy and edit it. You will also see the option to add a problem from any course or collection you have previously developed. For this demonstration, let’s select a Blank Problem. You can include the Title of the problem, a description with the instructions of the tasks the students are required to solve. You can provide as much or as little detail as you want, but it’s a good idea to call out the specific variable names you will be testing for in your assessment tests.
Add MATLAB functions as files, so the students do not have to download additional files. You can even upload p-coded files so that students have access to code you have written from other assignments without seeing the solutions. The problem Type is either script or function and it will influence how you will build the assessments for the problem. For this example we will create a Script-type problem.
Now it is time for the code.
All problems require a reference Solution. Think of this as an "ideal solution" or a possible correct answer that will be compared with the students’ solution. By default, students won’t see the reference solution. The Learner Template is where you can optionally provide a skeleton or scaffold for the students. You can also lock some lines to be sure that students do not modify them, such as using the first line of code to read a table from a data file. Every problem must have at least one assessment. Each assessment can be named and also include optional feedback that will be presented to the student if the assessment test fails for any reason. There are four type of assessments to choose from.
Variable equals Reference Solution will compare a workspace variable in the students solution to one in the reference solution, within a set tolerance. Function or Keyword is present/absent test checks if a function is present, or not, in the submitted solution. For more advanced and personalised tests, you can create a MATLAB Code test. You can find more details on how to build your test by clicking to the “?” and check MathWorks documentation.
You can also decide the grading method: correct/incorrect and weighted. For correct/incorrect all assessment tests must pass for the student to receive any credit. For weighted, points can be assigned to each assessment test. The default is to weight each test equally but if some tests are more important than others, you can prescribe the weights.
There is often a dependency to assessment tests. One error can cause multiple assessments to be marked incorrect. When this is the case, you can select “Only show feedback for initial error” so students focus on the feedback that addresses the source of the error before moving to the others.
This exercise will include a test to verify that the variables the student computed are correct using a Variable Equals Reference Solution test. Tests can be also pre-tests, allowing the student to run the tests and see the results before having to submit the full solution for grading.
After submission, students will get automated feedback in addition to seeing the actual MATLAB code output for their solution. They can review their submission, feedback, and output and improve upon their solution.
The last step before publishing the problem is to validate the reference solution. It checks your reference solution against every assessment, ensuring that your code both runs and can be assessed the way you want it to be. This will give you an idea of how your tests work and will help you to find any syntax error in your solution.
Then, save your problem as final so it becomes visible to students, based on the rules for the assignment and course dates. Congratulations, you’ve created your first MATLAB Grader exercise!
If you want to create additional problems for this assignment, or new assignments, you can do so from the list on the left.
Now it’s time to invite your students and collaborators to join the course. You can do so by clicking on “Manage People” on the bottom of the Table of content. You can copy and paste the emails, and students will get an invitation to join the course.
Let me jump to one of the courses I have already run that has some student submissions recorded. For each assignment, you have access to the complete history of student’s attempts to find the correct solution and you can export it in various formats.
You not only get grades, you also get Performance Analytics that help you to always have control of the class learning. You can see solution map based on time arrival and distance from the reference solution.
If you have any questions, please check our documentation or get in touch through our technical support. Links to both are in the top navigation on all pages inside MATLAB Grader. And if you have suggestions on how to improve the product, don’t hesitate to reach out to us with your ideas and feedback.