One of the main challenges on teaching cloud technologies is how to assess student. For IT courses, educators can collect some files such as source code and give a grade to students. However, for cloud tech educators, it is hard to use the traditional approach to handle the assessment.
There are two main problems:
1. It is hard to check each student work one by one manually which is time consuming and error-pone.
2. It is not a good idea to get a grade based on a “snapshot”, as students may use Infrastructure as a Code (IasC) tools such as ARM template or terraform and every student gets full mark, but they know nothing!
In fact, for vocational training, my course IT114115 Higher Diploma in Cloud and Data Centre Administration in Department of Information Technology (IT) of the Hong Kong Institute of Vocational Education (Lee Wa....
Our Goal is to ensure our students are skilled to be highly effective cloud engineers. All our students know how to do it well and within the region employers are ready to pay students for the roles but they all want know "who is the best?".
Educators need to have access to the student work and see their code, as part of the Microsoft Learn Educator Programme I have been developing an opensource serverless application – Microsoft Azure Automatic Grading Engine.
The engine includes 3 main functions:
The grader includes 2 main functions:
Each assignment need to one grader and unique endpoint URL.
Educators need to complete 3 tasks:
To prevent typos of the assignment name and email address, teacher can use a standard mail merge to send the link to students template. Using the template will result in your creating and issuing a unique URL string for each student. The url string will be in the following format.
Each assignment has one set NUnitTest, and you can fork the Reference Assignments for the Azure Automatic Grading solution repository.
The solution is based on Visual Studio 2019 solution with 2 projects.
Add and update the "AzureProjectGrade" project. When you build the "AzureProjectGraderFunctionApp", it will generate "AzureProjectGrader.exe". You can share this executable to your students and they can run NUnit test locally for quick grade check.
The App can be run with the following command and strings local file where you wish the json and excel file and the email it should send the results too.
AzureProjectGrader.exe c:/azureauth.json c:testreport/ firstname.lastname@example.org
The "AzureGraderFunction" actually is running that executable for each request and that is the magic to parallel run NUnit Tests inside Azure Function by process isolation.
For grading, students we need to process that the grader has read only access credentials to the students Azure subscription, each student has to create a service principal permission for the app.
For the engine, it is just a simple Azure Function app with consumption plan, This process has been developed so that it can even run inside Azure student subscription plan with very low cost. We have carried out a number of tests using this with Azure for Student subscription.
Reference Assignments for the Azure Automatic Grading solution contains example assessment/references for the Azure Auto Grading Engine, these samples are provided to allow educators to quickly adopt and implement the Azure Automatic Grading Engine service/solution into their classroom teaching.
This example is set for a 10 hour set of classes, some of my students are able to fully complete all tasks in a week.
The assignment is taking the Test-driven development (TDD) approach. Students have to read through the NUnit test codes and create the Microsoft Azure infrastructure that can pass all test requirements.
For the engine,
For the reference assignment grader,
If you need to use Visual Studio 2019 for customisation please follow the following video. How to deploy Azure Automatic Grading Engine
You can full control Microsoft Azure programmatically and educators can now spend time on preparing a better course instead of wasting on grading Azure assignment manually.
We have been using the Azure Automatic Grading Engine for a semester. Students definitely benefit a lot both in technical and soft skills. Firstly, students must work honestly, seriously, and quickly. As a result, their technique is in industry standard. Also, using auto grading solutions is more fun for most students and you can treat this like a game. We have seen many students trying to get mark as fast as possible. Part of our process is that we do share their mark to employers and employers loves to refer that mark than the students GPA.
Also, it is possible to use the engine for Azure Skills Competition. For upcoming features we all add a game like dashboard and allow students to gamify the journey of leaning Azure. We also plan to add Chaos component and we can have trouble shooting assignment, but every student will get different bugs within certain scope.
Cyrus Wong is the senior lecturer of Department of Information Technology (IT) of the Hong Kong Institute of Vocational Education (Lee Wa... and he focuses on teaching public Cloud technologies. He is one of the Microsoft Learn for Educators Ambassador.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.