University Classroom Experiences in Introduction to Programming
DOI:
https://doi.org/10.29197/cpu.v18i35.415Keywords:
programing, algorithms, curricular activities, computer educationAbstract
Programming and algorithms are transversal to many subjects in engineering careers, particularly in those in computing, informatics and systems. There are various reasons why its techniques are not satisfactorily acquired by students. Some depend on the prior knowledge, motivation or creativity of the student, and others are attributed to teaching practice or the level of abstraction required by the discipline. The combination of these causes increases the difficulties and produces a great loss of students in the courses of the first years. The manifest complexity of teaching programming is constantly addressed through different techniques. In this work this practice is analyzed, and these techniques are observed. Methodologically, participant observation with control tests was chosen. The population consisted of various groups that were subjected to different controlled contexts to determine their behavior and level of evolution. Good and bad practices were evident both at the level of the teacher and the students. The conclusion allowed to corroborate some assumptions prior to the study, showing that the greatest achievement was obtained when the teacher occupied the role of mentor over the one who only had the purpose of transmitting decontextualized and depersonalized knowledge. The greatest benefit was observed when the teacher became an advisor to the individual process of each student. This generated continuous feedback from the participants each on their role. In addition, it was possible to determine the importance of motivation, particularly in the learning process, so complementary mechanisms were shared with the classroom to develop this motivation, such as "Hackathons" or programming marathons.
Downloads
References
Altadmri, A. y Brown, N. C. (2015). 37 million compilations: Investigating novice programming mistakes in large-scale student data. En 46th ACM Technical Symposium on Computer Science Education de ACM, Kansas City, USA. https://doi.org/10.1145/2676723.2677258
Arellano, N. M., Aguirre, J. F. y Rosas, M. V. (2015). Clase invertida: una experiencia en la enseñanza de la programación. En X Congreso sobre Tecnología en Educación & Educación en Tecnología, Universidad Nacional de San Luis, Argentina. http://sedici.unlp.edu.ar/bitstream/handle/10915/49121/Documento_completo.pdf?sequence=1&isAllowed=y
Brown, N. y Wilson, G. (2018). Ten quick tips for teaching programming. PLoS computational biology, 14 (4), e1006023. https://doi.org/10.1371/journal.pcbi.1006023
Casas, S. y Vanoli, V. (2007). Programación y Algoritmos: Análisis y Evaluación de Cursos Introductorios. En IX Workshop de Investigadores en Ciencias de la Computación de la Red de Universidades con Carreras de Informática, Argentina.
Erol, O. y Kurt, A. A. (2017). The effects of teaching programming with scratch on pre-service information technology teachers' motivation and achievement. Computers in Human Behavior, 77, 11-18. https://doi.org/10.1016/j.chb.2017.08.017
Ferreira Szpiniak, A. y Rojo, G. A. (2016). Enseñanza de la programación. Revista Iberoamericana de Tecnología en Educación y Educación en Tecnología, 1(1), 8.
Fowler, M., Beck, K., Roberts, D. y Gamma, E. (2012). Refactoring: Improving the Design of Existing Code. Reino Unido: Addison-Wesley.
Fracchia, C. C., Kogan, P., Alonso, A. C., Godoy, I., y López, L. M. (2014). Realización de torneos de programación como estrategia para la enseñanza y el aprendizaje de programación. En XX Congreso Argentino de Ciencias de la Computación, Argentina.
Gallego-Durán, F. J., Satorre-Cuerda, R., Compañ-Rosique, P. y Villagrá-Arnedo, C. (2018). Explicando el bajo nivel de programación de los estudiantes. ReVisión, 11 (1), 33-42.
Halverson, E. R. y Sheridan, K. M. (2014). The Maker Movement in Education. Harvard educational review, 84 (4), 495-504.
IEEE - ACM (2016). Computer Engineering Curricula, 2016. https://www.acm.org/binaries/content/assets/education/ce2016-finalreport.pdf
Liu, Y., Tong, Y., y Yang, Y. (2018). The Application of Mind Mapping into College Computer Programming Teaching. Procedia Computer Science, 129, 66-70. https://doi.org/10.1016/j.procs.2018.03.047
Lye, S. y Koh, J. H. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41, 51-61.
Moroni, N. y Señas, P. (2005). Estrategias para la enseñanza de la programación. En Primeras Jornadas de Educación en Informática y TICS de la Red de Universidades con Carreras en Informática, Argentina. http://sedici.unlp.edu.ar/bitstream/handle/10915/18901/52.pdf?sequence=1
Pérez-Tavera, I. H. (2015). Scratch en la educación. Vida Científica Boletín Científico de la Escuela Preparatoria, 13, 35-36.
StackOverflow (2018). Developer Survey Results. https://insights.stackoverflow.com/survey/2018/#education
Vera, P. M., Moreno, E. J., Rodríguez, R. A., Vázquez, M. C. y Valles, F. E. (2016). Aplicación de Técnicas de Gamificación para la Enseñanza de Programación a Alumnos de Primer Año de Ingeniería. En XI Congreso de Educación en Tecnología y Tecnología en Educación de la Red de Universidades con Carreras en Informática, Argentina. http://sedici.unlp.edu.ar/handle/10915/54653
Zuleta Medina, A. y Chaves Torres, A. (2011). Uso de herramientas informáticas como estrategia para la enseñanza de la programación de computadores. Revista Unimar, 57, 23-32.
Published
How to Cite
Issue
Section
License
Unless otherwise indicated, all articles in this journal are published under a
Licencia Internacional Creative Commons 4.0 Atribución-NoComercial-CompartirIgual .
The authors retain the copyright and assign the right to the first publication to the magazine.