Using a Virtual Reality Environment to Facilitate the Learning of Programming Concepts Through a Block Based Visual Scripting Application
Brief Dissertation Summary
Project Introduction
Accessibility and affordability of Virtual Reality (VR) technology has improved, making it more widely available to users and a favourable interactive medium. VR offers immersive experiences and a sterile virtual environment, making it suitable for educational purposes. 
The demand for computer programmers is increasing, and learning programming can be challenging. VR provides a user-friendly and distraction-free environment for interacting with programming content. It has the potential to improve learning outcomes and cognitive absorption by facilitating focused immersion, heightened enjoyment, control, and curiosity. By integrating VR into programming education, users can engage in interactive and immersive learning experiences, enhancing their understanding of programming concepts.

Project Aim
As VR strives to create more engaging experiences, it aligns with the need for a more interactive and immersive teaching experience. Combined with the growing demand for computer programmers, this new technology could provide a pathway into more immersive and interactive educational visual scripting applications. 
The aim of this project is to explore the viability of using VR as a learning tool for programming by developing an application demonstrating a visual scripting method using blocks as a primary input, with a command parser that performs the logic described by the user’s arrangement of these blocks on a character in a game environment. Further, to evaluate the effectiveness of the application against an existing software aimed to teach students programming.
Development Methodology
The application is designed to be a playground where the user can create a series of commands using visual blocks to guide a character through a puzzle. 
The commands are categorized into variables, operators, conditions, and movement. The application allows users to manipulate and arrange these blocks in a virtual environment, providing a tangible representation of programming concepts. To handle complex conditions, a compression mechanism is introduced, allowing users to compress and decompress condition blocks. The character in the maze executes the instructions based on the command blocks placed on a command sequencer. 

The development plan includes stages for implementing different components of the application, such as command blocks, conditions, character movement, and user interface. Each command block implements their own inheritance and interaction structure. The command interpreter parses the user-defined commands and executes them sequentially, and loops are handled recursively to ensure proper timing. Continuous testing is emphasised and refinement throughout the development process to ensure the application's functionality and user experience.
Project Findings
The Virtual Reality (VR) application was found to be more engaging and effective in teaching programming to beginners compared to the Robby the Robot (University programming teaching tool). Users appreciated the VR application's intuitive interface and playful learning environment, but suggested improvements regarding sensitivity and functionality. 

During development, challenges arose due to delayed VR development kit, resulting in the switch to Unreal Engine's blueprinting interface over C++. Sacrifices were made for timely delivery, and the command interpretation system underwent iterations to improve visual feedback for the user. 
Testing evaluation highlighted the need for a larger sample size and more precise participant grouping based on programming skill levels for conclusive results.
Project Conclusion
The project demonstrated the potential of Virtual Reality applications for programming education. The developed VR application, featuring a block-based command language, provided an engaging and intuitive learning experience. The command interpreter effectively translated user commands into executable instructions, enabling dynamic problem-solving. The VR environment facilitated learning abstract concepts and met educational milestones. The research question was answered positively, with the VR application proving more effective and enjoyable than existing software. Future work includes creating complex puzzles, adding copy/paste functionality, and introducing advanced block types to enhance learning opportunities.

Back to Top