Call for Paper - August 2022 Edition
IJCA solicits original research papers for the August 2022 Edition. Last date of manuscript submission is July 20, 2022. Read More

Engaging Software Engineering Students with Natural Numbers

Print
PDF
IJCA Special Issue on International Conference on Communication, Computing and Information Technology
© 2013 by IJCA Journal
ICCCMIT - Number 3
Year of Publication: 2013
Authors:
Amitrajit Sarkar
Mike Lopez

Amitrajit Sarkar and Mike Lopez. Article: Engaging Software Engineering Students with Natural Numbers. IJCA Special Issue on International Conference on Communication, Computing and Information Technology ICCCMIT(3):11-16, February 2013. Full text available. BibTeX

@article{key:article,
	author = {Amitrajit Sarkar and Mike Lopez},
	title = {Article: Engaging Software Engineering Students with Natural Numbers},
	journal = {IJCA Special Issue on International Conference on Communication, Computing and Information Technology},
	year = {2013},
	volume = {ICCCMIT},
	number = {3},
	pages = {11-16},
	month = {February},
	note = {Full text available}
}

Abstract

According to Kronecker, a famous European mathematician, only natural numbers, i. e. positive integers like 1, 2, and 3… are given by God or belong to nature. All other numbers, like negative numbers, fractional numbers, irrational numbers, complex numbers, etc. , are creations of the human mind. It is important to notice that all these other numbers are created using the natural numbers. Natural numbers have very interesting patterns and those patterns are elegantly simple and hence simply beautiful. The idea of this paper is to explore different patterns that are created with natural numbers, to demystify the connection of the natural numbers with nature, and then to use them to teach important concepts of software engineering. We will take various examples, discuss the teaching methodology used to teach them, and uncover different software engineering concepts and best practices. The examples that we will use are the Fibonacci sequence and other natural number patterns, and we will connect them with software engineering concepts like loop patterns, recursion, refactoring and decomposition. For the last few years we have used this in our software engineering classes with much success, particularly in relation to student engagement and helping students to think creatively. We are confident that this type of teaching approach can be seamlessly integrated in tertiary as well as in high school software engineering curricula and has no geographical boundaries. This novel teaching approach is ready to be tested in different cultural settings. Finally, we conclude the paper with a desire for future research in cross-cultural, multi-institutional and multi-national settings.

References

  • Mallik, A. K. 2004. From Natural Numbers to Numbers and Curves in Nature-I. RESONANCE, September 2004.
  • Mallik, A. K. 2004. From Natural Numbers to Numbers and Curves in Nature-II. RESONANCE, October 2004.
  • C. Böhm and G. Jacopini, "Flow diagrams, turing machines and languages with only two formation rules," Communications of the ACM, vol. 9, no. 5, pp. 344-371, 1966.
  • E. Dijkstra, "Go to statement considered harmful," Communications of the ACM, vol. 11, no. 3, pp. 147-148, 1968.
  • M. Hopkins, "A case for the GOTO," ACM SIGPLAN Notices - Special issue on control structures in programming languages, vol. 7, no. 11, pp. 59-62, 1972.
  • W. Maurer, "Generalized structured programs and loop trees," Science of Computer Programming, vol. 67, no. 3, pp. 223-246, 2007.
  • D. Ginat and E. Shifroni, "Teaching recursion in a procedural environment: How much should we. . . ?," in Proceedings of the 30th SIGCSE conference, 1999.
  • B. Haberman and H. Averbuch, in Proceedings of the 7th ITiCSE conference, 2002.
  • H. Kahney, "What do novice programmers know about recursion," in Proceedings of the SIGCHI conference, 1983.
  • R. Sooriamurthi, "Problems in comprehending recursion and suggested solutions," in Proceedings of the 6th ITiCSE conference, 2001.
  • S. Wiedenbeck, "Learning recursion as a concept and as a programming technique," in Proceedings of the 19th SIGCSE conference, 1988.
  • C. Mirolo, "Is iteration really easier to learn than recursion for CS1 students?," in Proceedings of the ICER conference 2012, Auckland, 2012.
  • D. Kurland and R. Pea, "Children's mental models of recursive logo programs," in Proceedings of the Fifth Annual Conference of the Cognitive Science Society, 1983.
  • Y. Anazi and Y. Uesato, "Learning recursive procedures by middle-school children," in Proceedings of the fourth annual conference of the Cognitive Science Society, 1982.
  • A. Kessler and J. Anderson, "Learning flow of control: Recursive and iterative procedures," Human-Computer Interaction, vol. 2, pp. 135-166, 1986.
  • H. Kahney and M. Eisenstadt, "Programmers' mental models of their programming tasks: The interaction of real world knowledge and programming knowledge," in Proceedings of the Fourth Annual Conference of the Cognitive Science Society, 1982.
  • I. Sanders, V. Galpin and T. Götschi, "Mental Models of Recursion Revisited," in Procceedings of the ITiCSE conference '06, Bologna, Italy. , 2006.
  • C. Wu, N. Dale and L. Bethel, "Conceptual models and cognitive learning styles in teaching recursion," in Proceedings of the SIGCSE Conference '98, Atlanta, GA, 1998.
  • D. Levi and T. Lapidot, "Recursively speaking: Analyzing students' discourse of recursive phenomena," in Proceedings of the SIGCSE conference, Austin, TX, 2000.
  • S. Bhuiyan, J. E. Greer, and G. I. Mccalla. Supporting the learning of recursive problem solving. Interactive Learning Environments, 4(2):115{139, 1994.
  • C. M. Kessler and J. R. Anderson. Learning flow of control: recursive and iterative procedures. Human-Computer Interaction, 2(2):135{166, 1986.
  • F. Turbak, C. Royden, J. Stephan, and J. Herbst. Teaching recursion before loops in CS1. J. Computing in Small Colleges, 14(4):86{101, 1999.
  • A. Benander, B. Benander, and H. Pu. Recursion vs. iteration: An empirical study of comprehension. J. of Systems and Software, 32(1):73{82, 199