
neuper@42144: \documentclass[12pt]{article}
neuper@42127: \usepackage{a4}
neuper@42127: \usepackage{times}
neuper@42127: \usepackage{latexsym}
neuper@42144: \bibliographystyle{alpha}
neuper@42144: %\bibliographystyle{abbrv}
neuper@42127: \usepackage{graphicx}
neuper@42127: 
neuper@42127: \def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
neuper@42127: \def\sisac{{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}}
neuper@42127: 
neuper@42127: \title{Tentative Title:\\
neuper@42127:   Theory of Functional Programming\\
neuper@42127:   Introduced by Isabelle and \isac}
neuper@42144: \author{n.n\\
neuper@42127: {\tt TODO@xxx.at}}
neuper@42127: 
neuper@42127: \begin{document}
neuper@42127: \maketitle
neuper@42144: %\abstract{
neuper@42144: %TODO
neuper@42144: %}
neuper@42127: 
neuper@42127: \section{Background}
neuper@42127: 
neuper@42144: ``Functional programing'' (FP) is one of the leading paradigms in programming besides ``object oriented programming'' %\cite{?} 
neuper@42144: and ``logic (or constraint) programming'' \cite{?}. One advantage of FP are general and elegant approaches to the mathematical theory of programming \cite{?}.
neuper@42130: 
neuper@42144: Presently FP gains importance in face of the ``multi-core crisis'' \cite{?}: functional programs are ready to exploit many cores in parallel. In spite of this fact, at Graz University of Technology (TUG) FP has vanished during recent years, and it is of actual importance to include FP again in education.
neuper@42130: 
neuper@42144: In order to support such education this thesis will compile a course based on advanced tools developed in the intersection between computer science and mathematics: The computer theorem prover Isabelle \cite{Nipkow-Paulson-Wenzel:2002} and the educational math assistant \sisac.
neuper@42130: 
neuper@42127: \section{Goal}
neuper@42127: 
neuper@42144: The goal of this thesis is generation of interactive course material on FP and respective theory of programming, implemented in Isabelle and \sisac.
neuper@42130: 
neuper@42147: The material shall use most recent developments, for instance the ``function package'' \cite{krauss:funs,krauss:termination07,krauss:partial06} recently implemented in Isabelle. This package supports all what is needed for programming and proving properties of programs.
neuper@42130: 
neuper@42144: Although addressing most recent developments and theory at the state of the art, the material also shall serve in early phases of programming. Experience shows, that in early phases (in analogy to doing mathematics \cite{?}) proceeding step by step in a program is important for learning. This will be done by implementing selected programs into \sisac.
neuper@42130: 
neuper@42144: The interactive course material shall serve in certain courses at TUG and in the recently established ``entry and orientation phase'' (Studien-Eingangs und -Orientierungs Phase, STEOP).
neuper@42130: 
neuper@42127: \section{State of the Art}
neuper@42144: The thesis cover a wide range of topics some of which will be presented in more detail to be agreed on.
neuper@42127: 
neuper@42144: \paragraph{Theory of functional programming ?}
neuper@42130: TODO
neuper@42130: 
neuper@42144: \paragraph{Proof tools for FP}
neuper@42144: Isabelle's function package \cite{krauss:funs} is the most advanced in comparison to other provers. It supports two different way of function definitions, one providing full automation (applicable in simple cases) and another featuring interactive proofs of termination.
neuper@42130: 
neuper@42144: The function package covers the full range of FP:  mutual, nested and higher-order recursion, partiality
neuper@42144: 
neuper@42144: The other European computer theorem prover, Coq \cite{}, has less powerful support for FP (TODO)
neuper@42144: 
neuper@42144: \paragraph{Didactics of FP} is concern of very different opinions: At some universities FP is addressed in introductory courses, while at other universities FP is considered an abstract topic addressed in higher semesters. The choice between these extreme alternatives seems to be related to principcal considerations on software construction \cite{aichernig:ingenieur}.
neuper@42144: 
neuper@42144: The planned course might provide a bridge between the alternatives, addressing novices as well as advanced students by employing computer theorem provers.
neuper@42144: 
neuper@42144: \paragraph{Educational math assistants,} if based on computer theorem proving, are appropriate to serve introduction to FP in a specific way: If considering evaluation of functional programs as rewriting, there is an obstacle. Empirical data show that students do not learn to apply rules at high-school --- for instance, the cannot apply the law of distributivity in algebra consciously, they do algebra in the same way they they use their mother language.
neuper@42144: 
neuper@42144: The experimental system \sisac{}\footnote{http://www.ist.tugraz.at/projects/isac/} developed at TU Graz seems appropriate to provide experience in rigorous application of rewrite rules as a prerequisite to understand evaluation in FP.
neuper@42130: 
neuper@42130: 
neuper@42127: \section{Thesis Structure}
neuper@42127: 
neuper@42144: The main result of this thesis is the interactive course material, accompanied by a thesis.
neuper@42130: 
neuper@42144: \paragraph{The interactive course material} will be implemented as Isabelle theories. Isabelle provides a document preparation system for theories which shall lead for a twofold presentation of the course: as (a) pdf-file(s) and as theories supporting interactive learning.
neuper@42130: 
neuper@42144: For stepwise exercises in \sisac{} an additional Isabelle theory is required, which contains the specifications and programs for the respective exercises in ML-sections.
neuper@42130: 
neuper@42144: \paragraph{The thesis} completes the work as required for a bakkalaureate.
neuper@42130: 
neuper@42144: %general survey on FP
neuper@42144: %
neuper@42144: %description of the state of the art in proof tools specialized on FP
neuper@42144: %
neuper@42144: %didactic consideration about the course (what has been omitted, ...)
neuper@42144: %
neuper@42144: %future work, probably extending the course to more advanced topics
neuper@42144: %
neuper@42144: %future work, extending the course to more elementary topics, probably usable at high school
neuper@42144: %
neuper@42144: %...
neuper@42144: %
neuper@42144: %... 
neuper@42130: 
neuper@42130: 
neuper@42127: \section{Timeline}
neuper@42127: 
neuper@42130: The main work shall be done during this summer as much as possible.
neuper@42130: 
neuper@42144: %Milestones
neuper@42144: %\subsection{TODO}
neuper@42144: %study introductory material for Isabelle; contact Alexander Kraus and others for similar course material
neuper@42144: %
neuper@42144: %\subsection{TODO}
neuper@42144: %\sisac =''=
neuper@42130: 
neuper@42144: \bibliography{references}
neuper@42127: \end{document}




