The University of Auckland

Project #33: Using Machine Learning Methodologies to Individualise Content Delivered to Students



Many students taking Stage 1 and Stage 2 programming courses struggle to understand core programming concepts during lectures. In order to resolve this issue, it becomes necessary to employ active learning approaches. Hands-on practical programming exercises (such as lab exercises or in-class programming) provide students with the opportunity to better understand underlying concepts by requiring them to put the theory into practice. However, it can be difficult to create content that caters to the needs and abilities of every student within a course. Students progress at various rates within a course, with some struggling more than others and so it is imperative that different support is provided based on the needs of each student. Be that as it may, it can be difficult for a teacher to cater to these individual needs when dealing with large courses that number in the hundreds of students. As a result, it is often the case that some students are left bored by lacklustre content that does not provide enough of a challenge, whilst other students are overwhelmed by content that is too challenging. This project will investigate supporting large programming courses with the creation of individualised exercises that cater to each student’s individual level. The process of creating such exercises can leverage existing machine learning methodologies to ensure that created exercises are correctly tailored to the student’s ability. One such methodology includes language models implemented using recurrent neural networks. To assist in the evaluation of this process, it is proposed to incorporate this into an existing programming learning environment, such as the Active Classroom Programmer.


    • Literature review of current language acquisition models

    • Literature review of current active learning approaches

    • Development of a process for individualised content creation

    • Integration with existing programming learning environment

    • Formal analysis and assessment of the implementation to determine efficacy









Lab allocations have not been finalised