A Bridge Anchored on Both Sides: Formal Deduction in Introductory CS, and Code Proofs in Discrete Math

07/07/2019
by   David G. Wonnacott, et al.
0

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 programming language community, but tuned to address the particulars of each course. These courses rely primarily on traditional means of proof authoring with pen-and-paper. This is unsatisfactory for students who receive no feedback until grading on their work and instructors who must shoulder the burden of interpreting students' proofs and giving useful feedback. To this end, we also describe the current state of Orca, an in-development proof assistant for undergraduate education that we are developing to address these issues in our courses. Finally, in teaching our courses, we have discovered a number of educational research questions about the effectiveness of code reasoning in bridging the gap between programming and mathematics, and the ability of tools like to support this pedagogy. We pose these research questions as next steps to formalize our initial experiences in our courses with the hope of eventually generalizing our approaches for wider adoption.

READ FULL TEXT
research
07/31/2023

ChatGPT for Teaching and Learning: An Experience from Data Science Education

ChatGPT, an implementation and application of large language models, has...
research
06/21/2021

Investigating the role of educational robotics in formal mathematics education: the case of geometry for 15-year-old students

Research has shown that Educational Robotics (ER) enhances student perfo...
research
11/28/2020

Discrete Math with Programming: A Principled Approach

Discrete mathematics is the foundation of computer science. It focuses o...
research
10/30/2020

Lucas-Interpretation on Isabelle's Functions

Software tools of Automated Reasoning are too sophisticated for general ...
research
02/02/2019

Event Loops as First-Class Values: A Case Study in Pedagogic Language Design

The World model is an existing functional input-output mechanism for eve...
research
02/28/2020

Automating the Generation of High School Geometry Proofs using Prolog in an Educational Context

When working on intelligent tutor systems designed for mathematics educa...
research
02/28/2020

A Mobile Application for Self-Guided Study of Formal Reasoning

In this work, we introduce AXolotl, a self-study aid designed to guide s...

Please sign up or login with your details

Forgot password? Click here to reset