The Human Experience of Comprehending Source Code in Virtual Reality - Replication Package
Creators: name: Dominic, James
Publisher: name: figshare
Year: 2022
Subjects: Theoretical Computer Science

description: Data collected from the program comprehension studiesSummary responsesDate is available in: <i>In-Study Survey Data.csv</i><br>NASA TLX Survey dataData is available in: <i>Post Experiment Data.csv</i><br>Demographics dataData is available in: <i>Demographics Survey Data.csv</i><i><br></i><i><br></i>Data AnalysisData is available in: <i>data_script.zip</i><i><br></i>Instructions for downloading the virtual reality environment executableDownload the following executable <i>VirtualDesk_executable.zip</i>. Unzip the folder and double click VirtualDesk.exe to run VirtualDesk.<br>HardwareHTC Vive or Vive PRO2X Vive Controller2X Vive Base Station (w/ mount or tripod)2X Vive Tracker w/ USB dongleLeap Motion Controller w/VR mountDouble-sided adhesive strips (we used Mounting Squares)<br>3D Printing<br>The <i>mouse tracker.fbx</i> and <i>keyboard-newfit.fbx</i> files can be used to 3D print the mounts for the keybaord and mouse. These mounts are designed to work with HP T4E63AA keyboard and mouse.<br>SoftwareSteam Desktop Application, SteamVRLeap Motion Orion SoftwareUnity 2018.3.1f1<br>SteamVREnsure that all necessary devices are recognized by SteamVR before running the virtual reality environment. This includes the headset, controllers, base stations, and trackers. If the virtual reality environment is run before this step, the application may not work properly.<br>Leap MotionSetup the Leap Motion controller before using the virtual reality environment. This includes mounting the controller to the headset and downloading the Leap Motion software. Instructions for both can be found here: https://developer.leapmotion.com/vr-setup/vive<br>The virtual reality environmentDownload <i>virtualdesk.zip</i>, unzip the folder, and open the project in Unity. Please download the below assets to work with the Unity project.Photon Unity Networking Classic - FREEPhoton VoiceVR Desktop Mirror asset - x windows and HTC ViveOpen the scene "Avatar_Test", and build the scene by going to File -&gt; Build Settings -&gt; Build. This will create an executable file inside the project folder.While the virtual reality enviornment is initializing, hold both arms outwards in a t-pose.With the the virtual reality enviornment application maximized:Left Shift - toggle keyboard alignment menu on/offLeft Ctrl - toggle desktop viewUse the keyboard alignment menu to position and rotate the virtual keyboard. The menu can be navigated by pressing the corresponding letter on the keyboard that appears next to each menu option in parentheses.<br>The Java code used during the program comprehension experimentsDownload the following source code: <i>Java-Code-Snippets.zip</i><br>Each code snippet and output resultsExample 1: This program outputs the median from an array of integer values.Output: 5.0<br>Example 2: This program outputs the maximum and minimum values separated by a comma.Output: 150, 2<br>Example 3: This program outputs the factorial of a value. The output is the value and the factorial separated by a comma.Output: 6, 720<br>Example 4: This program outputs employee information using encapsulation.Output: Mario null, 32, 112233<br>Example 5: This program outputs true or false depending on whether or not the input values are palindrome.Output: false, true<br>Example 6: This program removes the duplicates in a sorted array in-place so each element appears only once and returns the new length.Output: 5<br>Example 7: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the length of last word (last word means the last appearing word if we loop from left to right) in the string. If the last word does not exist, return 0.Output: 7<br>Example 8: This program demonstrates polymorphism and it occurs when we have many classes that are related to each other by inheritance.Output: Pig class foo called.Animal class bar called.<br>