19 Compiladores desde un punto de vista del aprendizaje y la alta deserción en asignaturas relacionadas

Los compiladores siendo la base del funcionamiento de los lenguajes de programación poseen una relevancia muy significativa para cualquier profesional en informática pues antes de manipular alguna tecnología lo más sensato es saber cómo es que esta funciona y que trasfondo posee, pues de este hecho nace la necesidad de compartir dicha información de forma correcta y asertiva y de una forma que dicho conocimiento no sea un obstáculo para el crecimiento de los profesionales sino más bien sea un aliento de esta forma el presente documento busca analizar la tasa de deserción en cursos relacionados con los compiladores y que toman como eje central de discusión a los mismos y cómo esto influye en el estudiantado. Esto se realizó mediante los datos obtenidos del primer cuatrimestre del año 2022 en la Universidad de San Carlos de Guatemala.

19.1 Introducción

En el mundo estamos rodeados de programas, funcionamos a través de programas y estos a su vez funcionan a través de lenguajes de programación que funcionan por medio de compiladores y de aquí la importancia de los compiladores y entender cómo es que estos funcionan y la magia que hay detrás de ellos, pero y ¿Cuál sería la forma más idónea de poder comprender a los compiladores de mejor forma y transmitir este conocimiento? Esto ha dado nacimiento a asignaturas universitarias en las cuales se imparte dicho conocimiento y es imposible el siquiera ignorar un fallo en la impartición de dichas asignaturas, de ahí la importancia de comprender el ¿por qué? de la alta tasa de deserción en asignaturas que toman como eje principal a los compiladores, así como analizar a profundidad como es impartida y estructurada dicha asignatura en la Universidad de San Carlos de Guatemala.

19.2 Artículo

Los compiladores y su relación con el aprendizaje

Los compiladores son de gran importancia en el mundo de la computación pues permitieron dar un paso más allá con el desarrollo de lenguajes de programación que hoy en día son indispensables para muchas tecnologías que se manejan actualmente.

Son herramientas que aportan gran movilidad y corrección de errores en código cuando un programador está en el desarrollo de un software con un determinado lenguaje, pero ahora la cuestión es ¿Cómo influyen estos en el proceso de aprendizaje de un profesional y como asignaturas en las que los compiladores son el eje principal de enseñanza influyen en el camino de conocimientos de los estudiantes? Uno de los mayores retos de la formación universitaria es completar con éxito la asignatura obligatoria de Organización de lenguajes y compiladores 1 en la carrera de Ingeniería en Ciencias y Sistemas (plan 2022) de la Facultad de Ingeniería de la Universidad de San Carlos de Guatemala (USAC), que en concreto corresponde al quinto semestre (3er año), aunque este dato es solamente técnico ya que realmente depende de en qué momento decide cursar dicha asignatura el estudiantado. La asignatura se divide en dos, por una parte, la clase magistral o también denominada teórica y por otra parte el laboratorio que va más enfocado a lo práctico. Dichas divisiones, aunque un tanto diferentes se complementan y buscan que estudiante domine tanto la teoría como la implementación de los compiladores en la vida real.

La asignatura se divide en dos partes la primera parte que es la dedicada al análisis léxico y en la cual se encarga el primer proyecto en la parte del laboratorio del curso, y la segunda parte en la cual se profundiza más en el análisis sintáctico y por último se ve a grandes rasgos el análisis semántico y se encarga la entrega del segundo proyecto del laboratorio. Cabe resaltar que al finalizar la primera parte y a los comienzos de la segunda parte es donde más se observó deserción por parte del estudiantado.

Según Urquiza-Fuentes (2010) compiladores es una de las asignaturas con mayor grado de complejidad en las titulaciones de informática, ya que representa un alto grado de abstracción, así como su parte práctica es muy laborosa y necesita en gran medida de una buena organización del tiempo que puede ser un factor importante y que influya en gran medida a la tasa de deserción. La pregunta aquí es ¿Por qué tantos alumnos desisten de la asignatura de compiladores? Dará a lugar que se debe a la exigencia de otros cursos externos al mismo, a la falta de competencia de los estudiantes o de los mismos catedráticos al impartir los temas del curso o a la organización del curso y su laboratorio. Pues bien, factores como los estudiantes y los catedráticos encargados de impartir dicha materia no pueden ser medibles en este análisis por lo que se les exenta de toda responsabilidad a estos en la tasa de deserción, aun así, la carga de cursos externos puede ser un factor importante, pero es lógico que la institución únicamente contemple el caso en el que el estudiante lleve al día sus materias y organice los cursos de acuerdo a esto. Así que solo queda en la organización y estructura que el curso lleve en cuanto a su clase magistral y a su laboratorio y es en este caso en donde se notó una deficiencia pues los temas a trabajar en el primer proyecto no concordaban del todo con lo que se vería en clase, ya que se trabajaba con la construcción de gramáticas para el analizador sintáctico cuando realmente en la parte teórica del curso aún no se había impartido dicho tema. Por lo que en esta situación lo recomendable sería trabajar en conjunto tanto laboratorio como clase teórica pues ambas se complementan y esto evitaría que el alumno ignore a alguna de las dos por la otra pues en ambas ve los mismos temas solamente que en un parte se observa cómo funciona lo que se hace y en la otra parte se pone en práctica pero sin tocar otras temas que no se hayan impartido pues puede dar paso a una sobrecarga innecesaria ya que más adelante se verán más a detalle esos temas.

