Current Trends of Teaching Computer Programming in Undergraduate CS Programs: A Survey from Ecuadorian Universities

Abstract

Abstract. Computer programming has become a relevant element of the modern era. Practically it is involved in all sectors of modern society. Currently, many universities around the globe offer bachelor’s degree programs that contain computer programming related courses. In order to gain insight into how computer programming is taught in Ecuadorian Higher Education Institutions (HEIs), we have conducted the first national survey on teaching computer programming in undergraduate CS programs. In this survey participated 53 respondents from 13 Ecuadorian HEIs. We report on programming paradigms, programming languages, integrated development environments and teaching strategies used in the programming learning process. We found that the object-oriented paradigm along with the Java programming language are the most often used. The NetBeans integrated development environment is the most commonly used among the respondents. Concerning teaching strategies, e-learning platforms are commonly used as part of computer programming courses. More than half of the respondents use collaborative strategies such as pair programming in their courses. Finally, a half of the respondents use traditional computer labs for teaching programming; however, other approaches such as mobile devices, games and simulations, Arduino kits and robots start to be used as a teaching strategy. Our findings can serve as a starting point for addressing reforms in computer programming courses taught in Ecuadorian CS undergraduate programs.

References
[1] J. Bailey and R. B. Mitchell, “Industry Perceptions of the Competencies Needed by Computer Programmers: Technical, Business, and Soft Skills,” J. Comput. Inf. Syst., vol. 47, no. 2, pp. 28–33, Dec. 2006.


[2] C. Beeri, A. Yehudai, J. Gal-Ezer, and D. Harel, “A High School Program in Computer Science,” Computer, vol. 28, no. 10, pp. 73–80, 1995.


[3] D. M. Kurland, R. D. Pea, C. Clement, and R. Mawby, “A Study of the Development of Programming Ability and Thinking Skills in High School Students,” J. Educ. Comput. Res., vol. 2, no. 4, pp. 429–458, Nov. 1986.


[4] L. Grandell, M. Peltomäki, R.-J. Back, and T. Salakoski, “Why Complicate Things?: Introducing Programming in High School Using Python,” in Proceedings of the 8th Australasian Conference on Computing Education - Volume 52, Darlinghurst, Australia, Australia, 2006, pp. 71–80.


[5] T. C. Wang, W. H. Mei, S. L. Lin, S. K. Chiu, and J. M. C. Lin, “Teaching programming concepts to high school students with Alice,” in 2009 39th IEEE Frontiers in Education Conference, 2009, pp. 1–6.


[6] S. Kanemune, T. Nakatani, R. Mitarai, S. Fukui, and Y. Kuno, “Dolittle - experiences in teaching programming at K12 schools,” in Proceedings. Second International Conference on Creating, Connecting and Collaborating through Computing, 2004., 2004, pp. 177–184.


[7] F. Kalelioğlu, “A new way of teaching programming skills to K-12 students: Code.org,” Comput. Hum. Behav., vol. 52, pp. 200–210, Nov. 2015.


[8] S. Grover and R. Pea, “Computational Thinking in K-12: A Review of the State of the Field,” Educ. Res., vol. 42, no. 1, pp. 38–43, Jan. 2013.


[9] H. Hong, J. Wang, and S. H. Moghadam, “K-12 Computer Science Education Across the U.S.,” in Informatics in Schools: Improvement of Informatics Knowledge and Perception, vol. 9973, A. Brodnik and F. Tort, Eds. Cham: Springer International Publishing, 2016, pp. 142–154.


[10] A. Strawhacker, M. Lee, C. Caine, and M. Bers, “ScratchJr Demo: A Coding Language for Kindergarten,” in Proceedings of the 14th International Conference on Interaction Design and Children, New York, NY, USA, 2015, pp. 414–417.


[11] T. Meadthaisong, S. Meadthaisong, and S. Chaowaskoo, “Tangible Programming for Basic Control System New Frameworks to Engineering Education for Children,” Adv. Mater. Res., vol. 931–932, pp. 1298–1302, 2014.


[12] P. K. Chilana et al., “Perceptions of non-CS majors in intro programming: The rise of the conversational programmer,” in 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2015, pp. 251–259.


[13] A. Regalado-Méndez, F. K. Delgado-Vidal, R. E. Martínez-López, and E. PeraltaReyes, “BALANCEO DE ECUACIONES QUÍMICAS INTEGRANDO LAS ASIGNATURAS DE QUÍMICA GENERAL, ALGEBRA LINEAL Y COMPUTACIÓN: UN ENFOQUE DE APRENDIZAJE ACTIVO,” Form. Univ., vol. 7, no. 2, pp. 29–40, 2014.


