proposal.tex 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. \documentclass[10pt,a4paper]{article}
  2. \usepackage[english]{babel}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage{amsmath,hyperref,graphicx,booktabs,float}
  5. % Paragraph indentation
  6. \setlength{\parindent}{0pt}
  7. \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
  8. \title{Mathematical Term Rewriting System}
  9. \author{Taddeus Kroes (taddeuskroes@hotmail.com)
  10. \and Sander Mathijs van Veen (smvv@kompiler.org)}
  11. \begin{document}
  12. \maketitle
  13. \section{Introduction}
  14. This project comprises the design and production of a web application that can
  15. assist high school students in learning how to apply mathematical term
  16. reductions. The basic idea is that the student can work on an assignment using
  17. an online text editor. The text entered in the editor is converted to a
  18. mathematical notation and displayed on the screen in real-time. If the student
  19. gets stuck while rewriting a mathematical formula, he or she can request a
  20. 'hint' from the system. The system should recognize the best reduction to
  21. apply at that time, and push the student in the right direction by displaying
  22. a textual hint that tells the user what sort of reduction can be applied. The
  23. system should also be able to apply that reduction itself.
  24. This document lists the different sections in which the project can be
  25. divided, along with their expected gradations.
  26. \section{Purpose}
  27. \begin{itemize}
  28. \item A user can simplify / reduce a mathematical expression.
  29. \item Program can verify the user's reduction step.
  30. \item A user should be able to ask for zero, one or more hints (with a
  31. maximum of one hint per reduction step).
  32. \item Program can generate exercises using predefined templates.
  33. \end{itemize}
  34. \section{Components}
  35. \subsection{Input parsing and canonical form}
  36. \begin{itemize}
  37. \item Parse expressions and interpret functions (\texttt{integrate()},
  38. \texttt{expand()}, \texttt{diff()}, etc.). This will include building a
  39. parser generator using \emph{bison} and \emph{flex}.
  40. \item Canonicalize an expression: $4 + x^2 + x \rightarrow x^2 + x + 4$.
  41. \end{itemize}
  42. \subsection{Validation and tutoring}
  43. \begin{itemize}
  44. \item Validate expressions with the expression of given exercise.
  45. \item If requested, select the best hint (based on the chosen strategy).
  46. \item Generate exercise using predefined templates.
  47. \end{itemize}
  48. \subsubsection{Modules}
  49. \begin{itemize}
  50. \item Expressions without variables. $(3+4) \times (5+7)$
  51. \item Linear expressions. $(3+2p) \times 7$
  52. \item Linear expressions with absolute values. $|x-1| = 2$
  53. \item Systems of linear equations (two variables).
  54. $$ \
  55. \begin{array}{|rcr|}
  56. 3x + 2y & = & 5 \\
  57. 2x - 3y & = & 6
  58. \end{array}
  59. \
  60. \rightarrow
  61. \
  62. \begin{array}{|rcr|}
  63. x + \frac{2}{3}y & = & \frac{5}{3} \\
  64. x - \frac{3}{2}y & = & 3
  65. \end{array}
  66. \
  67. \rightarrow
  68. \
  69. \frac{5}{3} - \frac{2}{3}y = 3 + \frac{3}{2}y
  70. \
  71. \rightarrow
  72. \
  73. \begin{array}{|rcr|}
  74. x & = & 2\frac{1}{13} \\
  75. y & = & -\frac{8}{13}
  76. \end{array}
  77. $$
  78. \item Trigonometric functions.
  79. \item Derivatives.
  80. \item Integrals (computing antiderivates).
  81. \end{itemize}
  82. \subsection{Graphical user interface}
  83. \begin{itemize}
  84. \item Mathematical notation viewer:
  85. \begin{itemize}
  86. \item Rewrite shell expressions to \LaTeX.
  87. \item \LaTeX $ $ to HTML/CSS/JS using \emph{MathJax}.
  88. \end{itemize}
  89. \item View hints (if requested by the user) in the notation viewer.
  90. \item Evaluate the GUI with some early adopters (few pupils and a teacher).
  91. \end{itemize}
  92. \subsection{Screencast, tutorial and final report}
  93. \begin{itemize}
  94. \item Create a screencast to demonstrate the project.
  95. \item Write a few short-length tutorials (how to use the system).
  96. \item Write the final report (e.g. evaluation of the project).
  97. \end{itemize}
  98. \section{European Credits}
  99. \begin{tabular}{rl}
  100. \toprule
  101. EC & Component \\
  102. \midrule
  103. 3 & Input parsing and canonical form \\
  104. 9 & Validation and tutoring \\
  105. 3 & Graphical user interface \\
  106. 3 & Screencast, tutorial and final report \\
  107. \bottomrule
  108. \end{tabular}
  109. \end{document}