Mumuki, una plataforma libre para aprender a programar Federico Aloi *† , Franco Bulgarelli *† y Lucas Spigariol †‡ * Universidad Nacional de Quilmes Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Universidad Tecnológica Nacional - Facultad Regional Delta Resumen—Programar es una tarea compleja, dado que im- plica tanto dominar herramientas tecnológicas como ser capaz de construir modelos mentales consistentes. De igual forma, enseñar a programar es un reto en sí mismo. Por un lado, como el árbol que no permite ver el bosque, las herramientas tecnológicas antes mencionadas se convierten frecuentemente en obstáculos para el estudiante que pretende adquirir los conceptos fundamentales. Por otro lado, tanto las habilidades técnicas como conceptuales requieren de práctica constante para poder desarrollarlas. Y esto significa grandes inversiones de tiempo para el alumno, el cual es un recurso escaso para el estudiante universitario. En este trabajo se exploran los desafíos en la enseñanza de programación en instituciones educativas, y cómo Mumuki, una herramienta on-line de código abierto desarrollada por docentes, puede ayudar a sortear estas barreras y favorecer el aprendizaje de los estudiantes articulando teoría y práctica. I. I NTRODUCCIÓN La formación en el área de programación presenta desafíos tanto para el docente como para el estudiante. Uno de los as- pectos más evidentes es su complejidad tecnológica: programar requiere del dominio de múltiples herramientas informáticas tales como lenguajes de programación, bibliotecas, entornos de desarrollo, compiladores, intérpretes, etc. A su vez, programar trata de la construcción de conocimiento. Como afirma Naur, “la programación debe considerarse como una actividad en la que los programadores adquieren o logran un cierto tipo de conocimiento, una teoría, sobre las cuestiones de las que se ocupan”[1]. El dominio de ambos aspectos -el conceptual y el tecnológico- sólo puede lograrse con práctica constante, itera- tiva y con dificultad incremental, lo que en el contexto de una formación profesional significa una gran inversión de tiempo para el estudiante. Por ello es menester del docente proponer caminos pedagógicos que le permitan al estudiante aprender, haciendo un uso apropiado y eficiente de su tiempo, usualmen- te acotado por la presencia de otros estudios curriculares. Desde una reflexión crítica sobre la propia práctica docente para la enseñanza de la programación, surgen la preocupación y la inquietud acerca de la forma en que los estudiantes despliegan sus estrategias de aprendizaje por fuera del espacio áulico. Lo que primero emerge es la falta de práctica por parte de los estudiantes, que tratándose de procesos educativos que tienen como temática el desarrollo de software, consisten generalmente en resolver ejercicios desarrollando una solución mediante un programa escrito en un determinado lenguaje de programación. Sin caer en una lectura simplista que explique la situación en términos de falta de responsabilidad de los estudiantes o que se excuse apelando a factores externos de- terminantes, en una exploración acerca de los posibles motivos surgen variados aspectos a considerar. En particular, se centra la mirada sobre aquellos elementos sobre los que se percibe que es posible actuar desde la perspectiva docente y los saberes específicos del profesional de Sistemas. A partir de valorizar los aspectos conceptuales de la pro- gramación para la construcción de software eficiente, robusto y mantenible, constatar las dificultades con la tecnología en los primeros pasos del proceso de aprendizaje y comprender la importancia de práctica constante por parte de los estudiantes, surgen algunas preguntas que orientan el presente trabajo: ¿Cómo fomentar en los alumnos una mayor ejercita- ción práctica fuera del espacio áulico? ¿Cómo hacer para que ese esfuerzo redunde en un aprendizaje más significativo? II. PLANTEO DEL PROBLEMA II-A. Dificultad para probar la validez de una solución Una situación que se constata con frecuencia es que los estudiantes realizan ejercicios prácticos, pero no pueden probar si sus soluciones son correctas. Por un lado, un estudiante puede construir una solución y considerar que es correcta habiéndola probado con un lote de datos muy particular que no representa la variedad de situaciones a las que la solución debe dar respuesta adecua- damente. Cabe señalar que, sobre todo en los ejercicios más sencillos, cuando el estudiante se está iniciando en una nueva herramienta, el armado del caso de uso y todo el contexto en el cual la solución puede ser probada es tanto o más complejo que la solución en sí. En otro extremo, hay muchas veces donde el estudiante no logra que su solución funcione y por lo tanto no puede probar- la, pero sin embargo, su planteo es correcto y con sólo ajustar cuestiones menores o detalles sintácticos se puede terminar de construir el programa correctamente. Esta dificultad para concluir un ejercicio suele generar frustración en el estudiante e impedir continuar avanzando con otros ejercicios. II-B. Necesidad de un seguimiento personalizado La relación entre la cantidad de docentes y de estudiantes que suele haber en las instituciones educativas hace dificultosa