[14] W. L. Honig, “Teaching and Assessing Programming Fundamentals for Non Majors with Visual Programming,” in Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education, New York, NY, USA, 2013, pp. 40–45.


[15] B. Furman and E. Wertz, “A first course in computer programming for mechanical engineers,” in Proceedings of 2010 IEEE/ASME International Conference on Mechatronic and Embedded Systems and Applications, 2010, pp. 70–75.


[16] W. X. Shandong, “Strategies for teaching java programming language to economics and management majors,” presented at the WIT Transactions on Information and Communication Technologies, 2014.


[17] G. Kiss, “Teaching Programming in the Higher Education not for Engineering Students,” Procedia - Soc. Behav. Sci., vol. 103, pp. 922–927, Nov. 2013.


[18] K. Beck and W. Cunningham, “A laboratory for teaching object oriented thinking,” 1989, pp. 1–6.


[19] C. Griggio, G. Leiva, G. Polito, G. Decuzzi, and N. Passerini, “A Programming Environment Supporting a Prototype-based Introduction to OOP,” in Proceedings of the International Workshop on Smalltalk Technologies, New York, NY, USA, 2011, p. 5:1–5:5.


[20] G. M. Ferreira, M. Z. Nascimento, K. D. R. Assis, and R. P. Ramos, “Teaching object oriented programming computer languages: learning based on projects,” in International Conference on Software Engineering Advances (ICSEA 2007), 2007, pp. 81–81.


[21] S. Joosten, K. Van Den Berg, and G. Van Der Hoeven, “Teaching functional programming to first-year students,” J. Funct. Program., vol. 3, no. 01, pp. 49–65, Jan. 1993.


[22] S. Thompson, “Where do I begin? A problem solving approach in teaching functional programming,” in Programming Languages: Implementations, Logics, and Programs, vol. 1292, H. Glaser, P. Hartel, and H. Kuchen, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 1997, pp. 323–334.


[23] S. Friese, “Measuring of and reacting to learners’ progress in logic programming courses,” 2010, p. 152.


[24] S. Vosinakis, P. Koutsabasis, and G. Anastassakis, “A Platform for Teaching Logic Programming Using Virtual Worlds,” 2014, pp. 657–661.


[25] I. Boticki, M. Katic, and S. Martin, “Exploring the Educational Benefits of Introducing Aspect-Oriented Programming Into a Programming Course,” IEEE Trans. Educ., vol. 56, no. 2, pp. 217–226, May 2013.


[26] K. B. Bruce, A. P. Danyluk, and T. P. Murtagh, “Event-driven programming is simple enough for CS1,” ACM SIGCSE Bull., vol. 33, no. 3, pp. 1–4, Sep. 2001.


[27] H. B. Christensen and M. E. Caspersen, “Frameworks in CS1: a different way of introducing event-driven programming,” ACM SIGCSE Bull., vol. 34, no. 3, p. 75, Sep. 2002.


[28] X. Liu, R. Raj, T. Reichlmayr, C. Liu, and A. Pantaleev, “Incorporating Service-Oriented Programming techniques into undergraduate CS and SE curricula,” 2013, pp. 1369– 1371.


[29] E. Murphy, T. Crick, and J. H. Davenport, “An Analysis of Introductory Programming Courses at UK Universities,” Art Sci. Eng. Program., vol. 1, no. 2, Apr. 2017.


[30] B. Chalk and K. Fraser, “A Survey on the teaching of introductory programming in Higher Education,” ICS High. Educ. Acad, 2005. [Online]. Available: https: //www.researchgate.net/publication/228383736_A_Survey_on_the_teaching_ of_introductory_programming_in_Higher_Education. [Accessed: 30-Jul-2017].


[31] A. Pears et al., “A survey of literature on the teaching of introductory programming,” 2007, p. 204.


[32] P. Guo, “Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities.” [Online]. Available: https://cacm.acm.org/blogs/blogcacm/176450-python-is-now-the-most-popular-introductory-teaching-languageat-top-u-s-universities/fulltext. [Accessed: 30-Jul-2017].


[33] R. Mason and Simon, “Introductory Programming Courses in Australasia in 2016,” 2017, pp. 81–89.


[34] P. Neve, G. Hunter, and D. Livingstone, “NoobLab: An E-learning Platform for Teaching Programming,” 2014, pp. 55–62.


