\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} 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 the best reduction to apply at that time, and push the student in the right direction by displaying a textual hint that tells the user what sort of reduction can be applied. The system should also be able to apply that reduction 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 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}