Para la segunda parte del curso ya con una considerable cantidad de alumnos desertados se presentaba un mayor obstáculo para los que aún permanecen en el curso y es el manejo de patrones de diseño, mayor abstracción, la inclusión de nuevas tecnologías y mayor carga de operaciones que esto a su vez representaba una mayor absorción del tiempo. Esta carga podría de cierta forma alivianada si desde un principio se imparten los temas de patrones de diseño para que desde la primera entrega de proyecto el estudiante ponga en práctica estos y para la segunda entrega de proyecto esté más que listo para continuar usando patrones que ya observo previamente de esta forma dotando de una mayor abstracción al estudiantado y dando a paso a mayor tiempo si en dado caso la abstracción resultase más dificultosa para un determinado sector.

A su vez considerando que el estudiantado necesitará de apoyo externos haciendo referencia más concretamente a tutorías en plan fin de semana con el fin de realizar proyectos similares a los proyectos entregados en cada etapa del desarrollo del laboratorio esto con el fin de que el avance de los estudiantes sea progresivo y en todo momento se fomente la participación de estos en las actividades tanto de laboratorio como de la clase teórica.

19.3 Conclusiones

  • El aprendizaje del funcionamiento y manejo de los compiladores también brinda mayor abstracción y manejo de ciertos patrones de diseño, así como de forma indirecta la asignatura de Organización de compiladores 1 brinda una mejor perspectiva de la organización del tiempo al momento de realizar proyectos dado su alta exigencia en este sentido.

  • La alta tasa de deserción en la asignatura de Organización de compiladores 1 es probablemente debido a la falta de sincronización entre la clase magistral y el laboratorio debido a la variación de temas que se exigen en cada entrega de proyecto que no llega a concordar con los temas impartidos en la clase teórica y a esto sumándole la alta exigencia propia del curso.
  • Una posible solución para disminuir tan alta tasa de deserción en el curso es la de impartir los patrones de diseño necesarios para construir un compilador desde inicios del primer proyecto esto en búsqueda de disminuir la tasa de deserción que surge a partir de la finalización del primer proyecto.

  • Clases de reposición de fin de semana que utilizan las mismas herramientas que las solicitadas en el proyecto y que resuelven de forma detallada como trabajar con lo compiladores de modo que el estudiante puede avanzar de forma gradual también con su proyecto individual aplicando los mismos conceptos y técnicas que las que se visualizan en dichas clases de reposición.

19.4 Referencias

  • [1] [A. Pérez-Carrasco, F. Almeida-Martínez, J. Urquiza-Fuentes, (2010)] [Departamento de Lenguajes y Sistemas Informáticos I, LITE – Lab. de Tecnologías de la Información en la Educación, Universidad Rey Juan Carlos, “Reorganización de las prácticas de compiladores para mejorar el aprendizaje de los estudiantes] recuperado de: https://acortar.link/3sRn1R [Último acceso: septiembre 2022].

  • [2] [C. Burgos, (2016)] [“Diplomado en educación superior basada en competencias, Plan de Asignatura de Diseño de Compiladores” ] Recuperado de:https://hdl.handle.net/. [Último acceso: septiembre 2022].

  • [3] [D. Zapico, F. Ortín, J. Redondo, (julio 2009).][“Departamento de Informática, Universidad de Oviedo, Utilización de patrones de diseño en la asignatura de Procesadores de Lenguaje”] Recuperado de: https://acortar.link/eo5VlM. [Último acceso: Septiembre 2022].

  • [4] [E. Vivancos, J. Bened, (2019),] [“Universidad Politécnica de Valencia, Una propuesta para la evaluación de proyectos en un curso de Compiladores con una metodología de aprendizaje basada en proyectos”] Recuperado de: https://gouze.io/es/. [Último acceso: septiembre 2022].

  • [5] [R. Ferrer, M. Arias, (2009)] [Departamento de Lenguajes y Sistemas Informáticos, Universidad Politécnica de Cataluña, Barcelona, “El bajo rendimiento teórico de los alumnos en asignaturas teórico-prácticas. Posibles soluciones.] Recuperado de: https://acortar.link/iUNr63. [Último acceso: septiembre 2022].