[35] K. Chrysafiadi and M. Virvou, “PeRSIVA: An empirical evaluation method of a student model of an intelligent e-learning environment for computer programming,” Comput. Educ., vol. 68, pp. 322–333, Oct. 2013.


[36] Y. Takemura, H. Nagumo, K.-L. Huang, and H. Tsukamoto, “Assessing the Learners’ Motivation in the E-Learning Environments for Programming Education,” in Advances in Web Based Learning – ICWL 2007, vol. 4823, H. Leung, F. Li, R. Lau, and Q. Li, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2008, pp. 355–366.


[37] B. McCarthy, “Applying E-Learning Technologies to Teach Computer Programming: A Case Study,” in Proceedings of the 7th International Conference on Electronic Business, pp. 242–245.


[38] C. J. Olelewe and E. E. Agomuo, “Effects of B-learning and F2F learning environments on students’ achievement in QBASIC programming,” Comput. Educ., vol. 103, pp. 76–86, Dec. 2016.


[39] T. B. Bati, H. Gelderblom, and J. van Biljon, “A blended learning approach for teaching computer programming: design for large classes in Sub-Saharan Africa,” Comput. Sci. Educ., vol. 24, no. 1, pp. 71–99, Jan. 2014.


[40] O. Deperlioglu and U. Kose, “The effectiveness and experiences of blended learning approaches to computer programming education,” Comput. Appl. Eng. Educ., vol. 21, no. 2, pp. 328–342, Jun. 2013.


[41] Ö. Özyurt and H. Özyurt, “Using Facebook to enhance learning experiences of students in computer programming at Introduction to Programming and Algorithm course: USING FACEBOOK FOR COMPUTER PROGRAMMING LEARNING,” Comput. Appl. Eng. Educ., vol. 24, no. 4, pp. 546–554, Jul. 2016.


[42] T. Richter et al., “ViPLab - A Virtual Programming Laboratory for Mathematics and Engineering,” 2011, pp. 537–542.


[43] M. Esteves, B. Fonseca, L. Morgado, and P. Martins, “Improving teaching and learning of computer programming through the use of the Second Life virtual world: Improving teaching and learning through Second Life,” Br. J. Educ. Technol., vol. 42, no. 4, pp. 624–637, Jul. 2011.


[44] O. Ortiz, P. M. Alcover, F. Sanchez, J. A. Pastor, and R. Herrero, “M-Learning Tools: The Development of Programming Skills in Engineering Degrees,” IEEE Rev. Iberoam. Tecnol. Aprendiz., vol. 10, no. 3, pp. 86–91, Aug. 2015.


[45] A. Vihavainen, M. Luukkainen, and J. Kurhila, “Multi-faceted support for MOOC in programming,” 2012, p. 171.


[46] M. (Moti) Ben-Ari, “MOOCs on introductory programming: a travelogue,” ACM Inroads, vol. 4, no. 2, p. 58, Jun. 2011.


[47] D. Phuong, F. Harada, and H. Shimakawa, “Collaborative Learning Environment to Improve Novice Programmers with Convincing Opinions in Computer Room,” 2009, pp. 61–66.


[48] D. Čubranić and M. A. D. Storey, “Collaboration support for novice team programming,” 2005, p. 136.


[49] S. Balik et al., “Pair Programming In Introductory Programming Labs,” presented at the 2003 Annual Conference, 2003, p. 8.911.1-8.911.12.


[50] A. Radermacher and G. Walia, “Investigating student-instructor interactions when using pair programming: An empirical study,” 2011, pp. 41–50.


[51] P. B. Lawhead et al., “A road map for teaching introductory programming using LEGO© mindstorms robots,” ACM SIGCSE Bull., vol. 35, no. 2, p. 191, Jun. 2003.


[52] E. Wang, J. LaCombe, and A.-M. Vollstedt, “Teaching Structured Programming Using Lego Programmable Bricks,” presented at the 2007 Annual Conference & Exposition, 2007, p. 12.1370.1-12.1370.10.


[53] M. Sugimoto, T. Fujita, H. Mi, and A. Krzywinski, “RoboTable2: a novel programming environment using physical robots on a tabletop platform,” 2011, p. 1.


[54] M. Kolling, “Educational Programming on the Raspberry Pi,” Electronics, vol. 5, no. 3, pp. 1–17, Mar. 2016.


