Objective
Background
Inductive programming incorporates all approaches which are concerned with learning programs or algorithms from incomplete specifications. Possible inputs in an IP system are (1) a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program, (2) traces or action sequences which describe the process of calculating specific outputs, (3) constraints for the program to be induced concerning its time efficiency or its complexity, (4) various kinds of background knowledge such as standard data types, predefined functions to be used, program schemes or templates describing the data flow of the intended program, (5) heuristics for guiding the search for a solution or other biases. Output of an IP system is a program in some arbitrary programming language containing conditionals and loop- or recursive control structures.
	Classical and current approaches to inductive programming are inductive
	synthesis of functional programs (extensions of Summers-like 
	strategies),
	inductive logic programming, evolutionary computation, and grammar
	inference. Typical areas of application are in the domain of software
	engineering where structural learning, software assistants and software
	agents can help to relieve programmers from routine tasks, give 
	programming support for endusers, or support of novice programmers 
	and programming tutor systems.  
	Further areas of application are
	language learning, learning recursive control rules
	for AI-planning, learning recursive concepts in 
	web-mining or for data-format transformations.
      
	The AAIP workshop took place the first time in 
	August 2005 at the ICML in Bonn 
	(http://www.cogsys.wiai.uni-bamberg.de/aaip05/). 
	
	
	Invited speakers were Stephen Muggleton, Fritz
	Wysotzki, and Marcus Hutter. Presentations were focussed on different 
	basic
	approaches to inductive programming. At the end of the workshop a one 
	hour
	discussion session brought many fruitful results with respect to 
	comparing the different approaches and application potential. 
	
	The approximately 25 participants encouraged the organizers to 
	continue this
	workshop, since it is the only event where cross-fertilization from
	different areas  
	(e.g., logic/functional/constraint programming, machine learning, 
	grammar
	inference, 
	evolutionary programming) is possible for the problem of learning 
	programs 
	from incomplete specifications.
      
Goals of the Workshop
In the workshop, we aim at bringing together researchers working on different approaches to inductive programming with the goal of discussing and evaluating the relative strengths and limitations of the different approaches (class of learnable programs, quality of learned programs, amount of background knowledge needed for synthesis, efficiency of synthesis, etc.). Furthermore, we are interested in presenting current applications and discussing possible further application domains.
Participants
The workshop will be interesting to anyone studying the inductive synthesis of general programs in any aspect.
Topics of interest include but are not limited to:
- New approaches of synthesis of recursive programs with techniques from inductive logic programming, genetic programming, synthesis of functional programs, grammar inference.
- Theoretical analyses of learnability of classes of recursive/loop programs.
- Applications of inductive synthesis of general programs in the context of software engineering, such as programming support for endusers, novice programmers and routine programming.
- Applications of inductive synthesis of general programs for policy learning, language learning, web-mining, data transformation.
