1,336 research outputs found
Plan Recognition in a Programmer's Apprentice
This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the Laboratory's artificial intelligence research is provided in part by the Advanced Research Projects Agency of the Department of Defense under the Office of Naval Research contract N00014-75-C-0643.Brief Statement of the Problem:
Stated most generally, the proposed research is concerned with understanding and representing the teleological structure of engineered devices. More specifically, I propose to study the teleological structure of computer programs written in LISP which perform a wide range of non-numerical computations. The major theoretical goal of the research is to further develop a formal representation for teleological structure, called plans, which will facilitate both the abstract description of particular programs, and the compilation of a library of programming expertise in the domain of non-numerical computation. Adequacy of the theory will be demonstrated by implementing a system (to eventually become part of a LISP Programmer's Apprentice) which will be able to recognize various plans in LISP programs written by human programmers and thereby generate cogent explanations of how the programs work, including the detection of some programming errors.MIT Artificial Intelligence Laboratory
Department of Defense Advanced Research Projects Agenc
Design attributes of educational computer software for optimising girls' participation in educational game playing
Recent research on girls in science education in Australian primary schools indicates a participation rate lower than that of boys. This inequality could lead subsequently to reduced opportunities for girls entering the workforce in their adult years. Many studies have attempted to reveal why this situation has arisen and a variety of strategies for increasing girls' participation has been suggested. A relatively new strategy that does not appear frequently in the research literature is the use of educational computer game software. An important question arises: does the game software used in primary school science education reflect design attributes favoured by boys and, if so, do these attributes actively discourage girls' participation by making them feel uncomfortable or stressed? My case study was designed to identify design features of computer games that girls prefer so that these features can be included in educational computer game software designed for science education, as well as the other Key Learning Areas. Through interviews, surveys and observations my interpretive study obtained the opinions and views of over 200 children in two suburban Australian primary schools in which I work as a teacher-librarian. In this role I purchase educational computer games and organize special classes for students to play them. From my analysis of the data I make recommendations that reflect girls' preferred design attributes for educational computer games. I also generate a checklist of criteria from my interpretations that may result in the purchase of software that could not only enhance girls' participation and success in primary school science, the curriculum area of greatest personal interest to me, but also in other Key Learning Areas of primary education.
Explorations in engagement for humans and robots
This paper explores the concept of engagement, the process by which
individuals in an interaction start, maintain and end their perceived
connection to one another. The paper reports on one aspect of engagement among
human interactors--the effect of tracking faces during an interaction. It also
describes the architecture of a robot that can participate in conversational,
collaborative interactions with engagement gestures. Finally, the paper reports
on findings of experiments with human participants who interacted with a robot
when it either performed or did not perform engagement gestures. Results of the
human-robot studies indicate that people become engaged with robots: they
direct their attention to the robot more often in interactions where engagement
gestures are present, and they find interactions more appropriate when
engagement gestures are present than when they are not.Comment: 31 pages, 5 figures, 3 table
Understanding LISP Programs: Towards a Programmer's Apprentice
Work reported herein was conducted at the Artificial Intelligence Laboratory, a Massachusetts Institute of Technology research program supported in part by the Advanced Research Projects Agency of the Department of Defense and monitored by the Office of Naval Research under Contract Number N00014-70-A-0362-0005.Several attempts have been made to produce tools which will help the programmer of complex computer systems. A new approach is proposed which integrates the programmer's intentions, the program code, and the comments, by relating them to a knowledge base of programming techniques. Our research will extend the work of Sussman, Goldstein, and Hewitt on program description and annotation. A prototype system will be implemented which answers questions and detects bug in simple LISP programs.MIT Artificial Intelligence Laborator
Principles of Knowledge Representation and Reasoning in the FRAPPE System
The purpose of this paper is to elucidate the following four important architectural principles of knowledge representation and reasoning with the example of an implemented system: limited reasoning, truth maintenance, hybrid architecture, and many sorted logic.MIT Artificial Intelligence Laborator
Formalizing Reusable Software Components
This paper has been accepted by the ITT Workshop on Reusability in Programming, Newport RI, September 7-9, 1983.There has been a long-standing desire in computer science for a way of collecting and using libraries of standard software components. Unfortunately, there has been only limited success in actually doing this. We believe that the lack of success stems not from any resistance to the idea, nor from any lack of trying, but rather from the difficulty of choosing an appropriate formalism for representing components. In this paper we define five desiderata for a good formalization of reusable software components and discuss many of the formalisms which have been used for representing components in light of these desiderata. We then briefly describe a formalism we are developing — the Plan Calculus — which seeks to satisfy these desiderata by combining together the best features of prior formalisms.MIT Artificial Intelligence Laborator
The Interaction Between Truth Maintenance, Equality, and Pattern-Directed Invocation: Issues of Completeness and Efficiency
We have implemented a reasoning system, called BREAD, which includes truth maintenance, equality, and pattern-directed invocation. This paper reports on the solution of two technical problems arising out of the interaction between these mechanisms. The first result is an algorithm which ensures the completeness of pattern-directed invocation with respect to equality. The second result is an algorithm which reduces a class of redundant proofs.MIT Artificial Intelligence Laborator
A Detection of Gas Associated with the M 31 Stellar Stream
Detailed studies of stellar populations in the halos of the Milky Way and the
Andromeda (M 31) galaxies have shown increasing numbers of tidal streams and
dwarf galaxies, attesting to a complicated and on-going process of hierarchical
structure formation. The most prominent feature in the halo of M 31 is the
Giant Stellar Stream, a structure ~4.5 degrees in extent along the sky, which
is close to, but not coincident with the galaxy's minor axis. The stars that
make up this stream are kinematically and chemically distinct from the other
stars in the halo. Here, we present HST/COS high-resolution ultraviolet
absorption spectra of three Active Galactic Nuclei sight lines which probe the
M 31 halo, including one that samples gas in the main southwestern portion of
the Giant Stream. We see two clear absorption components in many metal species
at velocities typical of the M 31 halo and a third, blue-shifted component
which arises in the stream. Photoionization modeling of the column density
ratios in the different components shows gas in an ionization state typical of
that seen in other galaxy halo environments and suggests solar to slightly
super-solar metallicity, consistent with previous findings from stellar
spectroscopy.Comment: 10 pages, 5 figures, accepted for publication in the Astrophysical
Journa
The Disciplined Use of Simplifying Assumptions
Submitted to the ACM SIGSOFT Second Software Engineering Symposium: Workshop on Rapid Prototyping. Columbia, Maryland, April 19-21, 1982.Simplifying assumptions — everyone uses them but no one's programming tool explicitly supports them. In programming, as in other kinds of engineering design, simplifying assumptions are an important method for dealing with complexity. Given a complex programming problem, expert programmers typically choose simplifying assumptions which, though false, allow them to arrive rapidly at a program which addresses the important features of the problem without being distracted by all of its details. The simplifying assumptions are then incrementally retracted with corresponding modifications to the initial program. This methodology is particularly applicable to rapid prototyping because the main questions of interest can often be answered using only the initial program.
Simplifying assumptions can easily be misused. In order to use them effectively two key issues must be addressed. First, simplifying assumptions should be chosen which simplify the design problems significantly without changing the essential character of the program which needs to be implemented. Second, the designer must keep track of all the assumptions he is making so that he can later retract them in an orderly manner. By explicitly dealing with these issues, a programming assistant system could directly support the use of simplifying assumptions as a disciplined part of the software development process.MIT Artificial Intelligence Laborator
Inspection Methods in Programming
The work reported here lies in the area of overlap between artificial intelligence software engineering. As research in artificial intelligence, it is a step towards a model of problem solving in the domain of programming. In particular, this work focuses on the routine aspects of programming which involve the application of previous experience with similar programs. I call this programming by inspection. Programming is viewed here as a kind of engineering activity. Analysis and synthesis by inspection area prominent part of expert problem solving in many other engineering disciplines, such as electrical and mechanical engineering. The notion of inspections methods in programming developed in this work is motivated by similar notions in other areas of engineering. This work is also motivated by current practical concerns in the area of software engineering. The inadequacy of current programming technology is universally recognized. Part of the solution to this problem will be to increase the level of automation in programming. I believe that the next major step in the evolution of more automated programming will be interactive systems which provide a mixture of partially automated program analysis, synthesis and verification. One such system being developed at MIT, called the programmer's apprentice, is the immediate intended application of this work. This report concentrates on the knowledge are of the programmer's apprentice, which is the form of a taxonomy of commonly used algorithms and data structures. To the extent that a programmer is able to construct and manipulate programs in terms of the forms in such a taxonomy, he may relieve himself of many details and generally raise the conceptual level of his interaction with the system, as compared with present day programming environments. Also, since it is practical to expand a great deal of effort pre-analyzing the entries in a library, the difficulty of verifying the correctness of programs constructed this way is correspondingly reduced. The feasibility of this approach is demonstrated by the design of an initial library of common techniques for manipulating symbolic data. This document also reports on the further development of a formalism called the plan calculus for specifying computations in a programming language independent manner. This formalism combines both data and control abstraction in a uniform framework that has facilities for representing multiple points of view and side effects
- …