skip to main content
10.1145/1593105.1593221acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
research-article

Induction as a tool for conceptual coherence in computer science

Published:28 March 2008Publication History

ABSTRACT

Induction is central to many areas of computer science (CS) such as data structures, theory of computation, programming languages, program correctness/verification, and program efficiency. In this paper, I discuss the role of induction in the current CS curriculum and its applications in some of the above areas. I also shed some light on "hidden" applications of structural induction, and I demonstrate how induction can be used as a tool for conceptual coherence in CS. Proofs by induction are currently taught independently of their CS applications and as a "recipe" to be followed, without explaining the role of each ingredient. Moreover, there is no unified framework for induction throughout the CS curriculum, which I argue that is necessary for students to gain conceptual understanding.

References

  1. Barwise, J., & Etchemendy, J. (1998). Computers, visualization, and the nature of reasoning. In B. Ward, T. Ward, & H. J. Moor (Eds), The Digital Phoenix: How Computers are Changing Philosophy (pp. 93--116). Oxford, UK and Malden, MA: Blackwell Publishing, Inc.Google ScholarGoogle Scholar
  2. Ben-Ari, M. (2001). Mathematical Logic for Computer Science (2nd ed.). London, U.K.: Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bratko, I. (2001). PROLOG: Programming for Artificial Intelligence (3rd ed.). Essex, England: Pearson Education Limited. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bruce, B. K., Drysdale, L. S. R., Kelemen, C. (September, 2003). Why Math? Communications of the ACM, 46, (9), 40--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bundy, A., Harmelen, F., Hesketh, J., & Smaill, A. (1991). Experiments with proof plans for induction. Journal of Automated reasoning, 7, 303--324. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Burris, S. (1998). Logic for Mathematics and Computer Science. Upper Saddle River, NJ: Prentice Hall.Google ScholarGoogle Scholar
  7. Cormen, T., Leiserson, C., Rivest, R., & Stein, C. Introduction to algorithms (2nd ed.). Cambridge, Massachusetts, London, England: The MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Enderton, H. (2001). A Mathematical Introduction to Logic. Burlington, MA: Harcourt Academic press.Google ScholarGoogle Scholar
  9. Gallier, H. J. (2003). Logic For Computer Science. Foundations of Automatic Theorem <u>Proving</u>. John Wiley & Sons Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Holland-Minkley, A. (2002). Planning Proof Content for Communicating Induction. Proceedings of Second International Natural Language Generation Conference, 167--172.Google ScholarGoogle Scholar
  11. Hopcroft, J., Motwani, R., & Ullman, J. (2001). Introduction to automata theory (3rd ed.). Boston, MA: Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Huth, M. & Ryan, M. (2000). Logic In Computer Science: modeling and reasoning about systems. Cambridge, UK: University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kaplan, M. K., Burge, L., Garuba, M., & Kaplan, J. J. (2004). Mathematical Induction: The Basis Step of Verification and Validation in a Modeling and Simulation Course. Proceedings of the 2004 American Society for Engineering Education Annual Conference & Exposition, session number: 1465.Google ScholarGoogle Scholar
  14. Krone, J. (1993). Trees as Inductive Structures. Computer Science Education, 4 (2), 215--234.Google ScholarGoogle ScholarCross RefCross Ref
  15. Lewis, J. & Loftus, W. (2005). Java: Software Solutions, foundations of program design (4th ed.). USA: Pearson Education, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Linz, P. (2001). An Introduction to Formal Languages and Automata (3rd ed.). Sudbury, Massachusetts: Jones and Bartlett Publishers, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lynch, N. (1996). Distributed Algorithms. San Francisco, CA: Morgan Kaufmann Publishers, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Mendelson, E. (1997). Introduction to Mathematical Logic. Great Britain: Chapman & Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Page, L. R. (2003). Software is Discrete Mathematics. Proceedings of the eighth ACM SIGPLAN international conference on Functional programming, 79--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Pierce, C. B. (2002). Types and Programming Languages. Cambridge, Massachusetts, London, England: The MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Polycarpou, I., Pasztor, A., & Alacaci, C. (July, 2006). Sources of Students' Difficulties with Proofs by Induction: A study. Proceedings of the Third International Conference in Teaching Mathematics, paper 446.Google ScholarGoogle Scholar
  22. Reeves, S. & Clarke, M. (reprinted in 2003). Logic For Computer Science. England: Wokingham; Reading, MA: Addison-Wesley.Google ScholarGoogle Scholar
  23. Schöning, U. (1989). Logic for Computer Science. Boston, MA: Birkhäuser.Google ScholarGoogle Scholar
  24. Sipser, M. (1997). Introduction on the Theory of Computation. Boston, MA: PWS Publishing Company. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Thompson, D. (1996). Learning and Teaching Indirect Proof. The Mathematics Teacher, 89, 474--481.Google ScholarGoogle Scholar
  26. Tucker, B. A., et al. (1996). Strategic Directions in Computer Science Education. ACM Computing Surveys, 28 (4), 836--845. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Weiss, M. (2006). Data Structures & Problem Solving Using Java. Boston, MA: Pearson Education, Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Yurcik, W. & Doss, D. (2001). Different Approaches in the Teaching of Information Systems Security. Proceedings of the Information Systems Education Conference (ISECON), paper 04a.Google ScholarGoogle Scholar

Index Terms

  1. Induction as a tool for conceptual coherence in computer science

      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 Other conferences
        ACM-SE 46: Proceedings of the 46th Annual Southeast Regional Conference on XX
        March 2008
        548 pages
        ISBN:9781605581057
        DOI:10.1145/1593105

        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: 28 March 2008

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate134of240submissions,56%
      • Article Metrics

        • Downloads (Last 12 months)0
        • Downloads (Last 6 weeks)0

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader