Toward Naturalistic Programming

Total Page:16

File Type:pdf, Size:1020Kb

Toward Naturalistic Programming Beyond AOP: Toward Naturalistic Programming Cristina Videira Lopes, Paul Dourish David H. Lorenz, Karl Lieberherr School of Information and Computer Science College of Computer and Information Science University of California, Irvine Northeastern University Irvine, CA 92697 Boston, MA 02115 +1-949-824-1525/8127 +1-617-373-2076/2077 {lopes, jpd} @ ics.uci.edu {lorenz, lieber} @ ccs.neu.edu ABSTRACT Software understanding for documentation, maintenance or 1. INTRODUCTION evolution is one of the longest-standing problems in Software systems in fields such as Science, Engineering and Computer Science. The use of “high-level” programming Business are naturally complex, in that the structures and paradigms and object-oriented languages helps, but processes that they capture have a certain level of domain- fundamentally remains far from solving the problem. Most specific complexity requiring domain expertise. But, on top of programming languages and systems have fallen prey to the that natural complexity, the problem of software development assumption that they are supposed to capture idealized models is worsened by the existing software development of computation inspired by deceptively simple metaphors technologies. The kernel of the problem is that the existing such as objects and mathematical functions. Aspect-oriented description mechanisms – programming languages – are programming languages have made a significant breakthrough inadequate when it comes to conveying relevant information by noticing that, in many situations, humans think and to people about the software systems. The established describe in crosscutting terms. In this paper we suggest that programming paradigms fail in providing appropriate support the next breakthrough would require looking even closer to for non-hierarchical concerns, additional or custom-made the way humans have been thinking and describing complex behavior, and non-trivial domain-specific structures and systems for thousand of years using natural languages. While processes. As a result, software systems become fragile natural languages themselves are not appropriate for “monuments” of code that only illuminated software programming, they contain a number of elements that make “artisans” (i.e. projects leads) dare to modify, preventing the descriptions concise, effective and understandable. In real domain experts to control the software in a direct and particular, natural languages referentiality is a key factor in systematic manner. supporting powerful program organizations that can be easier The use of architectural descriptions, rigorous software understood by humans. development practices and modern programming languages and tools helps, but fundamentally remains far from solving Categories and Subject Descriptors the problem. The kernel of the problem is the lack of support for program understanding by the different people involved in D.3.3 [Programming Languages]: Language Constructs and the project. Multithreading, exceptional cases, optimizations, Features – control structures. and the like, contribute to the natural complexity of the D.3.2 [Programming Languages]: Language Classifications – programs. But a considerable part of the complexity is due to Very high-level languages. the fact that programmers, when writing the code, are forced by the programming language to write it down in arcane and esoteric ways that are a long way from expressing the natural General Terms intentions behind the code. As a consequence, many times Documentation, Design, Human Factors, Languages. programmers prefer to write blocks of code from scratch rather than having to understand and debug other people’s code. Keywords Especially when working at the systems level, code that communicates effectively to the machine rarely communicates Language Design, Aspect-Oriented Programming, Natural effectively to human readers. Language, Cognitive Foundations of Programming. 1.1 Programming Reflects Thinking Researchers are constantly looking for ways to express the programs in a form that more closely follows the way programmers think before they are forced to break their thoughts in operational details imposed by the existing programming languages. We know that this is possible, because when programmers are asked to explain their code, Copyright is held by the author/owner(s). they do so concisely, skipping operational details, sometimes OOPSLA’03, October 26–30, 2003, Anaheim, California, USA. ACM 1-58113-751-6/03/0010. using a thought flow that is quite different from the control flow in the code. Our goal is to address the gap between those two forms of explanation. Over the years, several languages, both textual and visual, overriding concern with binding and transformation.) Existing have been designed that focus specifically on issues of programming languages force programmers to express ideas usability and expressiveness (e.g., [60] and [10]). They usually using a narrow support for structural and reflective referencing target children, the novice programmer, end-user programming and a total lack of support for temporal referencing. and rapid prototyping. None of these languages, however, has had much success in systems software development. The 1.3 Contribution problem is that those languages and environments present The main purpose of this paper is to re-generate some simplified models of computation that cannot support the discussion around the role of Natural Languages in demands of systems programming. Programming Language design. We are aware that this is a In the domain of professional programming, Object-Oriented relatively old theme that can be traced to the 1960’s [55]. A lot Programming and Aspect-Oriented Programming (AOP) [20] has happened in Linguistics and in Programming Languages have been addressing some related issues within existing since then. In particular, some lessons learned from Aspect- programming languages, targeting complex software Oriented Programming lead us to believe that there is value in applications. In particular, AspectJ [1], an AOP extension to revisiting the issue now. AOP made us pay more attention to Java, allows programmers to localize crosscutting concerns the way certain referencing mechanisms occurring in natural such as tracing, logging or profiling in program modules of languages allow us to express some ideas that can’t be easily their own and outside the classes. That way, code that reflects expressed in traditional programming languages. some important design units, but that Java forces to be spread In this paper we suggest two new ways of thinking beyond throughout the system, can be encapsulated in their own AOP, the first one within the AOP framework, and the second modules, improving readability, maintainability and outside that framework. We make the argument that the configurability. The success of AspectJ is due, in part, to the primitive abstractions in programming languages should be acknowledgement in the software industry that the problems drawn from the study of Natural Languages, rather than from of programming language expressiveness are serious; AspectJ Computer Engineering or Mathematics or ad-hoc metaphors embodies an approach which makes code more expressive, such as Objects. more readable, and more reliable, and can address industry’s need for improved reliability and decreased development time. The reminder of the paper is organized as follows. In Section 2 AspectJ achieves this by making programs follow more we revisit AOP, highlighting the English-equivalents of the closely the intentions of their developers. But even AspectJ is expression mechanisms in some AOP languages. In Section 3 still far from supporting the natural expression forms we are we state some improvements that can be done in AOP systems, looking for. while remaining centered in the AOP paradigm. Section 4 builds on the observations in previous sections and drafts a 1.2 The Role of Natural Languages programming language way beyond AOP. Section 5 describes Before computers came along, people were successfully the relevant fields of research that should be taken into defining and disseminating complex systems for thousands of consideration. Finally, Section 6 concludes the paper in a years, using a technology they come equipped with: natural rather inconclusive manner. language. They were writing all sorts of documents containing structure and process information, ranging from specification 2. ASPECT-ORIENTED PROGRAMMING manuals of complex systems to constitutions of social Understanding the leap between object-oriented modular organizations. Writing a structured document, for example, the programming and aspect-oriented crosscutting programming Constitution of the State of California, requires much more is crucial to contemplate a leap beyond AOP. We have been than simply putting words together in grammatically correct deeply involved in the development of Aspect-Oriented sentences; it requires dividing the subject matter into smaller Programming [20] and several flavors of it, D ([34], [35], [36]), and smaller units, e.g., chapters, sections, subsections, AspectJ ([37], [21]), Demeter [32] and Aspectual paragraphs, sentences, that convey semantic information to the Collaborations [31]. AspectJ, now reaching the 1.0 version, is reader. Those small units don’t exist in isolation; they refer to a stable extension to Java used by large numbers of software and use each other. They do so in ways that obey the rules of engineers in industry. the natural language and
Recommended publications
  • The American Short Story: from Poe to O. Henry. a Hypercard Application
    DOCUMENT RESUME ED 330 315 IR 014 934 AUTHOR May, Charles TITLE The American Short Story: From Poe to 0. Henry. A HyperCard Application. INSTITUTION California State Univ., Long Beach. English Dept. PUB DATE 90 NOTE 38p.; Supported by the 1989-90 Dissemination Grant from the California State University Lottery Revenue Program for Instructional Development and Technology. PUB TYPE Guides - Non-Classroom Use (055) EDRS PRICE MF01/PCO2 Plus Postage. DESCRIPTORS Authoring Aids (Programing); *Computer Assisted Instruction; Computer Software Development; Elementary Secondary Education; English Instruction; English Literature; Higher Education; *Hypermedia; Short Stories IDENTIFIERS Apple Macintosh ABSTRACT This report describes a computer-assisted instructional application created on a Macintosh computer using HyperCard software. The iL3tructional program is aimed at those who teach college-level English education courses and those whoare planning a course on the use of technology in the English classroom. It is noted that the HyperCard software was developed to aid in teaching English literature, specifically short stories, and provides access not only to the text of the short story, but also to concepts and patterns throughout the story. The rationale behind using the Macintosh computer, the concept of hypermedia and hypertext and, in particular, the use of HyperCard on the Macintosh, are discussed. Also described is the theory of short story analysis that underlies the computer application. The report concludes with a detailed discussion of programming using the HyperCard software, and suggests a method for creating unique applications to meet the needs of individual classroomE. (DB) *********************************************************************** * Reproductions supplied by EDRS are the best that can be made * * from the original document.
    [Show full text]
  • Hypertalk: the Language for the Rest of Us
    HyperTalk: The Language for the Rest of Us Kyle Wheeler January 18, 2004 Contents 1 Introduction 1 Introduction 1 There is, perhaps, no piece of software written by Ap- ple Computer, Inc. more prone to generating extreme 2 History 1 emotions in its users than its operating system. Next 2.1 TheBirth ................ 1 below that, however, is HyperCard. Designed and re- 2.2 TheLife................. 2 leased in 1987 by Bill Atkinson [7], HyperCard was an 2.3 TheDeath................ 2 instant success. Leveraging the power and simplicity 2.4 TheLegend ............... 2 of its scripting language, HyperTalk, designed by Bill Atkinson and by Dan Winkler [1], HyperCard demys- 3 Goals 2 tified the art of creating software. The language has a grammar and syntax similar to English, and as such ap- 4 Syntax Semantics 3 pealed to computer hobbyists, teachers, and the uniniti- 4.1 Implementation Notes . 3 ated alike. The commands HyperTalk uses are similar to 4.2 Objects ................. 3 those used by the Macintosh Toolbox, the base-level API 4.3 Messages ................ 4 of Apple’s Macintosh operating system, and the logical 4.4 Handlers................. 4 structure is similar to Pascal and organized in an event- 5 Bibliography 4 driven manner [8]. A BNF 6 A.1 Scripts.................. 6 2 History A.2 Expressions ............... 6 A.3 Ordinals and Positions . 7 2.1 The Birth A.4 Chunks and Containers . 7 HyperTalk was born as the core scripting language of A.5 Objects ................. 7 the HyperCard application, developed by Bill Atkinson1 A.6 Commands . 8 for Apple Computer, Inc. in 1987 under the condition A.6.1 Command Nonterminals .
    [Show full text]
  • Errata: Response Analysis and Error Diagnosis Tools. INSTITUTION Illinois Univ., Urbana
    DOCUMENT RESUME ED 383 202 FL 023 001 AUTHOR Hart, Robert S. TITLE Errata: Response Analysis and Error Diagnosis Tools. INSTITUTION Illinois Univ., Urbana. Language Learning Lab. REPORT NO LLL-TR-T-23-94 PUB DATE Dec 94 NOTE 114p. PUB TYPE Guides Non-Classroom Use (055) EDRS PRICE MF01/PC05 Plus Postage. DESCRIPTORS Authorir, Aids (Programming); Comparative Analysis; *Computer Software; Data Processing; Discourse Analysis; *Error Analysis (Language); Error Patterns; *Hypermedia; *Item Analysis; Programming IDENTIFIERS *ERRATA (Hyper Card) ABSTRACT This guide to ERRATA, a set of HyperCard-based tools for response analysis and error diagnosis in language testing, is intended as a user manual and general reference and designed to be used with the software (not included here). It has three parts. The first is a brief survey of computational techniques available for dealing with student test responses, including: editing markup that identifies spelling, capitalization, and accent errors and extra, missing, or out-of-order words; pattern matching for rapid identification of specific grammatical errors, keyword searches, and easy specification of alternate answers; and error-tolerant parsing, which puts error diagnosis under control of a grammar and dictionary of the target language. The second section is a user's manual and tutorial guide, describing ERRATA and offering examples of its use. Section three is a reference manual useful to anyone with unusual analysis requirements or wanting to tailor-make responses analyses. Installation and technical information is also included, and complete program code is appended.(MSE) *********************************************************************** * Reproductions supplied by EDRS are the best that can be made from the original document.
    [Show full text]
  • Hyper Talk Tutorial Modules Kevin G. Christmas Master of Education
    HYPERTALK TUTORIAL MODULES KEVIN G. CHRISTMAS B.Ed., University of Lethbridge, 1986 A One-Credit Project Submitted to the Faculty of Education of The University of Lethbridge in Partial FulfIllment of the Requirements for the Degree MASTER OF EDUCATION LETHBRIDGE,ALBERTA June, 1993 TABLE OF CONTENTS PAGE I. INTRODUCTION ........................................................................... 1 II. UNIT OUTLINE............................................................................ 1 Lesson #1 .................................................................................... 2 Lesson #2 ..................................................................................... 3 Lesson #3 ..................................................................................... 3 Lesson #4 ..................................................................................... 3 Lesson #5 ..................................................................................... 4 Lesson #6 ..................................................................................... 4 Lesson #7 ..................................................................................... 5 Lesson #8 ..................................................................................... 5 Lesson #9 ..................................................................................... 6 Lesson #10 ................................................................................... 6 Lesson #11 - #20 .........................................................................
    [Show full text]
  • Problem Solving and Communication in a Hypercard Environment
    Problem Solving and Communication in a HyperCard Environment Dave Moursund and Sharon Yoder About the Authors Dr. David Moursund has been teaching and writing in the field of computers in education since 1963. He is a professor in the College of Education at the University of Oregon. Dr. Moursund has authored or coauthored more than 25 books and numerous articles on computers and education. He was the chairman of the department of computer science at the University of Oregon from 1969 to 1975. In 1979 he founded the International Council for Computers in Education (ICCE), which became the International Society for Technology in Education (ISTE) in 1989 when it merged with the International Association for Computing in Education. Dr. Moursund is currently the executive officer of ISTE. Dr. Sharon Yoder taught mathematics and computer science at the junior high and high school level for 15 years. Her most recent public school experience was as a secondary computer science teacher and a computer coordinator involved in developing system- wide computer curriculum and in planning teacher inservice training. In addition, she has taught mathematics, computer science, and computer education at a number of universities in northeastern Ohio, including Kent State University, the University of Akron, and Cleveland State University. She currently teaches computer education courses at the University of Oregon. For the past several years, Dr. Yoder has conducted workshops and presented papers at national conferences. She has been involved in a number of book-publishing projects, including the Nudges series, An Introduction to Programming in Logo Using LogoWriter, and An Introduction to Programming in Logo Using Logo PLUS.
    [Show full text]
  • Compileit! •••.••....•.••.••••.•.•..•...••.•.....•.• 119
    Compilelt! The XCMD Development System The XCMD Development System User Manual For Technical Support Call 510-943-7667 Monday-Friday, 9 am - 5 pm Pacific time Helzer Software Compilelt! User Manual ©1990-94 Heizer Software. All Rights Reserved. Rev. 5/95 Copyright Notice You are permitted, even encouraged, to make one backup copy of the enclosed programs. Beyond that is piracy and illegal. The software (computer programs) you purchased are copyrighted by the author with all rights reserved. Under the copyright laws, the programs may not be copied, in whole or part, without the written consent of the copyright holder, except in the normal use of the software or to make a backup copy. This exception does not allow copies to be made for others, whether or not sold, but the material purchased (together with all backup copies) may be sold, given, or loaned to another party. Under the law, copying includes translating into another language or format. You may use the software on any computer owned by you, but extra copies cannot be made for this purpose. If you have several computers requiring the use of this software, we are prepared to discuss a multi-use or site license with you. Compilelt! ©1989-1994 Tom Pittman. All Rights Reserved. Debuglt! ©1991-1994 Tom Pittman. All Rights Reserved. Compilelt! User Manual ©1990-94 Heizer Software. All Rights Reserved. No part of this document and the software product that it documents may be photocopied, reproduced, or translated to another language without the express, written consent of the copyright holders. The information contained in this document is subject to change without notice.
    [Show full text]
  • Hypertalk: the Language for the Rest of Us
    HyperTalk: The Language for the Rest of Us Kyle Wheeler January 18, 2004 Contents 1 Introduction 1 Introduction 1 There is, perhaps, no piece of software written by Ap- ple Computer, Inc. more prone to generating extreme 2 History 1 emotions in its users than its operating system. Next 2.1 TheBirth ................ 1 below that, however, is HyperCard. Designed and re- 2.2 TheLife................. 2 leased in 1987 by Bill Atkinson [7], HyperCard was an 2.3 TheDeath................ 2 instant success. Leveraging the power and simplicity 2.4 TheLegend ............... 2 of its scripting language, HyperTalk, designed by Bill Atkinson and by Dan Winkler [1], HyperCard demys- 3 Goals 2 tified the art of creating software. The language has a grammar and syntax similar to English, and as such ap- 4 Syntax Semantics 3 pealed to computer hobbyists, teachers, and the uniniti- 4.1 Implementation Notes . 3 ated alike. The commands HyperTalk uses are similar to 4.2 Objects ................. 3 those used by the Macintosh Toolbox, the base-level API 4.3 Messages ................ 4 of Apple’s Macintosh operating system, and the logical 4.4 Handlers................. 4 structure is similar to Pascal and organized in an event- 5 Bibliography 4 driven manner [8]. A BNF 6 A.1 Scripts.................. 6 2 History A.2 Expressions ............... 6 A.3 Ordinals and Positions . 7 2.1 The Birth A.4 Chunks and Containers . 7 HyperTalk was born as the core scripting language of A.5 Objects ................. 7 the HyperCard application, developed by Bill Atkinson1 A.6 Commands . 8 for Apple Computer, Inc. in 1987 under the condition A.6.1 Command Nonterminals .
    [Show full text]
  • Hypercard Installer Will Only Install Applescript Software If You’Re Using System 7
    ................................HyperCard Installation and new features K Apple Computer, Inc. © 1998 Apple Computer, Inc. All rights reserved. Under the copyright laws, this manual may not be copied, in whole or in part, without the written consent of Apple. Your rights to the software are governed by the accompanying software license agreement. The Apple logo is a trademark of Apple Computer, Inc., registered in the U.S. and other countries. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may constitute trademark infringement and unfair competition in violation of federal and state laws. Every effort has been made to ensure that the information in this manual is accurate. Apple is not responsible for printing or clerical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014-2084 408-996-1010 http://www.apple.com Apple, the Apple logo, AppleScript, HyperCard, HyperTalk, Mac, Macintosh, PowerBook, Power Macintosh, QuickDraw, and QuickTime are trademarks of Apple Computer, Inc., registered in the U.S. and other countries. Finder, MacinTalk, and Sound Manager are trademarks of Apple Computer, Inc. SOJOURNER™, MARS ROVER™, and SPACECRAFT DESIGN AND IMAGES © 1996-97, California Institute of Technology. All rights reserved. Other company and product names mentioned herein are trademarks of their respective companies. Mention of third-party products is for informational purposes only and constitutes neither an endorsement nor a recommendation. Apple assumes no responsibility
    [Show full text]
  • An Object-Oriented Application Generator Supporting Rapid Prototyping∗
    ApplBuilder - an Object-Oriented Application Generator Supporting Rapid Prototyping∗ Kaj Grønbæk Anette Hviid Randall H. Trigg† Computer Science Department Aarhus University, Denmark October 1991 Abstract This paper describes an object-oriented application generator, Ap- plBuilder, currently being developed in the Mjølner beta program- ming environment. ApplBuilder supports several rapid prototyping styles as well as final development of beta applications. User interface objects such as dialogs, menus, and windows are designed using direct manipulation graphical editors. Actions behind buttons and menu items are programmed as “scripts” in textual editors activated from within a graphical editor. The editors reflect changes in the code di- rectly in an underlying Abstract Syntax Tree (AST) thus saving com- pilation time. Moreover, generated applications are modularized so that editing, for instance the script for a button, only requires recom- pilation of the script itself. An advantage of ApplBuilder compared to other user-interface design tools such as HyperCard is that Ap- plBuilder’s scripts are embedded in a general purpose programming ∗To appear in proceedings of the Fourth international conference on software engineer- ing and its applications, Toulouse, December 9-13 1991. †Email: [email protected], [email protected], and [email protected]. 1 language making it possible to avoid calls to external routines written in another language. In addition, ApplBuilder’s ability to work with ASTs instead of textual code skeletons supports reverse engineering. Keywords: Rapid Prototyping, User Interface Design, Application Generation, Object-Orientation, Graphical Editing, Meta-Programming, Reverse Engineering. 1 Introduction. In recent years, prototyping has come to the fore as an essential part of the system development process (Squires et al, 1982; Boar, 1984; Lantz, 1986; Wilson & Rosenberg, 1988).
    [Show full text]
  • Javascript: the First 20 Years
    JavaScript: The First 20 Years ALLEN WIRFS-BROCK, Wirfs-Brock Associates, Inc., USA BRENDAN EICH, Brave Software, Inc., USA Shepherds: Sukyoung Ryu, KAIST, South Korea Richard P. Gabriel: poet, writer, computer scientist How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world’s most widely used programming language. This paper tells the story of the creation, design, evolution, and standardization of the JavaScript language over the period of 1995–2015. But the story is not only about the technical details of the language. It is also the story of how people and organizations competed and collaborated to shape the JavaScript language which dominates the Web of 2020. CCS Concepts: • General and reference ! Computing standards, RFCs and guidelines; • Information systems ! World Wide Web; • Social and professional topics ! History of computing; History of programming languages; • Software and its engineering ! General programming languages; Scripting languages. Additional Key Words and Phrases: JavaScript, ECMAScript, Standards, Web browsers, Browser game theory, History of programming languages ACM Reference Format: Allen Wirfs-Brock and Brendan Eich. 2020. JavaScript: The First 20 Years. Proc. ACM Program. Lang. 4, HOPL (June 2020), 190 pages. https://doi.org/10.1145/3386327 1 INTRODUCTION In 2020, the World Wide Web is ubiquitous with over a billion websites accessible from billions of Web-connected devices. Each of those devices runs a Web browser or similar program which is able to process and display pages from those sites. The majority of those pages embed or load source code written in the JavaScript programming language.
    [Show full text]
  • BAB II TINJAUAN PUSTAKA A. Adobe Animate Adobe Animate (Pengembangan Dari Adobe Flash) Merupakan Program Pembuatan Multimedia Da
    BAB II TINJAUAN PUSTAKA A. Adobe Animate Adobe animate (pengembangan dari adobe flash) merupakan program pembuatan multimedia dan animasi komputer yang dikembangkan oleh Adobe Systems. Animasi dapat digunakan untuk merancang grafik dan animasi vektor, dan mempublikasikannya untuk program televisi, video online, situs web, aplikasi web, aplikasi internet yang kaya, dan permainan video. Program ini juga menawarkan dukungan untuk raster graphics, rich text, audio dan video embedding, dan ActionScript scripting. Animasi dapat dipublikasikan untuk animasi HTML5, WebGL, Scalable Vector Graphics (SVG) dan sprite, dan format Flash Player sebelumnya (SWF) dan Adobe AIR. B. Action Script Action Script adalah bahasa pemrograman berorientasi objek yang awalnya dikembangkan oleh Macromedia Inc. (kemudian diakuisisi oleh Adobe Systems). Ini adalah turunan dari HyperTalk, bahasa scripting untuk HyperCard. Ini sekarang adalah dialek ECMAScript (yang berarti superset dari sintaks dan semantik bahasa lebih dikenal sebagai JavaScript), meskipun awalnya muncul sebagai saudara kandung, keduanya dipengaruhi oleh HyperTalk. Action Script digunakan terutama untuk pengembangan situs web dan perangkat lunak yang menargetkan platform Adobe Flash Player, yang digunakan pada halaman Web dalam bentuk file SWF yang disematkan. 4 Bacillus War Action..., Tabah Setya Budi Hutama, Fakultas Teknik dan Sains UMP, 2019 Action Script 3 juga digunakan dengan sistem Adobe AIR untuk pengembangan aplikasi desktop dan seluler. Bahasa itu sendiri adalah open- source yang spesifikasinya ditawarkan secara gratis dan kedua kompiler open source (sebagai bagian dari Apache Flex) dan mesin virtual open source (Mozilla Tamarin) tersedia. ActionScript juga digunakan dengan Scaleform GFx untuk pengembangan antarmuka pengguna 3D video game dan HUDs. C. Android Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup system operasi, middleware, dan aplikasi.
    [Show full text]
  • Lowering the Barriers to Programming: a Survey of Programming Environments and Languages for Novice Programmers
    Lowering the Barriers to Programming: a survey of programming environments and languages for novice programmers CAITLIN KELLEHER Carnegie Mellon University and RANDY PAUSCH Carnegie Mellon University _______________________________________________________________________ Since the early 1960's, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This paper presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then by the authors’ approach to making learning to program easier for novice programmers. The paper explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages. Categories and Subject Descriptors: H5.2 [Information Interfaces and Presentation]: User Interfaces - User- centered design; Interaction styles; Theory and methods; K.3 [Computing Milieux]: Computers and Education General Terms: Design, Languages, Human Factors Additional Key Words and Phrases: Human-computer interaction, Computer Science education, literacy, learning, problem solving ________________________________________________________________________ 1. INTRODUCTION Learning to program can be very difficult for beginning students of
    [Show full text]