A Bridge Anchored on Both Sides: Formal Deduction in Introductory CS, and Code Proofs in Discrete Math
David G. Wonnacott, Peter-Michael Osera

TL;DR
This paper explores integrating formal program reasoning into introductory CS and discrete math courses to bridge the gap between programming and mathematics, supported by educational tools like Orca.
Contribution
It presents curriculum designs that incorporate code reasoning early in CS education and introduces Orca, a proof assistant, to enhance feedback and understanding.
Findings
Code reasoning helps connect programming and math concepts.
Early introduction of formal proofs improves student understanding.
Orca shows promise as an educational proof tool.
Abstract
There is a sharp disconnect between the programming and mathematical portions of the standard undergraduate computer science curriculum, leading to student misunderstanding about how the two are related. We propose connecting the subjects early in the curriculum---specifically, in CS1 and the introductory discrete mathematics course---by using formal reasoning about programs as a bridge between them. This article reports on Haverford and Grinnell College's experience in constructing the end points of this bridge between CS1 and discrete mathematics. Haverford's long-standing "3-2-1" curriculum introduces code reasoning in conjunction with introductory programming concepts, and Grinnell's discrete mathematics introduces code reasoning as a motivation for logic and formal deduction. Both courses present code reasoning in a style based on symbolic code execution techniques from the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Teaching and Learning Programming · Parallel Computing and Optimization Techniques
