- Group size: 180
- Teaching type: Remote live sessions
- Division: MPLS
- Subject: Engineering Science – Programming Skills
- Tools: Teams and MATLAB Grader
Delivery
Every year, first year engineers are taught basic programming skills. Even though 60% of the students have had some experience with coding, most of them are not confident programmers. Typically, students attend five in-person computing laboratories (in groups of 20) throughout the year (each lasting five hours). They are set problems and get one-to-one help with their coding. Usually, teachers would walk around a computing lab and so can see students’ approaches instantaneously.
For the remote lab, we used Microsoft Teams to connect teachers and students. When students asked for help, the screensharing capabilities were useful, particularly as the teacher could take control of a student’s computer to correct code in real time. However, this one-to-one support depends upon students recognising that they need help and requesting it. For remote computing labs, being able to see the work of all students in real time is crucial to giving timely formative feedback. Another key need is to have an ‘overview’ of student progress during the lab. MATLAB Grader was used to solve both these problems.
Grader is a web-based tool that allows the creation of problem sets. Even though it is called MATLAB ‘Grader’, we never used it to grade work. We allowed every problem to have infinite attempts and no marks were assigned. Students must submit code to pass ‘tests’ and they receive instant, detailed feedback that goes beyond basic error messages (for example, linking back to lab notes or instructional videos). During the lab, teachers used Grader to get instant information about how many students had completed each problem and which tests were passed, as well as being able to view code of individual students.
Strengths
- MATLAB Grader provides real-time information and the teacher has an overview of the class activity.
- The feedback from each test means that students can get hints and try to solve the problem before asking for one-to-one help.
- It’s easy for teachers to set up basic tests: Grader allows you to quickly set basic checks with no need to write code, e.g. comparing variables to a reference value, checking for presence or absence of particular functions/keywords.
- It is easy to assign (or not assign) marks to each test.
- Long-term benefit: Courses can be copied and redeployed.
- Students found it a useful and fun way to practise coding, as shown in the students’ teaching evaluations.
Limitations
- There is a learning curve to designing good tests. Some simple coding problems are easy to check and design checks for, as you can use the three built-in checking tools. However, in order to give targeted formative feedback, the teacher needs to know more about the student code.
- Some students may be frustrated by the ‘strict’ testing used by Grader. For example, if their variable name is ‘myvector’ instead of ‘myVector’, the test will fail. However, this is true for coding in general and if you are very clear with the tests, the students quickly get used to this. Rather than a test “Does your vector have the correct value?” you can write “Does the variable myVector have the correct value?” which helps the students remember naming conventions.
- Grader doesn’t give students experience of the usual MATLAB interface. However, we specifically used MATLAB Grader early on in our beginners’ course so they could focus on coding, and not be confused by setting up the development environment in MATLAB.
- The Canvas integration is not always useful. Grader can be integrated into Canvas so you can set assignments using the Assignments tool; however each question must be one assignment. This was not appropriate for our lab where students work through around 10 small problems per lab. This would mean 10 Canvas assignments for one lab, which we decided would look too intimidating.
Teacher View: Example of reading student submitted code in a browser
Teacher overview: Example for one question
Dr Izzi Mear demonstrating the use of MATLAB Grader:
https://ox.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=43f9bd69-91b4-472a-8a25-ad3200a59096
- Contributed by: Dr Izzi Floyd Mear, Department of Engineering Science