\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}