Programming and Proofs, Teaching Logic in Computer Science
Matthias F. M. Stallmann · NCSU Libraries Repository (North Carolina State University Libraries) · 2001
An important gap that needs to be bridged when it comes to the role of logic in computing is that of educating computer scientists, particularly undergraduates, on the important connections between proofs and programming.In most undergraduate curricula, students are exposed to proofs primarily in a discrete math course that, while emphasizing concepts related to computer science, is not integrated with experiences the students regard as practical.A deeper exposure to logic may occur in an automata theory or programming language theory course.None of these courses are likely to have a major laboratory component.Exceptions fall into three categories:1. Use of simulators of various automata (examples abound, but among the more notable is an early nondeterministic-pushdown-automaton simulator [1]).2. Study of programming languages that require logical sophistication, such as Prolog or ML.3. Software to guide the process of outlining and writing proofs (a unique example of this is a MacIntosh program by Dan Velleman, also the author of [7]).* An excerpt from a 2001 proposal to NSF. 1 Or, apparent fallacy -this observation is based on the behavior of students rather than on what they say 1