skip to main content
10.1145/1411260.1411264acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Functional programming and theorem proving for undergraduates: a progress report

Published:21 September 2008Publication History

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.

References

  1. Achten, P. and M. J. Plasmeijer. The ins and outs of Clean i/o. Journal of Functional Programming, 5(1):81--110, 1995.Google ScholarGoogle ScholarCross RefCross Ref
  2. Arts, T. and J. Hughes. Erlang/QuickCheck. In Ninth International Erlang/OTP User Conference, November 2003.Google ScholarGoogle Scholar
  3. Beck, K. and E. Gamma. Test infected: Programmers love writing tests. In Java Report, volume 3, pages 37--50, 1998.Google ScholarGoogle Scholar
  4. Boyer, R. S. and J. S. Moore. Mechanized reasoning about programs and computing machines. In Veroff, R., editor, Automated Reasoning and Its Applications: Essays in Honor of Larry Wos, pages 146--176. The MIT Press, Cambridge, Massachusetts, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Claessen, K. and J. Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In ACM SIGPLAN International Conference on Functional Programming, pages 268--279, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cooper, G. H. and S. Krishnamurthi. Embedding dynamic dataflow in a call-by-value language. In Sestoft, P., editor, 15th European Symposium on Programming, ESOP 2006, volume 3924 of Lecture Notes in Computer Science, pages 294--308. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dillinger, P. C., P. Manolios, J. S. Moore and D. Vroon. ACL2s: The ACL2 Sedan. In Proceedings of the 7th Workshop on User Interfaces for Theorem Proving, volume 174(2) of Electronic Notes in Theoretical Computer Science, pages 3--18. Elsevier, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Eastlund, C., D. Vaillancourt and M. Felleisen. ACL2 for freshmen: First experiences. In ACL2 '07: Proceedings of the Sixth International Workshop on the ACL2 Theorem Prover and its Applications, pages 200--211, New York, NY, USA, 2007. ACM Press.Google ScholarGoogle Scholar
  9. Elliot, C. and P. Hudak. Functional reactive animation. In ACM SIGPLAN International Conference on Functional Programming, pages 196--203, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Felleisen, M., R. B. Findler, M. Flatt and S. Krishnamurthi. How to Design Programs. MIT Press, 2001.Google ScholarGoogle Scholar
  11. Findler, R. B., J. Clements, C. Flanagan, M. Flatt, S. Krishnamurthi, P. Steckler and M. Felleisen. DrScheme: A programming environment for Scheme. Journal of Functional Programming, 12(2):159--182, March 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Findler, R. B., C. Flanagan, M. Flatt, S. Krishnamurthi and M. Felleisen. DrScheme: A pedagogic programming environment for Scheme. In Glaser, H., P. Hartel and H. Kuchen, editors, Programming Languages: Implementations, Logics, and Programs, volume 1292 of LNCS, pages 369--388, Southampton, UK, September 1997. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ignatoff, D., G. H. Cooper and S. Krishnamurthi. Crossing state lines: Adapting object-oriented frameworks to functional reactive languages. In Hagiya, M. and P. Wadler, editors, Functional and Logic Programming, 8th International Symposium, FLOPS 2006, volume 3945 of Lecture Notes in Computer Science, pages 259--276. Springer, 2006. Google ScholarGoogle Scholar
  14. Kaufmann, M., P. Manolios and J. S. Moore. Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kaufmann, M., P. Manolios and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Page, R. Software is discrete mathematics. In Runciman, C. and O. Shivers, editors, Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, ICFP 2003, pages 79--86. ACM, August 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Page, R. Engineering software correctness. In Proc. 2005 Workshop on Functional and Declarative Programming in Education, pages 39--46, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Page, R. Engineering software correctness. Journal of Functional Programming, 17(6):675--686, April 2007. Preliminary presentation at FDPE '05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Vaillancourt, D., R. Page and M. Felleisen. ACL2 in DrScheme. In ACL2 '06: Proceedings of the Sixth International Workshop on the ACL2 Theorem Prover and its Applications, pages 107--116, New York, NY, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Functional programming and theorem proving for undergraduates: a progress report

                        Recommendations

                        Comments

                        Login options

                        Check if you have access through your login credentials or your institution to get full access on this article.

                        Sign in
                        • Published in

                          cover image ACM Conferences
                          FDPE '08: Proceedings of the 2008 international workshop on Functional and declarative programming in education
                          September 2008
                          98 pages
                          ISBN:9781605580685
                          DOI:10.1145/1411260

                          Copyright © 2008 ACM

                          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                          Publisher

                          Association for Computing Machinery

                          New York, NY, United States

                          Publication History

                          • Published: 21 September 2008

                          Permissions

                          Request permissions about this article.

                          Request Permissions

                          Check for updates

                          Qualifiers

                          • research-article

                          Upcoming Conference

                          ICFP '24

                        PDF Format

                        View or Download as a PDF file.

                        PDF

                        eReader

                        View online with eReader.

                        eReader