2002 by Ute Schmid

Automatisches Programmieren/Automatic Programming

Ute Schmid und Jens Waltermann (Tutor)

Institut für Informatik, FB Mathematik-Informatik, Universität Osnabrück

Praktikum und Seminar im Sommersemester 2002
(programming lab and seminar course, summer term 02)

Kategorie: KI, Vertiefung/Category: AI, advanced

Course language: English

Einführung in Automatisches Programmieren als Teilgebiet des wissensbasierten Software-Engineering (KBSE). Schwerpunkt: deduktive und induktive Programmsynthese. Programmtransformation, das System KIDS; Programmkonstruktion mittels konstruktivem Theorembeweis; Induktion rekursiver funktionaler Programme aus Ein-Ausgabe-Beispielen und Berechnungsspuren; Induktive logische Programmierung und Programmsynthese; Programmieren durch Vormachen für die Endbenutzerprogrammierung; Beziehungen zum Lernen von Strategien und Kontrollregeln.
Im Rahmen des Praktikums werden spezielle Themen aus dem Bereich der Programmsynthese in Zweier-Gruppen bearbeitet: von der Präzisierung der Aufgabenstellung, über die Rezeption der notwendigen Literatur, zur Formalisierung, Implementierung und Evaluation. Programmiersprache je nach Thema ML, Lisp oder Java.
Empf. Semester: 4. Sem. und höher (erwünscht: Vorlesung Funktionale Programmierung)

Introduction to automatic programming as research area of knowledge-based software-engineering (KBSE), focussing on deductive and inductive program synthesis. Programm transformation, the system KIDS; program construction as constructive theorem proving; inductive inference of recursive programs from I/O examples and traces; inductive logic programming; programming by demonstration for enduser programming; relations to learning of strategies and constrol rules/policies.
In the lab course, selected topics in program synthesis are worked on in groups of two students, covering task specification, literature studies, formalization, implementation, and evaluation. Programming language is ML, Lisp, or Java.
Recommended for 4th or higher semester (helpful background: lecture `Functional Programming')


Hours and Contact Credits Seminar Schedule and Syllabus Programming Lab Topics Students

Hours and Contact

Credits

Schedule and Syllabus

A selection of topics: Knowledge-based software engineering (KBSE) is an research area concerned with the application of AI technology to support development and evaluation of software systems. Active research is in the domains of specification acquisiton, program synthesis, program reuse, program verification and validation. Automatic programming as a part of KBSE is focussing on machine support for the programming process. Program synthesis, finally, is concerned with automatic (or interactive) generation of program code from specifications. In this course, we are focussing on inductive and deductive synthesis methods. Inductive synthesis is a special area of machine learning: the behavior of a desired (small) program is specified by some input/output examples and the synthesis algorithms generalizes over them, typically constructing a recursive program. Deductive synthesis means the derivation of a program from a complete and formal specification either by application of transformation rules or by a constructive proof. Practical Links:

Programming Lab Topics

Students

[mailto-allstudents]

Top of Page