Inductive programming is concerned with the automated construction of decl- ative-often functional -recursiveprogramsfromincompletespeci?cationssuch as input/output examples. The inferred program must be correct with respect to the provided examples in a generalizing sense: it should be neither equivalent to it, nor inconsistent. Inductive programming algorithms are guided explicitly or implicitly by a language bias (the class of programs that can be induced) and a search bias (determining which generalized program is constructed ?rst). Induction strategiesare either generate-and-testor example-driven.In genera- and-test approaches, hypotheses about candidate programs are generated in- pendently from the given speci?cations. Program candidates are tested against the given speci?cation and one or more of the best evaluated candidates are - veloped further. In analytical approaches, candidate programs are constructed in an example-driven way. While generate-and-test approaches can - in prin- ple - construct any kind of program, analytical approaches have a more limited scope. On the other hand, e?ciency of induction is much higher in analytical approaches.Inductive programming is still mainly a topic of basic research, exploring how the intellectual ability of humans to infer generalized recursive procedures from incomplete evidence can be captured in the form of synthesis methods. Intended applications are mainly in the domain of programming assistance - either to relieve professional programmers from routine tasks or to enable n- programmers to some limited form of end-user programming. Furthermore, in future,inductiveprogrammingtechniquesmightbe appliedtofurtherareassuch as support inference of lemmata in theorem proving or learning grammar rules.