"Computer programming is the process of constructing executable code from fragmentary information. ... When computer programming is done by a machine, the process is called automatic programming. AI researchers are interested in studying automatic programming for two reasons: First, it would be highly useful to have a powerful automatic programming systems that could receive casual and imprecise specifications for a desired target program and then correctly generate that program; second, automatic programming is widely believed to be a necessary component of any intelligent system and is therefore a topic for fundamental research in its own right."
– excerpt from Biermann, A. 1992. Automatic Programming. In Encyclopedia of Artificial Intelligence. 2nd edition, Stuart C. Shapiro, editor, 18 - 35. New York: John Wiley & Sons.
Automated tutoring systems offer the flexibility and scalability necessary to facilitate the provision of high quality and universally accessible programming education. In order to realise the full potential of these systems, recent work has proposed a diverse range of techniques for automatically generating hints to assist students with programming exercises. This paper integrates these apparently disparate approaches into a coherent whole. Specifically, it emphasises that all hint techniques can be understood as a series of simpler components with similar properties. Using this insight, it presents a simple framework for describing such techniques, the Hint Iteration by Narrow-down and Transformation Steps (HINTS) framework, and it surveys recent work in the context of this framework. It discusses important implications of the survey and framework, including the need to further develop evaluation methods and the importance of considering hint technique components when designing, communicating and evaluating hint systems. Ultimately, this paper is designed to facilitate future opportunities for the development, extension and comparison of automated programming hint techniques in order to maximise their educational potential.
Greater collaboration across the Australian financial services industry is required in order to help financial advisers leverage the full potential of artificial intelligence and machine-learning technology, according to education provider Kaplan Professional and regtech pioneer Red Marker. Matt Symons, Red Marker CEO, said there needs to be a mindset change in how AI and machine-learning tools can best assist the industry. "It is important both dealer groups and vendors progress with realistic expectations, particularly around the'pre-work' that needs to be done to ensure financial advice can become an ideal candidate for automated solutions," Symons said. "If the financial services industry wants to increase the likelihood that effective statement of advice (SoA) review solutions emerge at a faster rate, then we need to come together and collaborate... working together is going to be key to developing highly reliable, automated review solutions." The two organisations said that before the industry could leverage AI and machine learning in financial advice, existing pre-conditions needed to be in place, including managing expectations, recognising the limitations in training data, and resolving diverging approaches to SoA construction, automatic programming language, and product comparison logic.
AR&A techniques have been used to solve a variety of tasks, including automatic programming, constraint satisfaction, design, diagnosis, machine learning, search, planning, reasoning, game playing, scheduling, and theorem proving. The primary purpose of AR&A techniques in such settings is to overcome computational intractability. In addition, AR&A techniques are useful for accelerating learning and summarizing sets of solutions. The Fifth Symposium on Abstraction, Reformulation, and Approximation (SARA-2002) was held from 2 to 4 August 2002, directly after the Eighteenth National Conference on Artificial Intelligence (AAAI-2002). It was chaired by Sven Koenig from the Georgia Institute of Technology and Robert Holte from the University of Alberta (Canada) and held at Kananaskis Mountain Lodge, Kananaskis Village, Alberta (Canada) between Calgary and Banff in the Rocky Mountains.
Most work in automatic programming has focused primarily on the roles of deduction and programming knowledge However, the role played by knowledge of the task domain seems to be at least as important, both for the usability of an automatic programming system and for the feasibility of building one which works on nontrivial problems This perspective has evolved during the course of a variety of studies over the last several years, including detailed examination of existing software for a particular domain (quantitative interpretation of oil well logs) and the implementation of an experimental automatic programming system for that domain The importance of domain knowledge has two important implications: a primary goal of automatic programming research should be to characterize the programming process for specific domains; and a crucial issue to be addressed in these characterizations is the interaction of domain and programming knowledge during program synthesis Used by permission of the International Joint Conferences on Artificial Intelligence; copies of the Proceedings are available from William Kaufmann, Inc, 95 First St., Los Altos, CA 94022 USA. For example, the work of Green (1969) and Waldinger and Lee (1969) in the late 1960s was concerned with the use of a theorem-prover to produce programs. This deductive paradigm continues to be the basis for much research in automatic programming (e.g., Manna & Waldinger 1980, Smith 1983). In the mid 1970's, work on the PSI project (Barstow 1979, Green 1977, Kant 1981) and on the Programmer's Apprentice (Rich 1981) was fundamentally concerned with the codification of knowledge about programming techniques and the use of that knowledge in program synthesis and analysis Work within the knowledge-based paradigm is also continuing (e.g., Barstow 1982, Waters 1981). This article is concerned with the role played by knowledge of the task domain, a role which seems to be at least as important.
Our approach to automatic programming is based on reuse of generic algorithms through views. A generic algorithm performs some task, such as sorting a linked list of records, based on abstract descriptions of the data on which the program operates. A view describes how actual application data corresponds to the abstract data as used in the generic algorithm. Given a view, a generic algorithm can be specialized by a compilation process to produce a version of the algorithm that performs the algorithm directly on the application data.
The course consists of lectures for the first two-thirds of the semester. Homework problems and programming assignments illustrate the lecture material. The programs are not long; the intent is to gain some exposure to several kinds of programming systems. The latter part of the semester covers readings in the research literature; students are expected to present one or two papers to the class. Many of the world's best researchers in automatic programming are in Austin: Jim Browne, Don Batory, Elaine Kant, Ira Baxter, Ted Biggerstaff; they will be invited to present guest lectures to describe their work.
Our goal is automatic generation of computer programs from specifications that are much smaller and easier to write than ordinary programs. Generation of geometric programs specified by diagrams 2011 Yulin Li and Gordon S. Novak, Jr., In Proceedings of the 10th ACM international conference on Generative programming and component engineering, pp.
Professor Martin, whose main interest was in the practical application of artificial intelligence, was associated with the Laboratory for Computer Science and the Artificial Intelligence Laboratory at MIT. His work involved computer programs that embody various forms of expertise---mathematical, medical, management or linguistic---and the application of this expertise to practical ends. His system for symbolic mathematics is now used around the country by a large community of scientists. Professor Martin's interest in mangagement led him to the development of automatic programming techniques that are widely used.
The industry today is on a constant look-out for good programmers. In this new age of digital services and products, it's a premium to possess programming skills. Whenever a friend asks me to refer a good programmer for his company, I tell him -- why would I refer to you, I will hire her for my team! But what does having programming skills really mean? What do we look for when we hire programmers?
We present Constituent Grammatical Evolution (CGE), a new evolutionary automatic programming algorithm that extends the standard Grammatical Evolution algorithm by incorporating the concepts of constituent genes and conditional behaviour-switching. CGE builds from elementary and more complex building blocks a control program which dictates the behaviour of an agent and it is applicable to the class of problems where the subject of search is the behaviour of an agent in a given environment. It takes advantage of the powerful Grammatical Evolution feature of using a BNF grammar definition as a plug-in component to describe the output language to be produced by the system. The main benchmark problem in which CGE is evaluated is the Santa Fe Trail problem using a BNF grammar definition which defines a search space semantically equivalent with that of the original definition of the problem by Koza. Furthermore, CGE is evaluated on two additional problems, the Los Altos Hills and the Hampton Court Maze. The experimental results demonstrate that Constituent Grammatical Evolution outperforms the standard Grammatical Evolution algorithm in these problems, in terms of both efficiency (percent of solutions found) and effectiveness (number of required steps of solutions found).