25.10.15 - 30.10.15, Seminar 15442

Approaches and Applications of Inductive Programming

Diese Seminarbeschreibung wurde vor dem Seminar auf unseren Webseiten veröffentlicht und bei der Einladung zum Seminar verwendet.

Motivation

Inductive programming research addresses the problem of learning (mostly declarative) programs from incomplete specifications, such as input/output examples, observed traces, or constraints. Beginning in the 1960-ies, this area of research was initiated in artificial intelligence (AI) exploring the complex intellectual cognitive processes involved in producing program code which satisfies some specification. Furthermore, applications of AI for software engineering are investigated resulting in methodologies and techniques for automating parts of the program development process. Inductive programming can be seen as a very special subdomain of machine learning where the hypothesis space consists of classes of computer programs.

Nowadays, researchers working on inductive programming are distributed over different communities, especially inductive logic programming, evolutionary programming, grammar inference, functional programming, and programming languages and verification. Furthermore, similar approaches are of interest in programming by demonstration applications for end-user programming as well as in cognitive models of inductive learning.

The recent release of FlashFill as a plug-in inductive programming tool for Microsoft Excel is an impressive demonstration that inductive programming research has matured in such a way that commercial applications become feasible.

In the seminar, we aim to bring together researchers from different areas of computer science – especially from machine learning, AI, declarative programming, and software engineering – and researchers from cognitive psychology interested in inductive learning as well as in teaching and learning computer programming. Furthermore, participants from industry are encouraged to present current as well as visionary applications for inductive programming.

We will mainly address the following aspects which partially were identified as relevant topics during the previous seminar:

  • In-depth discussions of the different algorithmical approaches to inductive programming and identification of commonalities and differences as well as possibilities to combine approaches. While in the previous seminar the focus was on inductive logic programming and inductive functional programming, we plan to give more regard to evolutionary and search-based approaches in the current seminar.
  • Presentation of inductive programming systems and applications.
  • Discussion and further collaboration about the process of constructing a collection of benchmarks and problem repository for the inductive programming community.
  • Discussion of emerging methods such as meta-interpretative learning and higher-order functions.
  • Relative merits of domain-specific versus general approaches.
  • Analysis of the perspectives and applications of inductive programming as a tool for incremental knowledge acquisition in the areas of developmental robotics, knowledge-based systems, deep architectures, etc.
  • Relations of inductive programming and cognitive processes of inductive generalization.
  • Applications of inductive programming in the context of teaching and learning computer programming.