Context Switching:
In our web application, everything is thoughtfully consolidated onto a single page to boost student engagement and attention. This innovative design minimizes distractions and provides a seamless, intuitive user experience, fostering deep engagement and a more productive learning journey.
Context switching within our platform offers a distinct advantage for students viewing video lessons. They can seamlessly transition from watching coding tutorials to hands-on practice without the need for page navigation. This unique feature maintains their focus, enhances engagement, and promotes efficient learning, fostering a more dynamic and productive educational experience.
Coding audio explanations
In our quest to improve the learning experience, we encountered the challenge of creating audio explanations for user code that could also be turned off to facilitate trial-and-error learning. We tackled this by harnessing the capabilities of the Spacy NLP model, which breaks down code into tokens, offering detailed insights for each line. Spacy's output was then channeled into the Google Text-to-Speech Python library to provide human-like voice explanations.
Moreover, our users can take control of their learning experience on the frontend. They have the ability to adjust the speed at which these audio explanations are delivered. This feature empowers learners to tailor the pace of their education to suit their needs and preferences. In essence, our audio generation solution marries the technical intricacies of code with the accessibility of human-like audio, creating a personalized and engaging learning journey.
Architecture Diagrams
Findings and Limitations:
Audibility: Students appreciated the excellent audio quality with no issues of low volume, indicating a strong positive aspect of our platform. Understanding: There's room for improvement in the scale of understanding as some students found the explanations less comprehensive. We may need to focus on enhancing the educational content for greater clarity. Realism: The audio content was realistic and free from robotic accents, contributing to a more engaging and natural learning experience. Usability: Students came to the web application with expectations that it would help with their assignment questions, highlighting a clear need for our platform in their academic endeavors. Further improvements can be made to meet these expectations more effectively.
Size Limitation: The research was conducted with only 10 participants instead of the intended 20, which affected the comprehensiveness of the results. A larger sample size could have provided more robust insights. Message Clarity: Some error messages in the system were not clearly understandable to all students. This suggests the need for clearer and more user-friendly error messages to assist learners effectively. Compilation Time: User code compilation experienced delays, particularly when affected by slow internet speeds. This could be a potential point of improvement in terms of system efficiency. Explanation Delays: In some cases, the speed of internet connectivity impacted the time it took for audio explanations to be delivered. Addressing this issue could further enhance the user experience.
Implementation:
At the core of the project's realization lies the Online Python Tutor, a web application intricately woven together with a Python-powered backend and a frontend elegantly crafted using standard web technologies: HTML, CSS, and JavaScript. The Online Python Tutor serves as the backbone of this endeavor, providing a dynamic and interactive platform for learning and exploring Python programming. The Python-powered backend enables the execution of Python code in real-time, allowing users to see the step-by-step execution of their programs. Meanwhile, the frontend, designed with HTML, CSS, and JavaScript, ensures a user-friendly and visually appealing interface. These technologies work in harmony to create an immersive and educational experience for individuals interested in Python programming, making it accessible and engaging for learners of all levels.
Conclusions:
In our research, we've made significant strides in improving student engagement in introductory programming courses. By integrating audio and video lessons and reducing context switching within a web application, we aimed to understand their impact on user engagement. Our approach seeks to create a dynamic and immersive learning environment, making complex concepts more accessible while addressing the challenge of fragmented learning experiences.