[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1085114.1085123acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Engineering software correctness

Published: 25 September 2005 Publication History

Abstract

Software engineering courses offer one of many opportunities for providing students with a significant experience in declarative programming. This report discusses some results from taking advantage of this opportunity in a two-semester sequence of software engineering courses for students in their final year of baccalaureate studies in computer science. The sequence is based on functional programming using ACL2, a purely functional subset of Common Lisp with a built-in, computational logic developed by J Strother Moore and his colleagues over the past three decades. The course sequence has been offered twice, so far, in two consecutive academic years. Certain improvements evolved in the second offering, and while this report focuses on that offering, it also offers reasons for the changes. The discussion outlines the topical coverage and required projects, suggests further improvements, and observes educational effects based on conversations with students and evaluations of their course projects. In general, it appears that most students enjoyed the approach and learned concepts and practices of interest to them. Seventy-six students have completed the two-course sequence, half of them in the first offering and half in the second. All of the students gained enough competence in functional programming to apply it in future projects in industry or graduate school. In the second offering, about forty percent of the students gained enough competence with the ACL2 mechanized logic to make significant use of it in verifying properties of software. About ten percent acquired more competence than might reasonably be expected, enough to see new opportunities for applications and lead future software development efforts in the direction of declarative software with proven correctness properties.

References

[1]
Felleisen, M., Findler, R. B., Flatt, M., and Krishnamurthi, S. How to Design Programs. MIT Press, 2001.
[2]
Humphrey, W. S. A Discipline for Software Engineering, Addison Wesley, 1995.
[3]
Kaufmann, M., Manolios, P., and Moore, J. S. Computer Aided Reasoning: An Approach. Kluwer Academic Publishers, 2000.
[4]
Michaelsen, L. K., "Getting Started with Team Based Learning" in Team-Based Learning: A Transformative Use of Small Groups, Praeger, Michaelsen, L.K., Knight, A. B., and Fink, L.D. editors, Stylus Publishing, Sterling VA, 2002.
[5]
Pressman, R. Software Engineering: A Practitioner's Approach, 6 th Edition. McGraw-Hill, 2005.
[6]
Sommerville, I. Software Engineering, 7 th Edition. Pearson, 2004.

Cited By

View all
  • (2008)Functional programming and theorem proving for undergraduatesProceedings of the 2008 international workshop on Functional and declarative programming in education10.1145/1411260.1411264(21-30)Online publication date: 21-Sep-2008
  • (2006)ACL2 in DrSchemeProceedings of the sixth international workshop on the ACL2 theorem prover and its applications10.1145/1217975.1217999(107-116)Online publication date: 15-Aug-2006

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
FDPE '05: Proceedings of the 2005 workshop on Functional and declarative programming in education
September 2005
53 pages
ISBN:1595930671
DOI:10.1145/1085114
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 September 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ACL2
  2. functional programming
  3. lisp
  4. mechanized logic
  5. software engineering education
  6. theorem provers

Qualifiers

  • Article

Conference

FDPE05
Sponsor:

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)3
Reflects downloads up to 10 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2008)Functional programming and theorem proving for undergraduatesProceedings of the 2008 international workshop on Functional and declarative programming in education10.1145/1411260.1411264(21-30)Online publication date: 21-Sep-2008
  • (2006)ACL2 in DrSchemeProceedings of the sixth international workshop on the ACL2 theorem prover and its applications10.1145/1217975.1217999(107-116)Online publication date: 15-Aug-2006

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media