The Design and Implementation of Venbrace, a Text Language for App Inventor

Total Page:16

File Type:pdf, Size:1020Kb

The Design and Implementation of Venbrace, a Text Language for App Inventor The Design and Implementation of Venbrace, a Text Language for App Inventor Ruanqianqian "Lisa" Huang Submitted in Partial Fulfillment of the Prerequisite for Honors in Computer Science under the advisement of Franklyn A. Turbak May 2020 © 2020 Ruanqianqian Huang Abstract Blocks programming environments (BPEs) lower barriers to programming using visual code fragments that prevent syntactic and static semantic errors and reduce cognitive load. App Inventor, for example, provides a BPE that helps programmers of all levels to build mobile device apps easily. However, visual blocks notations can make programs more difficult to read, write, edit, and share. Dual-mode environments that allow bidirectional conversion between isomorphic blocks and text representations can leverage the benefits of both modes. Having recognized the advantages of allowing textual editing as a plug-in in BPEs, I have designed Venbrace, a fully-braced textual syntax isomorphic to the blocks- based programming language in App Inventor, based on a collection of design princi- ples. I implemented a lexer, a parser, and a syntax editor for Venbrace. To ensure the usability of Venbrace, I also developed, conducted, and did a preliminary anal- ysis of the first round of a user study (with 17 subjects) to evaluate its initial syntax design, determine some design choices, and explore possible improvements. This project aims to (1) increase App Inventor’s general usability, (2) maximize the usability of Venbrace through user studies, and (3) confirm the benefits of evidence-based programming language design. Keywords: App Inventor, Blocks Programming, Evidence-Based Programming Lan- guage Design, Human-Language Interaction (HLI) Acknowledgments First and foremost, I would like to express my sincerest gratitude to my advisor, Pro- fessor Lyn Turbak. Despite being on sabbatical for the year, he had graciously agreed to advise me on this thesis and has spent countless meetings and discussions with me to fine tune the project. Had I not taken CS 251 on Principles of Programming Lan- guages with Lyn, I wouldn’t have discovered my academic passion for programming languages. I could not have arrived at this point without his guidance and support for me, my academic career, and my life. Next, I would like to thank my thesis committee, Professors Eni Mustafaraj, Catherine Delcourt, and Robbie Berg, for taking an interest in this work and putting in the time to provide insightful ideas and helpful feedback. I would also like to thank Dr. Andreas Stefik from the University of Nevada, Las Vagas for answering my questions on his user study on programming language syntax evaluation, which sets the foundation for the user study in this project. Thanks to Professor Sohie Lee, my major advisor, for all the mentorship since the beginning of my journey in Computer Science. Thank you to everyone at the Computer Science department who has taught me so much, supported my endeavors, and encouraged my academic pursuits. Thanks to the Jerome A. Schiff fellowship that funded this project. I especially would like to thank Huihan Li, the best friend, roommate, and partner- in-crime I could ever ask for. I am grateful for having her always by my side during moments of ups and downs throughout my four years at Wellesley. I am also thank- ful for the 24/7 support from all my friends around the globe when I encountered problems. Diane A Yi, and the rest of the Boggess family – I cannot thank them more for providing me with a shelter & home-away-from-home in the past four years and es- pecially during the current pandemic of COVID-19. I could not have focused entirely on this project since the beginning of the pandemic had it not been for their kindness. Lastly and most importantly, I am thankful for my family, for supporting me in my academic pursuits and always having my best interest at heart. On a concluding note, my final acknowledgement goes to Yuzuru Hanyu, the greatest figure skater of all time. I thank him for being my hero and pushing meto always challenge the unknown. Contents 1 Introduction 1 1.1 MIT App Inventor . .2 1.2 Challenges Facing App Inventor Users . .3 1.2.1 Code Reading and Navigation . .3 1.2.2 Viscosity . .4 1.2.3 Sharing A Whole Project, or Just A Part of It . .5 1.3 Existing Mechanisms to Solve These Challenges . .6 1.3.1 Block Operations for Better Navigation . .6 1.3.2 Support for Faster Block Creation . 11 1.3.3 PNG Exports for Partial Project Sharing . 12 1.4 Venbrace: An Even Better Solution . 12 1.4.1 Venbrace: A Text-based Language for App Inventor Programs 13 1.4.2 The Design of Venbrace .................... 14 1.5 Contributions . 16 1.6 Road Map . 17 2 Related Work 19 2.1 Empirical Studies of Programming Languages . 19 2.1.1 Background and Motivation . 19 2.1.2 Investigation into Programming Language Syntax . 20 2.1.3 Studies Comparing Blocks and Text Languages . 21 2.2 Hybrid Systems: Improving BPEs by Incorporating Text . 22 2.2.1 Using Text in GP . 22 2.2.2 Frame-Based Editing . 23 2.2.3 Typeblocking . 24 iv 2.3 Dual-Mode Programming Environments: Bidirectional Isomorphism between Blocks and Text . 24 2.3.1 Existing DMPEs . 26 2.4 Ad Hoc uses of Text With Blocks Languages . 28 2.5 Translating App Inventor into Text . 29 2.5.1 App Inventor to Python . 29 2.5.2 App Inventor to TAIL . 29 3 Design Principles 32 3.1 Evidence-Based Language Design . 32 3.2 Bidirectional Isomorphism . 32 3.3 Blocks Are Primary . 33 3.4 Concise Alternatives . 34 3.5 Support Copy/Paste . 35 3.6 Internationalization . 36 4 Initial Design 37 4.1 Venbrace Syntax . 37 4.1.1 Expressions . 38 4.1.2 Statements . 43 4.1.3 Declarations . 44 4.2 Translations that are not Obvious . 47 4.2.1 Multi-Word Key Phrases . 47 4.2.2 Labels on Expression Sockets . 48 4.2.3 Labels on Statement Sockets . 49 4.2.4 Event Handlers Parameters . 51 4.2.5 Procedure Names and Procedure Parameter Names . 51 4.2.6 Local Variable Declarations . 52 4.2.7 Global Variable Declarations, Getters, and Setters . 53 4.2.8 Undecided Abbreviations for Setters . 54 v 5 Implementing Venbrace 55 5.1 Overview . 55 5.2 Parser Generator . 55 5.3 Lexing Venbrace ............................ 56 5.4 Parsing Venbrace ............................ 57 6 A Syntax Editor for Venbrace 59 6.1 Motivation . 59 6.2 Implementation . 61 6.2.1 Brace Auto-Completion . 61 6.2.2 Brace Matching and Balancing . 61 6.2.3 Keyword and Block Extent Highlighting . 62 6.2.4 Keyword-Based Formatting . 62 7 Online Venbrace Syntax User Study 64 7.1 Overview . 64 7.2 Goals . 66 7.3 Methods . 67 7.3.1 Participants . 67 7.3.2 Procedure . 68 7.3.3 Instruments . 70 7.3.4 Data Overview and Analysis . 86 7.3.5 Pilot Study . 87 7.4 Results . 87 7.4.1 Pre-survey . 87 7.4.2 Translation Typing . 89 7.4.3 Preference Ranking . 93 7.4.4 Preference Typing . 95 7.4.5 Post-survey . 97 7.5 Discussion . 99 7.5.1 Evaluation of Current Design . 99 vi 7.5.2 Going Forward . 102 7.6 Limitations . 103 7.7 Conclusion . 105 8 Conclusion and Future Work 107 8.1 Current State . 107 8.1.1 Venbrace Syntax . 107 8.1.2 Venbrace in App Inventor . 109 8.1.3 Support for Venbrace ..................... 109 8.2 Immediate Future . 110 8.2.1 An Improved Syntax Design . 110 8.2.2 More Thorough Data Analysis . 110 8.2.3 More User Studies on Venbrace Syntax . 111 8.3 Near Future . 111 8.3.1 Venbrace Support for All App Inventor Components . 111 8.3.2 Handling Known Ambiguities Better . 111 8.3.3 Venbrace in App Inventor . 112 8.3.4 Automatically Updating the Venbrace Lexer and Parser . 112 8.3.5 Support of Internationalization . 114 8.3.6 Improving the Syntax Editor . 115 8.3.7 Simple Error Reporting . 116 8.3.8 Importing/Exporting App Inventor as Venbrace ....... 116 8.3.9 Testing and User Studies on Venbrace-in-App Inventor . 117 8.4 Far Future . 117 8.4.1 Preserving All Editing Features of App Inventor in Text Mode 117 8.4.2 More User Studies on Using App Inventor Incorporated with Venbrace ............................ 118 8.4.3 Error Reporting . 118 A Round 1 Study Materials 123 A.1 Pre-study Survey (Activity 01) . 123 vii A.2 Tutorial/Task Section 1 (Activity 02) . 123 A.3 Tutorial/Task Section 2 (Activities 03-05) . 123 A.4 Tutorial/Task Section 3 (Activities 06-13) . 125 A.5 Tutorial/Task Section 4 (Activities 14-18) . 128 A.6 Tutorial/Task Section 5 (Activities 19–22) . 130 A.7 Tutorial/Task Section 6 (Activities 23–27) . 132 A.8 Tutorial/Task Section 7 (Activities 28–30) . 133 A.9 Tutorial/Task Section 8 (Activities 31–36) . 135 A.10 Tutorial/Task Section 9 (Activities 37–41) . 137 A.11 Post-study Survey (Activity 42) . 140 B Round 1 Study Data 145 B.1 Translation Typing . 145 B.2 Preference Ranking . 155 B.3 Preference Typing . 170 C Venbrace.g4 184 D Implementation of TAM in JavaScript 191 viii 1 Introduction Computer programming can have a steep learning curve. Learning to use.
Recommended publications
  • KIMONO, a Descriptive Agent-Based Modelling Method for the Exploration of Complex Systems: an Application to Epidemiology
    KIMONO, a descriptive agent-based modelling method for the exploration of complex systems: an application to epidemiology. Edouard Amouroux To cite this version: Edouard Amouroux. KIMONO, a descriptive agent-based modelling method for the exploration of complex systems: an application to epidemiology.. Modeling and Simulation. Université Pierre et Marie Curie - Paris VI, 2011. English. tel-00630779 HAL Id: tel-00630779 https://tel.archives-ouvertes.fr/tel-00630779 Submitted on 5 Dec 2011 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. THESE DE DOCTORAT DE L’UNIVERSITE PIERRE ET MARIE CURIE Spécialité: Informatique (Ecole doctorale: EDITE) Présentée par Edouard AMOUROUX Pour obtenir le grade de DOCTEUR de l’UNIVERSITÉ PIERRE ET MARIE CURIE Sujet de la thèse : KIMONO: une méthode de modélisation descriptive centrée agent pour l'explication des systèmes complexes, une application en épidémiologie soutenue le 30/09/2011 devant le jury composé de : M. Directeur de thèse: Alexis Drogoul, Directeur de Recherche, IRD - UMMISCO / IFI - MSI Rapporteurs: David
    [Show full text]
  • Metadefender Core V4.17.3
    MetaDefender Core v4.17.3 © 2020 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 13 Key Features of MetaDefender Core 14 1. Quick Start with MetaDefender Core 15 1.1. Installation 15 Operating system invariant initial steps 15 Basic setup 16 1.1.1. Configuration wizard 16 1.2. License Activation 21 1.3. Process Files with MetaDefender Core 21 2. Installing or Upgrading MetaDefender Core 22 2.1. Recommended System Configuration 22 Microsoft Windows Deployments 22 Unix Based Deployments 24 Data Retention 26 Custom Engines 27 Browser Requirements for the Metadefender Core Management Console 27 2.2. Installing MetaDefender 27 Installation 27 Installation notes 27 2.2.1. Installing Metadefender Core using command line 28 2.2.2. Installing Metadefender Core using the Install Wizard 31 2.3. Upgrading MetaDefender Core 31 Upgrading from MetaDefender Core 3.x 31 Upgrading from MetaDefender Core 4.x 31 2.4. MetaDefender Core Licensing 32 2.4.1. Activating Metadefender Licenses 32 2.4.2. Checking Your Metadefender Core License 37 2.5. Performance and Load Estimation 38 What to know before reading the results: Some factors that affect performance 38 How test results are calculated 39 Test Reports 39 Performance Report - Multi-Scanning On Linux 39 Performance Report - Multi-Scanning On Windows 43 2.6. Special installation options 46 Use RAMDISK for the tempdirectory 46 3.
    [Show full text]
  • Logo Tree Project
    LOGO TREE PROJECT Written by P. Boytchev e-mail: pavel2008-AT-elica-DOT-net Rev 1.82 July, 2011 We’d like to thank all the people all over the globe and all over the alphabet who helped us build the Logo Tree: A .........Daniel Ajoy, Eduardo de Antueno, Hal Abelson B .........Andrew Begel, Carl Bogardus, Dominique Bille, George Birbilis, Ian Bicking, Imre Bornemisza, Joshua Bell, Luis Belmonte, Vladimir Batagelj, Wayne Burnett C .........Charlie, David Costanzo, John St. Clair, Loïc Le Coq, Oliver Schmidt-Chevalier, Paul Cockshott D .........Andy Dent, Kent Paul Dolan, Marcelo Duschkin, Mike Doyle E..........G. A. Edgar, Mustafa Elsheikh, Randall Embry F..........Damien Ferey, G .........Bill Glass, Jim Goebel, H .........Brian Harvey, Jamie Hunter, Jim Howe, Markus Hunke, Rachel Hestilow I........... J..........Ken Johnson K .........Eric Klopfer, Leigh Klotz, Susumu Kanemune L..........Janny Looyenga, Jean-François Lucas, Lionel Laské, Timothy Lipetz M.........Andreas Micheler, Bakhtiar Mikhak, George Mills, Greg Michaelson, Lorenzo Masetti, Michael Malien, Sébastien Magdelyns, Silvano Malfatti N .........Chaker Nakhli ,Dani Novak, Takeshi Nishiki O ......... P..........Paliokas Ioannis, U. B. Pavanaja, Wendy Petti Q ......... R .........Clem Rutter, Emmanuel Roche S..........Bojidar Sendov, Brian Silverman, Cynthia Solomon, Daniel Sanderson, Gene Sullivan, T..........Austin Tate, Gary Teachout, Graham Toal, Marcin Truszel, Peter Tomcsanyi, Seth Tisue, Gene Thail U .........Peter Ulrich V .........Carlo Maria Vireca, Álvaro Valdes W.........Arnie Widdowson, Uri Wilensky X ......... Y .........Andy Yeh, Ben Yates Z.......... Introduction The main goal of the Logo Tree project is to build a genealogical tree of new and old Logo implementations. This tree is expected to clearly demonstrate the evolution, the diversity and the vitality of Logo as a programming language.
    [Show full text]
  • Starlogo TNG: the Convergence of Graphical Programming and Text Processing by Corey Mccaffrey
    StarLogo TNG: The Convergence of Graphical Programming and Text Processing by Corey McCaffrey Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degrees of Bachelor of Science in Computer Science and Engineering and Master of Engineering in Electrical Engineering and Computer Science at the Massachusetts Institute of Technology May 26, 2006 Copyright 2006 Corey McCaffrey. All rights reserved. The author hereby grants to M.I.T. permission to reproduce and distribute publicly paper and electronic copies of this thesis and to grant others the right to do so. Author__________________________________________________________________ Department of Electrical Engineering and Computer Science May 26, 2006 Certified by______________________________________________________________ Eric Klopfer Thesis Supervisor Accepted by_____________________________________________________________ Arthur C. Smith Chairman, Department Committee on Graduate Theses 2 StarLogo TNG: The Convergence of Graphical Programming and Text Processing by Corey McCaffrey Submitted to the Department of Electrical Engineering and Computer Science May 26, 2006 In Partial Fulfillment of the Requirements for the Degrees of Bachelor of Science in Computer Science and Engineering and Master of Engineering in Electrical Engineering and Computer Science ABSTRACT StarLogo TNG is a robust graphical programming environment for secondary students. Despite the educational advantages of graphical programming, TNG has sustained criticism from some who object to the exclusion of a textual language. Recognizing the benefits of text processing and the power of controlling software with a keyboard, I sought to incorporate text-processing techniques into TNG’s graphical language. The key component of this work is an innovation dubbed “Typeblocking,” by which users construct block code through the use of a keyboard.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Survey of Agent Based Modelling and Simulation Tools
    Technical Report DL-TR-2010-007 Survey of Agent Based Modelling and Simulation Tools RJ Allan October 2010 ©2010 Science and Technology Facilities Council Enquiries about copyright, reproduction and requests for additional copies of this report should be addressed to: Chadwick Library Science and Technology Facilities Council Daresbury Laboratory Daresbury Science and Innovation Campus Warrington WA4 4AD Tel: +44(0)1925 603397 Fax: +44(0)1925 603779 email: [email protected] Science and Technology Facilities Council reports are available online at: http://epubs. .ac.uk/ stfc ISSN 1362-0207 Neither the Council nor the Laboratory accept any responsibility for loss or damage arising from the use of information contained in any of their reports or in any communication about their tests or investigations. Survey of Agent Based Modelling and Simulation Tools Rob Allan Computational Science and Engineering Department, STFC Daresbury Laboratory, Daresbury, Warrington WA4 4AD Contact e-Mail: [email protected] October 7, 2010 Abstract Agent Based Modelling and Simulation is a computationally demanding technique having its origins in discrete event simulation, genetic algorithms and cellular automata. It is a powerful technique for simulating dynamic complex systems and observing \emergent" behaviour. There is currently a lot of interest in developing ABMs as a general computational technique applicable to the study of large scale systems. ABMs has been adapted to run on novel architectures such as GPGPU, e.g. nVidia hardware using the CUDA programming language. Argonne National Laboratory have a Web site on Exascale ABMs and have run models on the IBM BlueGene with funding from the SciDAC Programme.
    [Show full text]
  • Netlogo: Design and Implementation of a Multi-Agent Modeling Environment
    NetLogo: Design and Implementation of a Multi-Agent Modeling Environment Seth Tisue Uri Wilensky [email protected] [email protected] Center for Connected Learning and Computer-Based Modeling Northwestern University, Evanston, Illinois Presented at SwarmFest, Ann Arbor, May 9–11, 2004 1 Introduction [Resnick & Wilensky, 1993, Resnick, 1994] was on a supercomputer, it had always been primarily in- In this paper we examine design and implemen- tended for use in schools.1 But StarLogoT became tation choices we made when creating NetLogo very popular among researchers. So with NetLogo, [Wilensky, 1999], a multi-agent programming lan- we now aim more explicitly to satisfy the needs of guage and modeling environment for simulating com- both audiences. plex phenomena [Wilensky, 2001]. Although NetL- All the multi-agent Logos have adopted design ogo is used across a wide range of education levels principles from the Logo language [Papert, 1980]. A from grade school up, we focus here on NetLogo as a central principle is “low threshold, no ceiling.” Low tool for research and for teaching at the undergradu- threshold means new users, including those who never ate level and higher. programmed before, should find it easy to get started. Our earlier paper on NetLogo as a research No ceiling means the language shouldn’t be limiting tool [Tisue & Wilensky, 2004] is recommended back- for advanced users. We wanted NetLogo to be just as ground reading, especially if you are not already fa- popular with researchers as StarLogoT had been, so miliar with NetLogo. It includes a history of Net- that meant devoting significant attention to the “no Logo’s origins, a tour of the NetLogo interface, an ceiling” side of the principle.
    [Show full text]
  • Agent Monitoring and Mouse Interactivity in Starlogo Nova
    Agent Monitoring and Mouse Interactivity in StarLogo Nova by Abigail Choe S.B., C.S. M.I.T., 2017 Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degree of Master of Engineering in Electrical Engineering and Computer Science at the Massachusetts Institute of Technology February 2019 © 2018 Massachusetts Institute of Technology. All rights reserved Author: _________________________________________________________________ Department of Electrical Engineering and Computer Science December 13, 2018 Certified by: _____________________________________________________________ Eric Klopfer Professor and Director of the MIT Scheller Teacher Education Program Thesis Supervisor Accepted by: ____________________________________________________________ Katrina LaCurts Chairman, Masters of Engineering Thesis Committee Agent Monitoring and Mouse Interactivity in StarLogo Nova by Abigail Choe S.B., C.S. M.I.T., 2017 Submitted to the Department of Electrical Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degree of Master of Engineering in Electrical Engineering and Computer Science ABSTRACT StarLogo Nova is a powerful programming environment that allows anyone to easily create a 3D simulation and 3D game using block-based programming language. Due to its intuitive interface and ability to model complex systems, StarLogo is mainly used in primary and secondary school class settings. While StarLogo Nova effectively visualizes a wide range of simulations from biology to economy, the current implementation has two areas for improvement that will help cover more use cases. First, StarLogo Nova currently offers statistics only at the level of agent types. Users can track, for example, changes in population of a given agent type, but cannot track property changes of an individual agent.
    [Show full text]
  • Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in Agentsheets
    Moving Beyond Syntax: Lessons from 20 Years of Blocks Programing in AgentSheets Alexander Repenning University of Colorado Boulder, Colorado 80309 [email protected] School of Education University of Applied Sciences and Arts Northwestern Switzerland (PH FHNW) Brugg-Windisch, Switzerland [email protected] Abstract The blocks programming community has been preoccupied the “compute prime numbers” using C++ and Emacs activity with identifying syntactic obstacles that keep novices from learning which, by the vast majority of kids, is considered to be hard to program. Unfortunately, this focus is now holding back research and boring. In the upper right corner is the elusive holy grail of from systematically investigating various technological affordances Computer Science education providing activities that are easy, that can make programming more accessible. Employing approaches or at least accessible, and exciting. This journey started in the from program analysis, program visualization, and real-time lower left corner and is gradually moving towards the upper interfaces can push blocks programming beyond syntax towards the support of semantics and even pragmatics. Syntactic support could right corner. The path of this journey is not straight. It includes be compared to checking spelling and grammar in word processing. setbacks and detours. Also, while progress has been made, the Spell checking is relatively simple to implement and immediately journey is far from over. useful, but provides essentially no support to create meaningful text. Over the last 25 years, I have worked to empower students to create their own games, simulations, and robots. In this time I have explored, combined, and evaluated a number of programming paradigms.
    [Show full text]
  • Metadefender Core V4.14.2
    MetaDefender Core v4.14.2 © 2018 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 11 Key Features of Metadefender Core 12 1. Quick Start with MetaDefender Core 13 1.1. Installation 13 Operating system invariant initial steps 13 Basic setup 14 1.1.1. Configuration wizard 14 1.2. License Activation 19 1.3. Process Files with MetaDefender Core 19 2. Installing or Upgrading Metadefender Core 20 2.1. Recommended System Requirements 20 System Requirements For Server 20 Browser Requirements for the Metadefender Core Management Console 22 2.2. Installing Metadefender 22 Installation 22 Installation notes 23 2.2.1. Installing Metadefender Core using command line 23 2.2.2. Installing Metadefender Core using the Install Wizard 25 2.3. Upgrading MetaDefender Core 25 Upgrading from MetaDefender Core 3.x 25 Upgrading from MetaDefender Core 4.x 26 2.4. Metadefender Core Licensing 26 2.4.1. Activating Metadefender Licenses 26 2.4.2. Checking Your Metadefender Core License 33 2.5. Performance and Load Estimation 34 What to know before reading the results: Some factors that affect performance 34 How test results are calculated 35 Test Reports 35 Performance Report - Multi-Scanning On Linux 35 Performance Report - Multi-Scanning On Windows 39 2.6. Special installation options 42 Use RAMDISK for the tempdirectory 42 3. Configuring MetaDefender Core 46 3.1. Management Console 46 3.2.
    [Show full text]
  • Performance Engineering of the Starlogo Nova
    Performance Engineering of the StarLogo Nova Execution Engine by Jin Pan Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Engineering in Computer Science and Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY September 2016 ○c Massachusetts Institute of Technology 2016. All rights reserved. Author................................................................ Department of Electrical Engineering and Computer Science August 16, 2016 Certified by. Eric Klopfer Director of MIT Scheller Teacher Education Program Thesis Supervisor Accepted by . Christopher J. Terman Chairman, Masters of Engineering Thesis Committee 2 Performance Engineering of the StarLogo Nova Execution Engine by Jin Pan Submitted to the Department of Electrical Engineering and Computer Science on August 16, 2016, in partial fulfillment of the requirements for the degree of Master of Engineering in Computer Science and Engineering Abstract StarLogo Nova is an online blocks-based programming environment designed for pre- college students to explore the collective behavior of decentralized agents. Users can drag and drop blocks to construct graphical scripts that control how individual agents respond to stimuli. These scripts are run by the Execution Engine and rendered in real-time. By investigating hypotheses about how small tweaks to individual behav- ior impact the entire system, students learn to think beyond the centralized mindset where all actions are dictated by a singular leader. This thesis migrates the Execution Engine from the aging Adobe ActionScript 3 language to TypeScript, a weakly typed language that transpiles to JavaScript. To promote code health, this thesis introduces code formatters, linters, test cases, and a build process.
    [Show full text]
  • Blocks Languages for Creating Tangible Artifacts
    Blocks Languages for Creating Tangible Artifacts Franklyn Turbak, Smaranda Sandu, Olivia Kotsopoulos, Emily Erdman, Erin Davis, and Karishma Chadha Computer Science Department, Wellesley College Wellesley, Massachusetts, USA Email:ffranklyn.turbak, smaranda.sandu, olivia.kotsopoulos, emily.erdman, erin.davis, [email protected] Abstract—Logo turtles and Henderson’s picture language have for fabrication, many of which involve sketching or gesturing long been used to teach computational thinking by inspiring (e.g., [3], [4]). But we also wanted the environments to learners to construct programs that create complex geometric introduce nonprogrammers to computational thinking [5] and designs. We have developed visual blocks-based versions of these languages, TurtleBlocks and PictureBlocks, that allow users to give them hands-on experience with techniques like procedural transform their designs into tangible artifacts produced by laser abstraction, modularity, and divide/conquer/glue problem solv- cutters and vinyl cutters. Our languages embody two novel ing. We were inspired by the Eisenbergs’ Craft Technology features. First, they use constructive area geometry to convert Group at the University of Colorado, Boulder, which focuses the geometric designs generated by our programs into formats on computer science activities that involve creating personally suitable for laser and vinyl cutters. Second, they leverage static typing and polymorphism to provide a new way to reference the meaningful physical artifacts, including those fabricated on names of procedure parameters and local variables in a blocks rapid prototyping machines ([6], [7]). Another exemplar of language. this spirit is Johnson’s FlatLang, a Logo-like language for specifying laser-cut construction kit parts [8]. I. INTRODUCTION We adapted two existing environments for creating geomet- Rapid prototyping machines such as vinyl cutters, laser ric designs.
    [Show full text]