Metodología de análisis dirigida por datos para principiantes en programación

  1. Person Montero, Tatiana
Supervised by:
  1. Juan Manuel Dodero Beardo Director
  2. Iván Ruiz Rube Co-director

Defence university: Universidad de Cádiz

Fecha de defensa: 29 May 2024

Committee:
  1. Cristóbal Romero Morales Chair
  2. Andrés Muñoz Ortega Secretary
  3. Sonsoles López Pernas Committee member

Type: Thesis

Teseo: 839566 DIALNET lock_openTESEO editor

Abstract

Los lenguajes de programación visual (VPL), especialmente los basados en bloques, son cada vez más populares en la enseñanza y en el aprendizaje de la programación por ser más comprensibles y accesibles que los lenguajes de programación textual (TPL). Sin embargo, los programadores noveles pueden enfrentar dificultades a la hora de seguir buenas prácticas de programación debido a su falta de experiencia. En relación a esto, el análisis estático de código es una técnica que puede ser utilizada para evaluar las aplicaciones implementadas con el objetivo de identificar áreas de mejora y proporcionar retroalimentación que contribuya al desarrollo de sus habilidades. En este sentido, la revisión de la literatura realizada indica que el análisis estático de código tiene un uso limitado en los VPL basados en bloques, y en los casos en los que se aplica, los resultados no se utilizan para evaluar la calidad de las aplicaciones. Por otro lado, la incorporación del aprendizaje personalizado en los VPL basados en bloques, permitiría ofrecer recomendaciones adaptadas a las necesidades y nivel de conocimiento de cada programador novel. Los sistemas de generación de recomendaciones utilizan técnicas de Machine Learning para proporcionar recomendaciones automáticas basadas en la clasificación resultante. En este sentido, la revisión de la literatura realizada indica que hay escasa evidencia de la aplicación de técnicas de aprendizaje personalizado en los VPL basados en bloques según los estudios existentes. El objetivo principal de esta tesis ha consistido en desarrollar un marco de trabajo para evaluar la calidad de las aplicaciones implementadas con VPL basados en bloques y ofrecer recomendaciones de aprendizaje personalizadas a los programadores noveles que las implementan. El marco de trabajo desarrollado se compone de una serie de etapas, las cuales pueden ser aplicadas de manera iterativa: (1) preparación inicial del estudio con métricas y algoritmos de clasificación, (2) mejora continua basada en el análisis estático y la clasificación de la aplicación, y (3) evaluación de los resultados para reforzar métricas y algoritmos de clasificación. A pesar de que el marco de trabajo se ha enfocado inicialmente en las aplicaciones generadas con MIT App Inventor, puede extenderse a otros VPL. Además, se pueden incorporar nuevas métricas y modelos de clasificación basados en Machine Learning para añadir nuevas recomendaciones. La herramienta implementada para respaldar este método se ha llamado BlocklyMining y consta de tres servicios. El primero realiza el análisis estático de código de las aplicaciones de MIT App Inventor. El segundo evalúa la calidad de las aplicaciones asignándoles una puntuación conforme a la metodología SQALE. Finalmente, el tercero clasifica las aplicaciones usando algoritmos de Machine Learning para ofrecer recomendaciones personalizadas. La validación de este marco de trabajo se llevó a cabo mediante la ejecución de los tres servicios proporcionados por la herramienta BlocklyMining en un conjunto de 215.244 proyectos desarrollados por usuarios de la plataforma MIT App Inventor. Finalmente, los resultados de esta investigación muestran que el marco de trabajo propuesto permite medir la calidad de las aplicaciones creadas con VPL basados en bloques de forma estandarizada. Además, los resultados demuestran la viabilidad de ofrecer recomendaciones para personalizar el aprendizaje de la programación en estos entornos.