Tools for the Learning of Programming Languages and Paradigms: Integration of a Code Validator and Exercises Module Into the Moodle eLearning Platform

  1. Pérez-Juárez, María A. 1
  2. Antón-Rodríguez, Míriam 1
  3. Jiménez-Gómez, María I. 1
  4. Díaz-Pernas, Francisco J. 1
  5. Martínez-Zarzuela, Mario 1
  6. González-Ortega, David 1
  1. 1 Universidad de Valladolid

    Universidad de Valladolid

    Valladolid, España


Code Generation, Analysis Tools, and Testing for Quality

ISSN: 2327-039X 2327-0403

Year of publication: 2019

Pages: 106-125

Type: Book chapter

DOI: 10.4018/978-1-5225-7455-2.CH005 GOOGLE SCHOLAR lock_openOpen access editor


The learning of programming languages and paradigms is complex and requires a lot of training. For this reason, it is very important to detect students' main problems and needs to be able to provide professors with tools that help students to overcome those problems and difficulties. One type of tool that can be used for this purpose is the code validator. This chapter explores the possibilities and impact of using different tools and strategies for learning programming languages and paradigms. To achieve this goal, the authors have conducted a comprehensive search of relevant scientific literature that has been complemented with their experience using a JavaScript code validator and exercises module integrated into the e-learning platform Moodle, with university students during a web programming course.

