Functional programming and theorem proving for undergraduates: a progress report

  • Authors:
  • Rex Page;Carl Eastlund;Matthias Felleisen

  • Affiliations:
  • University of Oklahoma, Norman, OK, USA;Northeastern University, Boston, MA, USA;Northeastern University, Boston, MA, USA

  • Venue:
  • Proceedings of the 2008 international workshop on Functional and declarative programming in education
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

For the past five years, the University of Oklahoma has used the ACL2 theorem prover for a year-long sequence on software engineering. The goal of the course is to introduce students to functional programming with "Applicative Common Lisp" (ACL) and to expose them to defect recognition at all levels, including unit testing, randomized testing of conjectures, and formal theorem proving in "a Computational Logic" (ACL2). Following Page's example, Northeastern University has experimented with the introduction of ACL2 into the freshman curriculum for the past two years. Northeastern's goal is to supplement an introductory course on functional program design with a course on logic and theorem proving that integrates the topic with programming projects. This paper reports on our joint project's progress. On the technical side, the paper presents the Scheme-based integrated development environment, its run-time environment for functional GUI programming, and its support for different forms of testing. On the experience side, the paper summarizes the introduction of these tools into the courses, the reaction of industrial observers of Oklahoma's software engineering course, and the feedback from a first outreach workshop.