We present a novel approach for teaching logic and the metatheory of logic to students who have some experience with functional programming. We define concepts in logic as a series of functional programs in the language of the proof assistant Isabelle/HOL. This allows us to make notions which are often unclear in textbooks precise, to experiment with definitions by executing them, and to prove metatheoretical theorems in full detail. We have surveyed student perceptions of our teaching approach to determine its usefulness and found that students felt that our formalizations helped them understand concepts in logic, and that they experimented with them as a learning tool. However, the approach was not enough to make students feel confident in their abilities to design and implement their own formal systems. Further studies are needed to confirm and generalize the results of our survey, but our initial results seem promising.
翻译:我们向在功能性编程方面有一定经验的学生介绍了一种新颖的教学逻辑和逻辑元理论方法,我们将逻辑概念定义为以证明助理伊莎贝尔/HOL语言编写的一系列功能性课程,这使我们得以作出教科书中往往不明确的概念,精确地进行定义实验,通过执行这些概念来进行定义实验,并充分详细地证明代神论理论。我们调查了学生对我们教学方法的看法,以确定其有用性,发现学生们认为,我们的正式化有助于他们理解逻辑概念,他们把概念作为学习工具来试验。然而,这种方法不足以让学生对自己设计和实施正式系统的能力有信心。还需要进一步研究,以确认和概括我们调查的结果,但我们的初步结果似乎很有希望。