[55] P. Mozelius et al., “Game-Based Technologies in Teaching Programming in Higher Education: Theory and Practices,” Recent Pat. Comput. Sci., vol. 9, no. 2, pp. 105–113, Jul. 2016.


[56] S. Mladenović, Krpan, Divna, and M. Mladenović, “Using Games to Help Novices Embrace Programming: From Elementary to Higher Education,” Int. J. Eng. Educ., vol. 32, no. 1B, pp. 521–531, Jan. 2016.


[57] S. Xinogalos, C. Malliarakis, D. Tsompanoudi, and M. Satratzemi, “Microworlds, Games and Collaboration: three effective approaches to support novices in learning programming,” 2015, pp. 1–8.


[58] T. Mitamura, Y. Suzuki, and T. Oohori, “Serious games for learning programming languages,” 2012, pp. 1812–1817.


[59] L. C. Begosso, L. R. Begosso, A. Ribeiro, R. M. dos Santos, and R. H. Begosso, “The use of learning objects for teaching computer programming,” 2015, pp. 1–6.


[60] A. Salim et al., “On using 3D animation for teaching computer programming in Cairo University,” in 2010 The 7th International Conference on Informatics and Systems (INFOS), 2010, pp. 1–5.


[61] K. Johnsgard and J. McDonald, “Using Alice in Overview Courses to Improve Success Rates in Programming I,” 2008, pp. 129–136.


[62] M. Kölling, B. Quig, A. Patterson, and J. Rosenberg, “The BlueJ System and its Pedagogy,” Comput. Sci. Educ., vol. 13, no. 4, pp. 249–268, Dec. 2003.


[63] A. L. Ambler, M. M. Burnett, and B. A. Zimmerman, “Operational versus definitional: a perspective on programming paradigms,” Computer, vol. 25, no. 9, pp. 28–43, Sep. 1992.


[64] R. W. Floyd, “The paradigms of programming,” Commun. ACM, vol. 22, no. 8, pp. 455–460, Aug. 1979.


[65] O. S. Gómez, Paradigma de programación dirigida por eventos: Una visión general. Amazon KDP, 2015.


[66] A. Sillitti, T. Vernazza, and G. Succi, “Service Oriented Programming: A New Paradigm of Software Reuse,” in Software Reuse: Methods, Techniques, and Tools, vol. 2319, C. Gacek, Ed. Berlin, Heidelberg: Springer Berlin Heidelberg, 2002, pp. 269– 280.


[67] C. Arsenault, “Best IDE Software - a List of the Top 10,” KeyCDN Blog, 08-Dec-2016. [Online]. Available: https://www.keycdn.com/blog/best-ide/. [Accessed: 03-Aug2017].


[68] S. Martin, R. Gil, G. Diaz, E. Sancristobal, M. Castro, and J. Peire, “From e-learning to m-learning through b-learning and s-learning,” in 2008 50th International Symposium ELMAR, 2008, vol. 2, pp. 341–344.


[69] H. Gardner, J B., E-learning: Concepts and practice. Londres: SAGE, 2006.


[70] J. Linåker, S. M. Sulaman, R. M. de Mello, and M. Höst, “Guidelines for Conducting Surveys in Software Engineering,” 2015.


[71] Thibaud, “Top Programming Languages to Learn in 2017,” CodinGame Blog, 18-Jan2017. [Online]. Available: https://www.codingame.com/blog/top-programminglanguages-to-learn-in-2017/. [Accessed: 05-Aug-2017].


[72] “TIOBE Index | TIOBE - The Software Quality Company.” [Online]. Available: https://www.tiobe.com/tiobe-index/. [Accessed: 05-Aug-2017].


[73] “PYPL PopularitY of Programming Language index.” [Online]. Available: http://pypl.github.io/PYPL.html. [Accessed: 05-Aug-2017].


[74] S. O’Grady, “The RedMonk Programming Language Rankings: June 2017,” tecosystems, 08-Jun-2017. [Online]. Available: http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/. [Accessed:
05-Aug-2017].


[75] J. Chandler and S. Hand, “Teaching Object Technology in Britain,” in Proceedings of TOOLS’96, California, 1996.


[76] C. McDowell, L. Werner, H. Bullock, and J. Fernald, “The effects of pair-programming on performance in an introductory programming course,” 2002, p. 38.


[77] D. Preston, “PAIR Programming As a Model of Collaborative Learning: A Review of the Research,” J Comput Sci Coll, vol. 20, no. 4, pp. 39–45, Apr. 2005.