\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{An interactive math tutoring system for secondary schools}
\author{Taddeus Kroes (taddeuskroes@hotmail.com)
    \and Sander Mathijs van Veen (smvv@kompiler.org)}

\begin{document}

\maketitle

\section{Introduction}

This project comprises the design and production of a web application that can
assist high school students in learning how to apply mathematical term
reductions. The basic idea is that the student can work on an assignment using
an online text editor. The text entered in the editor is converted to a
mathematical notation and displayed on the screen in real-time. If the student
gets stuck while rewriting a mathematical formula, he or she can request a
`hint' from the system. The system should recognize a best reduction to apply
at that time, and guide the student in the right direction by displaying a
textual hint that tells the user what sort of reduction can be applied. When
asked the system should apply an appropriate reduction step itself.

This document lists the different sections in which the project can be divided,
along with their expected gradations.

\section{Purpose}

\begin{itemize}
    \item A user can simplify / reduce a mathematical expression.
    \item Program can verify the user's reduction steps.
    \item A user should be able to ask for zero, one or more hints (with a
    maximum of one hint per reduction step). In case the hint does not help,
    the system should output the outcome of an appropriate single 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 Bring an expression to a normal form:
    $4 + x^2 + x \rightarrow x^2 + x + 4$.
\end{itemize}

\subsection{Validation and tutoring}

\begin{itemize}
    \item Validate eacg reduction step and the final input.
    \item If requested, select the best hint (based on the chosen strategy).
    \item Generate exercises using predefined templates.
\end{itemize}

\subsubsection{Modules}

Each module will require design of an appropriate set of term
rewriting rules and selection of an appropriate reduction strategy
that allows for nondeterminism, both in the choice of the rewriting
rule and in the choice of the subterm to which the rule will be
applied. Nondeterminism is needed for validating every user's input
(outcome of a single reduction step) against the previous term.

\begin{itemize}
    \item Expressions without variables. $(3+4) \times (5+7)$,
    $\frac{3}{4} + \frac{4}{5}$
    \item Linear expressions. $(3+2p) \times 7$
    \item Linear expressions with absolute values. $|x-1| = 2$
    \item Equations of the second degree. $(x+1)(x-2) + 2x + 7$,
    $$ \
    \begin{array}{|rcr|}
    3x + 2y & = & 5 \\
    2x - 3y & = & 6
    \end{array}
    \
    \dots
    \
    \begin{array}{|rcr|}
    x & = & 2\frac{1}{13} \\
    y & = & -\frac{8}{13}
    \end{array}
    $$

    \item Trigonometric functions, as considered in VWO.
    \item Derivatives, as considered in VWO.
    \item Integrals (computing antiderivates).
\end{itemize}

\subsection{Graphical user interface and evaluation}

\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 Show hints (if requested by the user) in the notation viewer.
    \item Evaluate the GUI with some early adopters (some 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).
    \item Clarify for which chapters of the VWO mathematic books the system can
    be used.
\end{itemize}

\section{European Credits}

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

\end{document}
