12 research outputs found

    Natural Language Interface for Java Programming: Survey

    Get PDF
    It is really difficult for new programmers to deal with the programming language syntax while learning programming .New programmers often struggle because they are forced to learn syntax and general programming skills simultaneously. NaturalJava is a prototype text-based natural language interface for Java programming that accepts English sentences from the keyboard and produces syntactically correct Java source code. This interface mainly contains three components:first is a Sundance which is a partial parser, second is PRISM, A knowledge-based case frame interpreter and third component is Treeface, Abstract Syntax Tree(AST) Manager. This paper aims to provide overview on NaturalJava Prototype which converts english sentences into java source code

    A Natural Language Dialog System Based on Active Ontologies

    Get PDF
    Abstract: Programming today requires years of training. With natural language, programming would become available to everyone and enable end users to program their devices or extend their functionality without any knowledge of programming languages. We present an assistant usable in technical domains that uses natural language understanding, programming step-by-step and an active dialog management system. It allows users to manipulate spreadsheet data by using natural language. We extend our previous system with active ontologies. By adding additional information to an ontology, such as a rule evaluation system and a fact store, it becomes an execution environment instead of just being a representation of knowledge. Sensor nodes register certain events and store them in the fact store. An evaluation mechanism tests the new facts against the existing rules and performs the associated action if one or more rules apply to the stored facts. The system also handles references to previous results and expressions, allowing the construction of complex expressions step-by-step. It also creates new formulas by using End-User Programming concepts and supports the use of repetitive tasks that involve use of conditions and negations. An evaluation shows that the active ontology-based approach resolves 90% of the input tasks which is an increase of 10% over the pattern matching approach

    Programming fundamentals and human factors: an empirical study of three variables

    Get PDF
    In the present study we identify and experimentally investigate variations in the values of three important variables that are present in learning environments for programming fundamentals: the type of the source of problems (concrete vs. abstract); the type of the programming language grammar (context-free vs. natural language like); and the distance between the concepts in the source of problems and the programming language primitives (close vs. distant). We understand that the results of our research can be used to design better courses and learning material, to improve students' performance in the learning of introductory programming

    Natural Language User Interface For Software Engineering Tasks

    Get PDF
    In this paper, we present the idea to use natural language as the user interface for programming tasks. Programming languages assist with repetitive tasks that involve the use of conditionals, loops and statements. This is what is often challenging users. However, users can easily describe tasks in their natural language. We aim to develop a Natural Language User Interface that enables users to describe algorithms, including statements, loops, and conditionals. For this, we extend our current spreadsheet system to support control flows. An evaluation shows that users solved more than 60% of tasks. Although far from perfect, this research might lead to fundamental changes in computer use. With natural language, programming would become available to everyone. We believe that it is a reasonable approach for end user software engineering and will therefore overcome the present bottleneck of IT proficients

    Natural Language Human-Computer Dialogue: Menu-Based Natural Language and Visual Performance

    Get PDF
    The present study was conducted to determine design principles for menu-based natural language (MBNL) interfaces and to provide evidence for the nature of visual search processes with menu-based systems. The effects of window size, window activity, and query length were investigated. Window size was manipulated as a between-subjects variable with three levels representing a sixteen-item window size, an eight-item window size, and a four-item window size. Window activity was manipulated as a within-subjects variable with two levels representing single active and multiple active windows. Query length was manipulated as a within-subjects variable with three levels representing one-, two-, and three-item query lengths. Thirty six subjects randomly assigned to three groups, based on the window size factor, performed queries with the three query lengths in both window activity conditions in counterbalanced order. It was found that two- and three-item queries were performed faster with single active windows. However, subjects rated multiple active windows as more \u27natural\u27. Query times also increased with query length and errors were most likely to occur on the longest query. Longer eye fixation durations were observed with the four-item window size. Fixation frequencies, fixation durations, dwell times, and relative dwell times all varied as a function of query length. Visual behavior also depended on which \u27area of interest\u27 subjects were viewing, and this effect interacted with window activity and query length. Finally, it was found that menus were not scanned randomly. However, scanpaths were less deterministic with multiple active windows and tended to become less constrained as query length increased. Based on the findings, human factors design principles were derived for application to MBNL interfaces

    Knowledge restructing and the development of expertise in computer programming

    Get PDF
    This thesis reports a number of empirical studies exploring the development of expertise in computer programming. Experiments 1 and 2 are concerned with the way in which the possession of design experience can influence the perception and use of cues to various program structures. Experiment 3 examines how violations to standard conventions for constructing programs can affect the comprehension of expert, intermediate and novice subjects. Experiment 4 looks at the differences in strategy that are exhibited by subjects of varying skill level when constructing programs in different languages. Experiment 5 takes these ideas further to examine the temporal distribution of different forms of strategy during a program generation task. Experiment 6 provides evidence for salient cognitive structures derived from reaction time and error data in the context of a recognition task. Experiments 7 and 8 are concerned with the role of working memory in program generation and suggest that one aspect of expertise in the programming domain involves the acquisition of strategies for utilising display-based information. The final chapter attempts to bring these experimental findings together in terms of a model of knowledge organisation that stresses the importance of knowledge restructuring processes in the development of expertise. This is contrasted with existing models which have tended to place emphasis upon schemata acquisition and generalisation as the fundamental modes of learning associated with skill development. The work reported here suggests that a fine-grained restructuring of individual schemata takes places during the later stages of skill development. It is argued that those mechanisms currently thought to be associated with the development of expertise may not fully account for the strategic changes and the types of error typically found in the transition between novice, intermediate and expert problem solvers. This work has a number of implications for existing theories of skill acquisition. In particular, it questions the ability of such theories to account for subtle changes in the various manifestations of skilled performance that are associated with increasing expertise. Secondly, the work reported in this thesis attempts to show how specific forms of training might give rise to the knowledge restructuring process that is proposed. Finally, the thesis stresses the important role of display-based problem solving in complex tasks such as programming and highlights the role of programming language notation as a mediating factor in the development and acquisition of problem solving strategies

    TOWARD SYMBIOTIC HUMAN-AI INTERACTION FOCUSING ON PROGRAMMING BY EXAMPLE

    Get PDF
    Programming has become a new literacy, but is still inaccessible to ordinary people. Programming-by-example (PBE) is an alternative approach that allows people to teach computers repetitive tasks by demonstrating couple input and output examples of the tasks. While the advancements of PBE have been mainly driven by algorithmic improvements, a growing community of researchers started realizing the importance of issues on the human side of PBE. For instance, inexperienced users often find it hard to provide complete and consistent examples, which is crucial for computers to learn the correct programs. Unfortunately, most PBE systems have limited ways to communicate with users about what it can or cannot do, and how to handle unsuccessful situations. The lack of symbiotic interaction between human users and PBE engines remain as a major hurdle against a widespread adoption of PBE techniques. To address the issues on the human side of PBE, this dissertation has four research threads. First, we began with two formative studies to establish a better understanding of inexperienced users' needs and mental models. Second, based on the findings of the formative studies, we developed a Visual Environment for Symbiotic Programming, called VESPY. VESPY interleaves visual programming and PBE techniques, enabling users (1) to decompose complex tasks into small modules on its 2-d grid, and (2) to complete each module by providing input and output examples. Four sample programs demonstrate VESPY's remarkable versatility. However, we also noticed that VESPY still had a number of usability issues. Third, to better understand the usability issues and how to help users out from common mistakes, we conducted an online user study that observed how inexperience users perform program decomposition and disambiguation, which are the two core activities of PBE. We identified seven types of mistakes, and reaffirmed that informative feedback on those mistakes is crucial for designing usable systems. Finally, we explored the design space of feedback components, in order to understand their impact on user's experience. My dissertation contributes to the AI and HCI communities with: (i) identification of unmet needs of end-users of the Web; (ii) characterization of non-programmers’ mental model; (iii) design process of interleaving visual programming and PBE; (iv) identification of mistakes people make while using PBE; and (v) design and assessment of feedback components for PBE users

    Eine Architektur für Programmsynthese aus natürlicher Sprache

    Get PDF
    Die Arbeit entwirft ein domänenunabhängiges Vorgehen, das aus natürlichsprachlichen englischen Texten Programme ableitet. Eingabetexte werden mit computerlinguistischen Analysen bearbeitet und schließlich auf Quelltext abgebildet. Um die Analysen von der anzusteuernden API zu entkoppeln, wird diese als Modell in den Analyseprozess eingespeist. Eine Fallstudie zur Programmierung von 3D-Animationen und eine zur Heimautomation zeigen die Leistungsfähigkeit und Flexibilität des Verfahrens
    corecore