Overview

This project focuses on enhancing Online Python Tutor, an existing Python Learning Tool, to make it more beginner friendly. The enhancements make use of Multimodality, Interactivity, Visualisations and Reduced Context-Switching.

Background

The demand for programming skills in the workplace is on the rise, but the supply of proficient programmers is not growing at a sufficient pace. A significant contributing factor to this issue is the high attrition rate of first-year university students in introductory programming courses. Many students find these courses challenging and demotivating, which often leads to them dropping out. While there are existing tools to help students improve their programming skills, these tools may not be user-friendly enough for beginners. This project focuses on enhancing Online Python Tutor, an existing Python learning tool, to make it more accessible and engaging for novice programmers. The suggested improvements include the addition of an audio code explanation feature, reducing context-switching, and enhancing visualization and interactivity. This project outlines how these enhancements can be implemented to address the problem.

Original Online Python Tutor

Project Goals

  • Audio Code Explainer

    Each time a student submits a code snippet into the code input platform, a corresponding audio explanation is automatically generated to assist in their understanding of the code's functionality.

  • Context Switching

    Incorporating lecture videos directly into the web application simplifies the learning process by allowing students to watch educational content within the same interface where they practice. This eliminates the need for constant tab-switching, resulting in a more efficient and focused learning experience.

  • Visualisation

    Improve the visualisation tool of Online Python Tutor to make the changes at each line of code more visible to the user. This tool will be improved by introducing a highlighting feature to make the changes at each line more noticeable. The visualisation tool also includes adding simple Explanations of Python keywords.

  • Interactivity

    Introduce a variable testing feature to allow users to determine whether they understand what is happening at each line of code. This feature allows users to predict the variable that will change in the next line of the code, as well as the value to which it will change.

Team Downloads