problem modes (such as set theory) and extensions to
existing problem modes (such as solving inequalities)
are in the dream list.
In some modes, MathCheck often checks the an-
swer only incompletely, by testing with many value
combinations of the variables in question. As a con-
sequence, MathCheck may fail to find an error. Fortu-
nately failure is unlikely as long as the user does not
intentionally exploit the weaknesses of MathCheck.
In return, the testing approach facilitates providing
feedback on all steps of the student’s solution, even in
the absence of a teacher-given solution and indepen-
dently of the path that the student chose towards the
final answer. Furthermore, if the solution proves in-
correct, the student gets a concrete counter-example.
In the equation mode, checking is slightly unreli-
able due to numerical imprecision. Spurious roots are
detected later than one might wish. Again, these are
small problems. In return, the mode can deal with
very many kinds of equations, instead of being re-
stricted to, say, quadratic equations. The array claim
mode is sufficiently reliable only if the teacher takes
the checking algorithm into account when designing
problems. On the other hand, it offers a service that is
absent from most, or perhaps all, other tools.
We also discussed some problems in the estab-
lished mathematical notation. Because of them, most
programs force the user to deviate from the estab-
lished notation, usually by writing additional paren-
theses or explicit multiplication symbols. A lot of
effort was made so that MathCheck would not force
such deviations.
Traditional binary logic does not suffice for Math-
Check. This was solved by introducing a truth value
representing undefined and by using ⇒and ⇔as rea-
soning operators with significantly different proper-
ties from propositional operators.
Not many pedagogical experiments have been
made with MathCheck. In those that have been made,
the results have been very encouraging.
REFERENCES
Fronh¨ofer, B. (2011). Introduction to many-valued log-
ics. https://web.archive.org/web/20131225052706/,
http://www.wv.inf.tu-dresden.de/Teaching/SS-
2011/mvl/mval.HANDOUT2.pdf; accessed 2017-11-
03.
Gibbs, G. (2010). Using assessment to support student
learning. Technical report, Leeds Metropolitan Uni-
versity.
Gibbs, G. and Simpson, C. (2004). Conditions under which
assessment supports student learning. Learning and
Teaching in Higher Education, 1:3–31.
Gries, D. and Schneider, F. B. (1993). A Logical Approach
to Discrete Math. Texts and Monographs in Computer
Science. Springer, New York.
Hakala, V. (2016). Mathcheck ja wolfram alpha opiskelun
tukena. Project Report.
Jones, C. B. (1991). Systematic software development using
VDM (2. ed.). Prentice Hall International Series in
Computer Science. Prentice Hall.
Kleene, S. C. (1964). Introduction to Metamathematics.
Bibliotheca mathematica. North-Holland Pub. Co.
Lethbridge, T. (2000). What knowledge is important to a
software professional? IEEE Computer, 33(5):44–50.
Łukasiewicz, J. (1930). Philosophische Bemerkungen
zu mehrwertigen Systemen des Aussagenkalk¨uls.
Comptes rendus des s´eances de la Societ´e des Sci-
ences et des Lettres de Varsovie, 23(Cl. III):51–77.
Richardson, D. (1968). Some undecidable problems involv-
ing elementary functions of a real variable. J. Sym-
bolic Logic, 33(4):514–520.
Sangwin, C. (2015). Computer aided assessment of mathe-
matics using stack. In Cho, S. J., editor, Selected Reg-
ular Lectures from the 12th International Congress
on Mathematical Education, pages 695–713, Cham.
Springer International Publishing.
Spivey, J. M. (1992). Z Notation - a reference manual (2.
ed.). Prentice Hall International Series in Computer
Science. Prentice Hall.
STACK (2017). System for teaching and assessment using
a computer algebra kernel. http://stack.bham.ac.uk/;
accessed 2017-07-16.
Stroustrup, B. (1997). The C++ Programming Lan-
guage. Addison-Wesley Longman Publishing Co.,
Inc., Boston, MA, USA, 3rd edition.
Surakka, S. (2007). What subjects and skills are important
for software developers? Commun. ACM, 50(1):73–
78.
Valmari, A. (2003). Software mathematics as a course topic.
In Kurhila, J., editor, Kolin Kolistelut – Koli Call-
ing 2003, Proc. Third Finnish Baltic Sea Conference
on Computer Science Education, Oct. 3-5, 2003 Koli,
Finland, pages 101–109. Helsinki University Printing
House.
Valmari, A. (2016). Mathcheck relation chain checker. In
Karhum¨aki, J. and Saarela, A., editors, Proceedings
of the Finnish Mathematical Days 2016, number 25 in
TUCS Lecture Notes, pages 44–46.
Valmari, A. and Hella, L. (2017). The logics taught and
used at high schools are not the same. In Karhum¨aki,
J. and Saarela, A., editors, Proceedings of the Fourth
Russian Finnish Symposium on Discrete Mathematics,
number 26 in TUCS Lecture Notes.
Valmari, A. and Kaarakka, T. (2016). MathCheck: A
tool for checking math solutions in detail. In 44th
SEFI Conference, Engineering Education on Top of
the World: Industry University Cooperation, 12-15
September 2016, Tampere, Finland. European Society
for Engineering Education SEFI.