Bibliographic References

  • 10.1145/950566.950583
  • 10.1145/1047344.1047359
  • F.Bailie, (2003), Journal of Computing Sciences in Colleges, 19, pp. 303
  • Bento da Silva, J., Rochadel, W., Schardosim Simao, J. P., & Vaz da Silva Fidalgo, A. (2014). Adaptation Model of Mobile Remote Experimentation for Elementary Schools. IEEE Revista Iberoamericana de Tecnologias del Aprendizaje, 9(1), 28-32. Retrieved from
  • J.Bergin, (2001), 8th conference on Pattern Languages of Programs (PLoP 2001)
  • Brito, M. A., & Sá-Soares, F. (2014). Assessment frequency in introductory computer programming disciplines. Computers in Human Behavior, 30, 623-628. Retrieved from
  • Burgos, D., Tattersall, C., & Koper, R. (2007). Re-purposing existing generic games and simulations for e-learning. Computers in Human Behavior, 23(6), 2656-2667. Retrieved from
  • M. T.Chi, (1987), Advances in Child Development and Behavior, pp. 91, 10.1016/S0065-2407(08)60401-2
  • M. T.Chi, (1988), The nature of expertise
  • Danutama, K., & Liem, I. (2013). Scalable Autograder and LMS Integration. Procedia Technology, 11, 388-395. Retrieved from
  • J.Denner, (2012), Computers & Education, 58, pp. 240, 10.1016/j.compedu.2011.08.006
  • Douadi, B., Tahar, B., & Hamid, S. (2012). Smart edutainment game for algorithmic thinking. Procedia - Social and Behavioral Sciences, 31, 454-458. Retrieved from
  • (2018). ESLint web-site. Retrieved from
  • García-Peñalvo, F. J., Johnson, M., Ribeiro-Alves, G., Minović, M., & Conde-Gonzalez, M. A. (2014). Informal learning recognition through a cloud ecosystem. Future Generation Computer Systems, 32, 282-294. Retrieved from
  • Giraffa, L. M. M., Moraes, M. C., & Uden, L. (2014). Teaching Object-Oriented Programming in First-Year Undergraduate Courses Supported By Virtual Classrooms. Proceedings of the 2nd International Workshop on Learning Technology for Education in Cloud (Springer Proceedings in Complexity), 15-26. Retrieved from
  • 10.1037/0003-066X.39.2.93
  • R.Glaser, (1992), Assessment of prior knowledge as a determinant for future learning, pp. 1
  • Google. (2018). Closure compiler. Retrieved from
  • Gurcan-Namlu, A. (2003). The effect of learning strategy on computer anxiety. Computers in Human Behavior, 19(5), 565-578. Retrieved from
  • Hogo, M. A. (2010). Evaluation of e-learning systems based on fuzzy clustering models and statistical tools. Expert Systems with Applications, 10, 6891-6903. Retrieved from
  • Hundhausen, C. D., & Brown, J. L. (2007). What You See Is What You Code: A “live” algorithm development and visualization environment for novice learners. Journal of Visual Languages and Computing, 18(1), 22-47. Retrieved from
  • C. A.Jara, (2008), Computer-Aided Chemical Engineering, 25, pp. 1193, 10.1016/S1570-7946(08)80205-2
  • 10.1145/377435.377472
  • (2018). JSHint web-site. Retrieved from
  • Jurado, F., Redondo, M. A., & Ortega, M. (2012). Blackboard architecture to integrate components and agents in heterogeneous distributed eLearning systems: An application for learning to program. Journal of Systems and Software, 85(7), 1621-1636. Retrieved from
  • Kazimoglu, C., Kiernan, M., Bacon, L., & MacKinnon, L. (2012). Learning Programming at the Computational Thinking Level via Digital Game-Play. Procedia Computer Science, 9, 522-531. Retrieved from
  • Kordaki, M. (2010). A drawing and multi-representational computer environment for beginners’ learning of programming using C: Design and pilot formative evaluation. Computers & Education, 54(1), 69-87. Retrieved from
  • Law, K. M. Y., Lee, V. C. S., & Yu, Y. T. (2010). Learning motivation in e-learning facilitated computer programming courses. Computers & Education, 55(1), 218-228. Retrieved from
  • (2018). Moodle web-site. Retrieved from
  • Moons, J., & De Backer, C. (2013). The design and pilot evaluation of an interactive learning environment for introductory programming influenced by cognitive load theory and constructivism. Computers & Education, 60(1), 368-384. Retrieved from
  • Newstetter, W., & McCracken, M. (2001). Novice Conceptions of Design: Implications for the Design of Learning Environments. In Design Knowing and Learning: Cognition in Design Education. Elsevier Science. Retrieved from
  • 10.1016/j.knosys.2015.10.002
  • Romero, C., González, P., Ventura, S., del Jesús, M. J., & Herrera, F. (2009). Evolutionary algorithms for subgroup discovery in e-learning: A practical application using Moodle data. Expert Systems with Applications, 36(2), 1632-1644. Retrieved from
  • Sancho-Thomas, P., Fuentes-Fernández, R., & Fernández-Manjón, B. (2009) Learning teamwork skills in university programming courses. Computers & Education, 53(2), 517-531. Retrieved from
  • Simões, J., Díaz-Redondo, R., & Fernández-Vilas, A. (2013). A social gamification framework for a K-6 learning platform. Computers in Human Behavior, 29(2), 345-353. Retrieved from
  • Tan, J., Guo, X., Zheng, W., & Zhong, M. (2014). Case-based teaching using the Laboratory Animal System for learning C/C++ programming. Computers & Education, 77, 39-49. Retrieved from
  • Tuparov, G., Tuparova, D., & Tsarnakova, A. (2012). Using Interactive Simulation-Based Learning Objects in Introductory Course of Programming. Procedia - Social and Behavioral Sciences, 46, 2276-2280. Retrieved from
  • Vega, C., Jiménez, C., & Villalobos, J. (2013). A scalable and incremental project-based learning approach for CS1/CS2 courses. Education and Information Technologies, 18(2), 309-329. Retrieved from
  • World Wide Web Consortium (W3C). (2018a). Web standards: technical specifications and guidelines. Available at
  • World Wide Web Consortium (W3C). (2018b). Markup validation services. Available at
  • World Wide Web Consortium (W3C). (2018c). CSS validation services. Available at
  • Yusof, N., Zin, N. A. M., & Adnan, N. S. (2012). Java Programming Assessment Tool for Assignment Module in Moodle E-learning System. Procedia - Social and Behavioral Sciences, 56, 767-773. Retrieved from