You are here:
Program Inversion and Reversible Computation 2006
Summary: This course introduces the principles and methods of program inversion and reversible computation, and explores their connections.
Description: Many problems in computation can be specified in terms of computing the inverse of an easily constructed function. Program inversion is, beside program specialization and program composition, one of the fundamental operations on programs. A familiar example of two programs that are inverse to each other is the encoding and decoding of data. Why hand write two programs by hand when, in principle, it is sufficient to write one and to derive the other by automatic program transformation? This course explores different manifestations of program inversion, looks at reversible hardware and reversible programming, and surveys the state-of-the-art in these areas.
Study Material: Articles related to the course will be handed out.
Exam: Depending on the student's choice:
(1) Pass/Fail: 3/4 of the obligatory exercises, seminar presentation, regular attendance.
(2) Graded (13-skala): the requirements are the same as for Pass/Fail plus an exam at the end of the course.
Optional Projects: Written projects related to the course can be started after the first lectures or in the next block. Please consult your teachers. Written projects give separate 'project graded points'.