Dissertation-Jeong-Yang-Final.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
JavelinaCode: A Web-Based Object-Oriented Programming Environment with Static and Dynamic Visualization by Jeong-sug Yang A dissertation submitted to the Graduate Faculty of Auburn University in partial fulfillment of the requirements for the Degree of Doctor of Philosophy Auburn, Alabama August 6, 2016 Keywords: JavelinaCode, static visualization, dynamic visualization web-based programming environment Approved by Kai H. Chang, Chair, Professor and Chair of Computer Science and Software Engineering T. Dean Hendrix, Associate Professor of Computer Science and Software Engineering David A. Umphress, Professor of Computer Science and Software Engineering Abstract This research proposes an approach to provide source code along with structural and behavioral aspects of visualizations synchronized in a web-based programming environment, JavelinaCode. The aim of the approach is to help student programmers better understand the structure and the runtime behavior of a Java program, and to improve their ability to comprehend object-oriented programming concepts, thereby reducing their cognitive workload in Java programming through an effective development environment. Using JavelinaCode, student programmers can write Java programs directly in a frontend web browser without any software or plug-in installation. They are provided with a view of the static state of a Java program in UML class diagrams and the dynamic run-time state of the program by stepping forward and backward through program execution. In this dissertation, an overview of the JavelinaCode system, its unique design principles, and implementation are described in detail. To investigate the effectiveness of JavleinaCode, both quantitative and qualitative evaluations were carefully designed and conducted to test hypotheses on student performance on programming tasks. The quantitative study indicated that having both visualizations in JavelinaCode did positively impact the correctness of solving problems. The qualitative study supported the positive effect of JevelinaCode on helping students better understand Object-Oriented design concepts and meeting goals of providing satisfaction. The dissertation makes a conclusion with the discussion of contributions, benefits, and future work. ii Acknowledgments I would like to express a sincere appreciation to my advisor, Dr. Kai H. Chang, for his continued support. It is truly amazing to see him consistently support me after such a long time since I left Auburn. Throughout the years, I feel very lucky to have him in my work for both masters and doctoral degrees at Auburn. I would also like to extend my sincere appreciation to the advisory committee members, Dr. Dean Hendrix and Dr. David Umphress, for their help in many different ways, and Dr. Soo-young Lee for his generous support on serving as a University reader. My deepest gratitude goes to my husband, Dr. Young Lee. Without his unconditional love, thoughtful guidance, and persistent support, it would not even be possible to finish the dissertation and this precious moment would not have come to me. iii Table of Contents Abstract ......................................................................................................................................... ii Acknowledgments........................................................................................................................ iii List of Tables .............................................................................................................................. vii List of Figures ............................................................................................................................ viii 1 Introduction .............................................................................................................................. 1 2 Literature Review ..................................................................................................................... 7 2.1 BlueJ ......................................................................................................................... 7 2.2 CoffeeDregs .............................................................................................................. 9 2.3 Jeliot 3 ..................................................................................................................... 11 2.4 AguiaJ ..................................................................................................................... 12 2.5 JIVE ........................................................................................................................ 14 2.6 jGRASP ................................................................................................................... 16 3 JavelinaCode .......................................................................................................................... 19 3.1 System Overview .................................................................................................... 19 3.2 Design Principles .................................................................................................... 20 3.3 Implementation ....................................................................................................... 21 3.4 Unser Interface ........................................................................................................ 24 3.5 Modeling Example .................................................................................................. 27 3.6 Mechanic ................................................................................................................. 28 iv 3.6.1 Getting Started ......................................................................................... 28 3.6.2 Editing with Ace Editor ........................................................................... 29 3.6.3 Creating, Opening, and Deleting a Project .............................................. 30 3.6.4 Adding, Closing, Renaming, and Deleting a Class .................................. 32 3.6.5 Saving, Compiling, and Running a Project .............................................. 34 3.6.6 Viewing UML Class Diagrams ................................................................ 35 3.6.7 Visualizing Program Execution ................................................................. 38 3.7 Anticipated Benefits ................................................................................................ 38 4 Synchronized Static and Dynamic Visualization ..................................................................... 41 4.1 Plant UML .............................................................................................................. 41 4.2 Java Visualizer ........................................................................................................ 42 4.3 Static and Dynamic Visualization in JavelinaCode ................................................ 44 4.3.1 Customized Plant UML for Static Visualization ....................................... 44 4.3.2 Customized Java Visualizer for Dynamic Visualization ........................... 49 4.3.3 Case Study: yo-yo effect with Synchronized Static and Dynamic Visualization .................................................................................................. 54 5 Comparative Analysis of Educational Programming Environmental Tool ............................. 57 5.1 Comparison of Download and Install Time ............................................................ 57 5.2 Comparison of Quality of User Interface and Aspects of Visualization ................ 59 6 Evaluation .............................................................................................................................. 71 6.1 Introduction ............................................................................................................. 71 6.2 Validation ................................................................................................................ 72 6.3 Quantitative Evaluation ............................................................................................ 73 v 6.3.1 Hypotheses ................................................................................................. 74 6.3.2 Questionnaire ............................................................................................. 74 6.3.3 Data Analysis ............................................................................................. 79 6.3.4 Experiment 1 .............................................................................................. 80 6.3.4.1 Participants .................................................................................. 80 6.3.4.2 Method and Procedure ............................................................... 80 6.3.4.3 Results ......................................................................................... 89 6.3.5 Experiment 2 .............................................................................................. 93 6.3.5.1 Participants .................................................................................. 93 6.3.5.2 Method and Procedure ............................................................... 93 6.3.5.3 Results ......................................................................................... 93 6.4 Qualitative Evaluation .............................................................................................. 97 6.4.1 Objectives and Questionnaire ...................................................................