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.
- 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 Scholar
- Ben-Ari, M. (2001). Mathematical Logic for Computer Science (2nd ed.). London, U.K.: Springer-Verlag. Google ScholarDigital Library
- Bratko, I. (2001). PROLOG: Programming for Artificial Intelligence (3rd ed.). Essex, England: Pearson Education Limited. Google ScholarDigital Library
- Bruce, B. K., Drysdale, L. S. R., Kelemen, C. (September, 2003). Why Math? Communications of the ACM, 46, (9), 40--44. Google ScholarDigital Library
- Bundy, A., Harmelen, F., Hesketh, J., & Smaill, A. (1991). Experiments with proof plans for induction. Journal of Automated reasoning, 7, 303--324. Google ScholarDigital Library
- Burris, S. (1998). Logic for Mathematics and Computer Science. Upper Saddle River, NJ: Prentice Hall.Google Scholar
- Cormen, T., Leiserson, C., Rivest, R., & Stein, C. Introduction to algorithms (2nd ed.). Cambridge, Massachusetts, London, England: The MIT press. Google ScholarDigital Library
- Enderton, H. (2001). A Mathematical Introduction to Logic. Burlington, MA: Harcourt Academic press.Google Scholar
- Gallier, H. J. (2003). Logic For Computer Science. Foundations of Automatic Theorem <u>Proving</u>. John Wiley & Sons Inc. Google ScholarDigital Library
- Holland-Minkley, A. (2002). Planning Proof Content for Communicating Induction. Proceedings of Second International Natural Language Generation Conference, 167--172.Google Scholar
- Hopcroft, J., Motwani, R., & Ullman, J. (2001). Introduction to automata theory (3rd ed.). Boston, MA: Addison-Wesley. Google ScholarDigital Library
- Huth, M. & Ryan, M. (2000). Logic In Computer Science: modeling and reasoning about systems. Cambridge, UK: University Press. Google ScholarDigital Library
- 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 Scholar
- Krone, J. (1993). Trees as Inductive Structures. Computer Science Education, 4 (2), 215--234.Google ScholarCross Ref
- Lewis, J. & Loftus, W. (2005). Java: Software Solutions, foundations of program design (4th ed.). USA: Pearson Education, Inc. Google ScholarDigital Library
- Linz, P. (2001). An Introduction to Formal Languages and Automata (3rd ed.). Sudbury, Massachusetts: Jones and Bartlett Publishers, Inc. Google ScholarDigital Library
- Lynch, N. (1996). Distributed Algorithms. San Francisco, CA: Morgan Kaufmann Publishers, Inc. Google ScholarDigital Library
- Mendelson, E. (1997). Introduction to Mathematical Logic. Great Britain: Chapman & Hall. Google ScholarDigital Library
- Page, L. R. (2003). Software is Discrete Mathematics. Proceedings of the eighth ACM SIGPLAN international conference on Functional programming, 79--86. Google ScholarDigital Library
- Pierce, C. B. (2002). Types and Programming Languages. Cambridge, Massachusetts, London, England: The MIT press. Google ScholarDigital Library
- 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 Scholar
- Reeves, S. & Clarke, M. (reprinted in 2003). Logic For Computer Science. England: Wokingham; Reading, MA: Addison-Wesley.Google Scholar
- Schöning, U. (1989). Logic for Computer Science. Boston, MA: Birkhäuser.Google Scholar
- Sipser, M. (1997). Introduction on the Theory of Computation. Boston, MA: PWS Publishing Company. Google ScholarDigital Library
- Thompson, D. (1996). Learning and Teaching Indirect Proof. The Mathematics Teacher, 89, 474--481.Google Scholar
- Tucker, B. A., et al. (1996). Strategic Directions in Computer Science Education. ACM Computing Surveys, 28 (4), 836--845. Google ScholarDigital Library
- Weiss, M. (2006). Data Structures & Problem Solving Using Java. Boston, MA: Pearson Education, Inc. Google ScholarDigital Library
- 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 Scholar
Index Terms
- Induction as a tool for conceptual coherence in computer science
Recommendations
A conceptual approach to teaching induction for computer science
SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science educationIn this paper, we present an approach to teaching induction that we call the "conceptual route" of teaching induction. Proofs by induction are central to the study of computer science and students come across them in many courses of their curricula. It ...
A conceptual approach to teaching induction for computer science
SIGCSE 08In this paper, we present an approach to teaching induction that we call the "conceptual route" of teaching induction. Proofs by induction are central to the study of computer science and students come across them in many courses of their curricula. It ...
Computer science students' difficulties with proofs by induction: an exploratory study
ACM-SE 44: Proceedings of the 44th annual Southeast regional conferenceInduction is an important concept for computer science and yet students have difficulties understanding it. The current literature on students' difficulties with induction is concerned with difficulties students have while proving a statement by ...
Comments