\documentclass[10pt,a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,hyperref,graphicx,booktabs,float}

% Paragraph indentation
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

\title{Mathematical Term Rewriting System}
\author{Taddeus Kroes (taddeuskroes@hotmail.com)
    \and Sander Mathijs van Veen (smvv@kompiler.org)}

\begin{document}

\maketitle

\section{Introduction}

TODO

TODO

TODO

\section{Purpose}

\begin{itemize}
    \item A user can simplify / reduce a mathematical expression.
    \item Program can verify the user's reduction step.
    \item A user should be able to ask for zero, one or more hints (with a
    maximum of one hint per reduction step).
    \item Program can generate exercises using predefined templates.
\end{itemize}

\section{Components}

\subsection{Input parsing and canonical form}

\begin{itemize}
    \item Parse expressions and interpret functions (\texttt{integrate()},
    \texttt{expand()}, \texttt{diff()}, etc.). This will include building a
    parser generator using \emph{bison} and \emph{flex}.
    \item Canonicalize an expression: $4 + x^2 + x \rightarrow x^2 + x + 4$.
\end{itemize}

\subsection{Validation and tutoring}

\begin{itemize}
    \item Validate expressions with the expression of given exercise.
    \item If requested, select the best hint (based on the chosen strategy).
    \item Generate exercise using predefined templates.
\end{itemize}

\subsubsection{Modules}

\begin{itemize}
    \item Expressions without variables. $(3+4) \times (5+7)$
    \item Linear expressions. $(3+2p) \times 7$
    \item Linear expressions with absolute values. $|x-1| = 2$
    \item Systems of linear equations (two variables).
    $$ \
    \begin{array}{|rcr|}
    3x + 2y & = & 5 \\
    2x - 3y & = & 6
    \end{array}
    \
    \rightarrow
    \
    \begin{array}{|rcr|}
    x + \frac{2}{3}y & = & \frac{5}{3} \\
    x - \frac{3}{2}y & = & 3
    \end{array}
    \
    \rightarrow
    \
    \frac{5}{3} - \frac{2}{3}y = 3 + \frac{3}{2}y
    \
    \rightarrow
    \
    \begin{array}{|rcr|}
    x & = & 2\frac{1}{13} \\
    y & = & -\frac{8}{13}
    \end{array}
    $$
    \item Trigonometric functions.
    \item Derivatives.
    \item Integrals (computing antiderivates).
\end{itemize}

\subsection{Graphical user interface}

\begin{itemize}
    \item Mathematical notation viewer:
    \begin{itemize}
        \item Rewrite shell expressions to \LaTeX.
        \item \LaTeX $ $ to HTML/CSS/JS using \emph{MathJax}.
    \end{itemize}
    \item View hints (if requested by the user) in the notation viewer.
    \item Evaluate the GUI with some early adopters (few pupils and a teacher).
\end{itemize}

\subsection{Screencast, tutorial and final report}

\begin{itemize}
    \item Create a screencast to demonstrate the project.
    \item Write a few short-length tutorials (how to use the system).
    \item Write the final report (e.g. evaluation of the project).
\end{itemize}

\section{European credits}

\begin{tabular}{rl}
\toprule
EC & Component \\
\midrule
3  & Input parsing and canonical form \\
9  & Validation and tutoring \\
3  & Graphical user interface \\
3  & Screencast, tutorial and final report \\
\bottomrule
\end{tabular}

\end{document}
