Learning computer programming using “divide and conquer” strategy vs. without “divide and conquer strategy”
DOI:
https://doi.org/10.31908/19098367.2013Keywords:
Functions, Learning, Methodology, Programming, Systems EngineeringAbstract
Learning computer programming is a permanent challenge for teacher engineers to find mechanisms, theories, and models that facilitate it and simplify the resolution of problems from the use of computational thinking. The concept of a function and the “divide and conquer” strategy facilitates the assimilation and application of programming within the functional paradigm and, at the same time, simplifies the learning of other programming paradigms. This article is based on an investigation made in parallel with groups of Programming Functional Paradigm throughout the last 6 semesters in the Systems and Computing Engineering program. The results are significantly different when comparing the groups in which the “divide and conquer” strategy was adopted with the results of those with a single function was worked that included the entire logical process of solving a problem. It is concluded that it is much more convenient to atomize a computational algorithmic solution into independent functions than think that solution in a single logical body independent of the programming paradigm.
References
Trejos Buriticá, O. Lógica de Programación. Bogotá: Ediciones de la U, 2017.
Wing, J. Computational Thinking. Communications on the ACM, 49(3), p.p. 33-35, 2006.
Brown, N., & Wilson, G. (2018). Ten quick tips for teaching programming. PLos Comput Biol, 14(4), 1-8, 2018.
Diaz Barriga, F., & Hernandez Rojas, G. Estrategias docentes para un aprendizaje significativo. México: McGraw Hill, 2002.
Brassard, G., & Bratley, P. Fundamentos de Algoritmia. New York (USA): Prentice Hall, 1997.
Basogain Olabe, X., Olabe Basogain , M., & Olabe Basogain, J. Pensamiento Computacional a través de la programación: paradigma de aprendizaje. Revista de Educación a Distancia, 46(6), 2015, 2-35.
Trejos Buriticá, O. Metodología para aprender programación funcional en Ingeniería de Sistemas aplicando teoría de aprendizaje por descubrimiento. Revista Educación en Ingeniería - ACOFI, 12(23), 69- 75, 2017.
Trejos Buriticá, O. Tesis Doctoral "Aprendizaje en Ingeniería: Un problema de Comunicación". Pereira (Risaralda): Doctorado en Ciencias de la Educación RudeColombia - CADE UTP, 2012.
Trejos Buriticá, O. Programación Imperativa con Lenguaje C. Bogotá: ECOE Ediciones, 2017.
Schildt, H. Java: a beginners guide. New York: Editorial McGraw Hill, 2017.
Gomez Alvarez, M., Sanchez Dams, R., & Barón Salazar, A. A Representation Proposal of Practices for Teaching and Learning Software Engineering Using a Semat Kernel Extension. Revista Ingenierías, 17(32), 129-154, 2018.
Muñoz Guerrero, L. Tesis Doctoral Modelo de socialización del conocimiento profesional aprovechando NTICs, redes sociales y sus servicios asociados y desarrollo de competencias blandas con grupos interdisciplinarios en Ing de Sistemas. Pereira (Risaralda): Doctorado en Ciencias de la Educación RudeColombia, 2019.
Lindsay, D. Scientific Writing Thinking in Words. Sidney, Australia: CSIRO Publishing, 2011.
Burt, B. Beginning programming with Java for Dummies. New York (USA): For Dummies Editorial, 2017.
Gonzalez Hernandez, W. La enseñanza de la informática y de la matemática: ¿semejantes o diferentes? Revista Educación en Ingeniería - ACOFI, 13(26), 20-26, 2018.
Deitel, P., & Deitel, H. Java - Cómo programar. New York (USA): Pearson Education, 2017.
Cárdenas, D., & Martha Idalia Esparza. El pensamiento lógico computacional. México: Editorial Digital del Tecnológico de Monterrey, 2015.
Ausubel, D. The Acquisition and Retention of Knowledge. Washington - USA: Springer, 2012.