Explorar el Código

Initial commit; the project proposal and git ignore list.

Sander Mathijs van Veen hace 14 años
commit
48776a585a
Se han modificado 2 ficheros con 104 adiciones y 0 borrados
  1. 8 0
      .gitignore
  2. 96 0
      docs/proposal.tex

+ 8 - 0
.gitignore

@@ -0,0 +1,8 @@
+*.pyc
+*.sw[a-z]
+*.o
+*.out
+*.aux
+*.log
+*.pdf
+*.toc

+ 96 - 0
docs/proposal.tex

@@ -0,0 +1,96 @@
+\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
+\tableofcontents
+
+\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 \emph{TODO}
+\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}