Mumuki, una plataforma libre para aprender a programar Federico Aloi∗† , Franco Bulgarelli∗† y Lucas Spigariol†‡ ∗ Universidad Nacional de Quilmes Tecnológica Nacional - Facultad Regional Buenos Aires ‡ Universidad Tecnológica Nacional - Facultad Regional Delta † Universidad Resumen—Programar es una tarea compleja, dado que implica 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. 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 determinantes, 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 programació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 ejercitación práctica fuera del espacio áulico? ¿Cómo hacer para que ese esfuerzo redunde en un aprendizaje más significativo? 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 aspectos 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, iterativa 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, usualmente 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 II. II-A. P LANTEO DEL PROBLEMA 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 adecuadamente. 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 probarla, 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 una asistencia personalizada que de cuenta del ritmo personal en que cada uno va comprendiendo y poniendo en práctica los conceptos. El feedback que puede dar el docente frente al ejercicio que realiza el estudiante es más rico que el que puede ofrecer la computadora mecánicamente y sin dudas su forma de expresarlo es mucho más cálida que los resultados o los mensajes de error que arroja la máquina. Se observa esto principalmente cuando se trata de una corrección de una solución que si bien funciona, no está desarrollada de la forma adecuada o no aplica correctamente los conceptos que se quiere que el estudiante ponga en acción. Pero hay muchas otras situaciones, sobre todo en los primeros ejercicios, en las que los problemas se reiteran, los errores son los mismos y la forma de corregirlos es tan puntual y previsible que hace que la tarea docente se torne cuasi mecánica. En otras palabras, tiempo docente valioso que se podría utilizar en focalizar en las cuestiones conceptuales, en el análisis de variantes a las soluciones o en resolver situaciones particulares que ameritan una mirada más detenida, es destinado a señalar una y otra vez errores menores, a corregir individualmente cuestiones automatizables o a atender aspectos propios de la sintaxis del lenguaje que no hacen a las conceptualizaciones de los paradigmas de programación que los sustentan. La ventaja de que en su hogar el alumno pueda seguir su propio ritmo sin sentirse observado -cabe reconocer que hay casos en los que el estudiante se ve inhibido ante la mirada del docente o temeroso a equivocarse en su presenciase eclipsa ante la aparición del primer obstáculo que no puede superar por sí mismo. II-C. Complejidad de un lenguaje de programación El hecho de enfrentarse de pronto a la computadora y deber no sólo entender sino también expresarse en ese lenguaje formal, con toda la complejidad de su sintaxis y lo abstracto de su simbología, manipular entornos de desarrollo con múltiples opciones, poder interpretar y depurar errores, realizar seguimientos, validar resultados y todo lo que implica lograr que un programa funcione y lo haga correctamente, puede tornarse frustrante, si no se realiza con las mediaciones pedagógicas apropiadas. Para empezar, la misma instalación del lenguaje de programación tiene su complejidad que se añade a cuestiones iniciales de configuración de la herramienta. Luego, al desarrollar programas, el alumno se deberá topar con el uso de un IDE (Entorno Integrado de Desarollo), gestión de archivos de código fuente, empleo de bibliotecas, flujo de trabajo (edición, compilación, carga, interpretado, etc). Dependiendo de qué lenguaje se trate los obstáculos serán mayores o menores, pero nunca nulos, ni siquiera en el más mínimo “hola mundo”. III. III-A. F UNDAMENTACIÓN Articulación teoría práctica Si bien es un aspecto recuperado por la mayoría de las corrientes pedagógicas, la pedagogía crítica da especial importancia al ida y vuelta vital entre práctica y teoría, enriqueciéndose mutuamente. La dicotomía entre teoría y práctica, de la que habla Paulo Freire respecto de los sistemas educacionales, cuando recomienda evitar todo tipo de propuesta “que menospreciase la teoría, negándole toda importancia y enfatizando exclusivamente la práctica como la única valedera o bien negase la práctica atendiendo exclusivamente a la teoría” [3], no parece haber perdido vigencia. Retomando lo que llamó educación bancaria, muchas veces se tiene una concepción de enseñar que se reduce a transferir el concepto vacío de contenido y no transmitir la comprensión precisa de este contenido. Aprender y enseñar debieran ser entendidos como producción de conocimientos y no como un mero depósito de ellos. Freire es muy claro al respecto y son numerosas sus referencias a la práctica –a la que con un lenguaje más político, y profundizando su significación denomina “praxis”- y su relación siempre conflictiva con la teoría. A su vez, la teoría construccionista propuesta por Seymour Papert desde la cual fundamentó el desarrollo del lenguaje Logo [4], entiende el espacio educativo como una instancia de creación en la que teoría y práctica confluyen de manera tal que es imposible –o pierde sentido- diferenciarlas. También en los ambientes universitarios, generalmente tendientes a focalizar en conceptos teóricos, tiene sentido articular teoría y práctica. En esta dirección, la Universidad Tecnológica Nacional propone “una nueva relación donde la práctica deja de ser la mera aplicación de la teoría para convertirse en fuente del conocimiento teórico”. [6] III-B. Gradualidad del proceso de aprendizaje Las dimensiones fundamentales de la educación –enseñanza y aprendizaje- son procesos complejos que requieren gradualidad. Lo generalmente abultado del elenco de contenidos que se prescriben en los programas de las asignaturas, las relaciones entre ellos y lo potencialmente inabarcable que se esconde detrás de cada término en el ámbito profesional actual, hace necesaria una cuidadosa estrategia de selección, secuenciación y articulación de su desarrollo. Vigotsky, cuando desde su mirada constructivista del aprendizaje se refiere a la “Zona de Desarrollo Próximo” -aquellos conceptos o habilidades que el estudiante no conoce pero que están a su alcance de ser aprendidos con las mediaciones adecuadas- [2], está dando pistas acerca de cómo plantear gradualmente el desarrollo de los temas. La posibilidad de utilizar herramientas tecnológicas con un fin de mediación dentro del rol docente va en sintonía con estas ideas. La experiencia relatada por Ranciere en el “Maestro Ignorante” [5] -donde la utilización de un libro dado por el docente a sus alumnos les permite aprender más allá del ambiente escolar- puede ayudar a redescubrir la importancia y variedad de mediaciones dentro del complejo tejido de la práctica docente. En particular, ejemplifica la ruptura de la correlación lineal entre la explicación del profesor y la comprensión del alumno y el descubrimiento de nuevas mediaciones, que en el caso mencionado es un libro y en la presente investigación es un software, como facilitadoras del proceso de aprendizaje. III-C. La importancia del error Asumiendo que el aprendizaje no es una acumulación de saberes sino un proceso de construcción, los errores no son vistos como un fracaso sino como una oportunidad de aprendizaje. La misma noción de gradualidad da sentido a la importancia del error como parte del proceso, en tanto que es un indicador de los pasos progresivos que se van dando y permite focalizar en los obstáculos parciales como estrategia de superación. De todas maneras, no es en sí el error mismo el que favorece el aprendizaje, sino la posibilidad de descubrirlo, asumirlo e interpretarlo dentro de una propuesta pedagógica. En otras palabras, si hay algo peligroso de los errores es no detectarlos. En el campo de la programación, la detección e interpretación de los errores se vuelve un concepto fundamental. Poder validar que un programa funciona correctamente es un desafío permanente y presenta diferentes niveles de abordaje. Desde los errores que se producen en tiempo de desarrollo, impidiendo la ejecución del programa, y que se expresan en un lenguaje de difícil comprensión para un estudiante, hasta los que se producen en tiempo de ejecución y hacen que la aplicación se detenga inesperadamente sin manifestar detalles, poder detectarlo con precisión y entender su causa es fundamental para resolverlo adecuadamente. Frente a cierta tendencia en la enseñanza formal por la cual equivocarse está estigmatizado y es tomado como equivalente al fracaso, se propone que el error sea un escalón sobre el cual pararse, otra oportunidad para entender, una oportunidad para mejorar. El error no es una frustración sino un desafío, una motivación y debe presentarse e interpretarse como tal. III-D. La investigación en la universidad En un país que necesita de un sólido desarrollo tecnológico propio y en el marco de la educación pública, se reconoce el rol activo de la Universidad como innovadora en materia científico-tecnológica, y como ámbito no sólo donde se replica el conocimiento lanzando a la sociedad tandas de profesionales, sino donde también se investiga y se desarrolla tecnología. no tienen dueño, y por tanto no pueden ser atesoradas ni escondidas como una mercancía. Esto no significa negar la autoría u origen de los contenidos, sino posibilitar el acceso y su modificación sin permisos especiales. La Free Software Foundation asegura que “un programa que no es libre controla a los usuarios y el programador controla el programa, con lo cual el programa resulta ser un instrumento de poder injusto” [8]. Estas mismas ideas son extrapolables al contenido y tecnologías educativas: cuando no son libres, tienen de rehenes a los docentes y alumnos. Existen herramientas comerciales on-line que aspiran enseñar a programar. Algunas de ellas muestran grandes aciertos, como por ejemplo prácticas con feedback inmediato e interfaces gráficas intuitivas, que motivan al alumno a resolver problemas de programación. Pero sin excepción, confunden medio con fin, al focalizarse en el conocimiento tecnológico relegando o negando la existencia de los elementos conceptuales en la formación del programador. Así, se termina enseñando, por ejemplo, al lenguaje JavaScript en lugar del paradigma de objetos, o la sintaxis de una function en lugar de los beneficios de delegar. IV. D ESARROLLO DE LA PROPUESTA A partir de la mencionada problemática y tomando como referencia los fundamentos planteados, un grupo de docentes e investigadores universitarios del área de programación está construyendo y poniendo en práctica una estrategia pedagógica que utiliza como recurso didáctico una plataforma on-line denominada Mumuki. IV-A. Qué es Mumuki Con la mirada puesta sobre la importancia creciente del uso de software como recurso pedagógico, se identifica a las carreras de informática como un lugar donde la necesidad y la capacidad confluyen y es posible desarrollar el software que se utilice con fines educativos en el propio ámbito educativo. Que los docentes de programación puedan utilizar como recurso pedagógico un software creado por ellos mismos, es una singularidad que permite un sinnúmero de posibilidades, como aporte e incentivo a la investigación y por la potencialidad de ir adaptando permanentemente la herramienta a las nuevas necesidades que descubren y opciones que toman. Mumuki es un software educativo para aprender a programar a partir de la resolución de problemas; plantea enseñar conceptos de programación, en un proceso conducido por guías prácticas en las que la teoría surge a medida que se avanza. Esta herramienta se presenta al estudiante como una aplicación Web interactiva, en la que se articulan explicaciones y ejemplos con la opción de que cada uno realice su propia solución y la plataforma la pruebe y corrija instantáneamente, orientando acerca de los aciertos y errores. Está diseñado para ser utilizado tanto a distancia, como recurso complementario al aula y con el ritmo propio que cada estudiante le imprime a su forma de practicar, como en espacios educativos formales de laboratorios o talleres, donde cada alumno -o grupo- trabaja con su máquina, con la presencia orientadora de los docentes. III-E. IV-B. Educación y Tecnología Democrática Las herramientas educativas on-line son un buen complemento a la educación presencial, pero difícilmente son un reemplazo. Por ello, en lugar de utilizar a la popularidad de internet para dar por finalizada la experiencia educativa presencial, podemos emplearla para permitirle a los docentes llegar más lejos y en todo momento, permitiendo aprovechar mejor los encuentros presenciales. Entendiendo a la educación como un derecho para todos, la tecnología puede ayudar a llegar a cada rincón a cada hogar, cada vez con mayor masividad, convirtiéndose en un factor de inclusión. Alineado con este espíritu democrático, tanto las herramientas como el contenido educativo debe ser libre: las ideas Organización del contenido El elemento fundamental que contiene la plataforma son una enorme cantidad de problemas concretos, organizados y articulados entre sí, que el estudiante debe resolver mediante el desarrollo de un programa, en un determinado lenguaje. Junto con los enunciados de los ejercicios donde se describe la situación problemática a resolver, se presentan orientaciones y ejemplos. Cuando el estudiante plantea su solución, con sólo presionar un botón la .envíaτ la plataforma la ejecuta y evalúa, informando si es correcta o no. En caso que presente errores, se indica cuáles son y el lugar del código donde se produjeron, no sólo con la información que típicamente arroja un compilador -orientado a programadores experimentados- sino con precisiones y orientaciones adicionales propias de la forma de presentar la materia por parte de los docentes, y se da la posibilidad que el alumno corrija su solución y la vuelva a enviar. A medida que se avanza en la resolución de los ejercicios se van poniendo en evidencia los elementos conceptuales relacionados que dan sustento a la práctica y a la vez permiten pasar a nuevos ejercicios de mayor complejidad. Los ejercicios se organizan de múltiples maneras: Guías: Una colección ordenada de ejercicios, todos sobre el mismo lenguaje de programación y que siguen un hilo conductor: ya sea que todos tratan sobre el mismo concepto o giran en torno a un misma problemática o modelo de negocio. Categorías: Una colección ordenada de guías, todas sobre el mismo lenguaje programación y bajo un mismo paradigma, que de ser recorridas permiten adquirir todos los conceptos fundamentales asociados a ambos. A su vez, para que Mumuki puede ser usado en diferente momentos del proceso de aprendizaje del alumno o enmarcada en propuestas docentes organizadas de distintas maneras, se ofrecen dos tipos de guías: De aprendizaje: Apuntes interactivos con mayor carga teórica, orientados a presentar conceptos y afianzarlos mediante la resolución de problemas simples. Son útiles para quienes por un motivo u otro no asistieron a la clase presencial, para quienes quieren repasar lo que se presentó, o para ser utilizados como recurso del docente durante el desarrollo de la clase. De desafío: Colecciones de problemas de complejidad creciente y menor carga teórica, orientados a ganar agilidad. Son presentados como prácticas complementarias para ejercitar lo aprendido, como forma de afianzar habilidades y poner a prueba los conocimientos; generalmente son utilizadas fuera del aula a modo de ejercitación o trabajos prácticos. Cabe señalar que con el doble objetivo de posibilitar ambos usos y minimizar la frustración de un ejercicio que no puede ser finalizado, la plataforma no restringe el avance. Si bien se sugiere una cierta secuencia, se permite que el alumno puede continuar con un nuevo ejercicio sin haber resuelto correctamente el anterior, como también armar su secuencia personalizada de ejercicios. Esta flexibilidad permite también que diferentes docentes planteen sus propios recorridos conceptuales. En definitiva, Mumuki es una herramienta pedagógica que incluye un dispositivo tecnológico diseñado específicamente con este fin, una colección de contenidos adaptados o generados ad-hoc para ser utilizados en la plataforma y un marco de lineamientos sobre cómo ser usados. IV-C. Características Por un lado, Mumuki si bien no es la primera experiencia de integrar una herramienta on-line dentro del ámbito académico, tiene elementos innovadores comparado con otras plataformas Web de enseñanza de la programación, ya sea de entidades comerciales o de instituciones educativas. En primer lugar, el contenido de Mumuki se encuentra íntegramente en español, no siendo una traducción, sino contenido original y local. Se hace énfasis en emplear una redacción informal, orientada a la pregunta, usando recursos gráficos como emoticones e imágenes, y basada en el voseo, característico de Argentina, en contraposición con el tuteo propio del español neutro. Esto permite establecer una cercanía entre el idioma de los problemas y el idioma del alumno, y al mismo tiempo otorgarle un tinte nacional al contenido. De igual forma, la plataforma trata de traducir al español informal todos los errores que las herramientas empleadas normalmente presentarían en un inglés técnico, con el objetivo de fomentar la lectura de los mismos. En muchos casos, incluso, se pasa de una mera traducción a una explicación detallada del problema, no orientada a relatar el error evidente, sino al origen conceptual más probable del mismo. Por ejemplo, en lugar de indicar “uso de identificador no declarado”, la plataforma reportará “Estás usando un predicado, pero no lo declaraste antes. Fijate si no te olvidaste de declararlo o si escribiste mal su nombre”. Otro aspecto destacable es que la plataforma no sólo permite validar la correctitud de la solución -si hace lo que debería- sino la calidad de la misma -si usa las herramientas conceptuales correctas, de la forma correcta. Mumuki es en su totalidad código libre y gratuito, con el objetivo de facilitar la colaboración entre docentes de facultades y entusiastas en general. La libertad de las herramientas y materiales de estudio es fundamental para la democratización del conocimiento. Esto permite contar con un software vivo, en constante evolución, con aportes de la comunidad de desarrolladores, y permitiendo el uso de la herramienta en otros contextos y por parte de otros docentes. Al existir además una coincidencia entre quienes usan el software y quienes lo desarrollan, es posible iterar rápidamente y sin costos onerosos, facilitando la prueba de ideas e innovación continua. IV-D. Arquitectura En primer lugar, es una plataforma extensible. Es sencillo agregar soporte para nuevos lenguajes de programación y formas de evaluación y presenta una arquitectura orientada a eventos que posibilita conectar otras aplicaciones satélite a la plataforma principal. En segundo lugar, es simple en el sentido de la filosofía Unix: hacer una sola tarea y hacerla bien. Y de su simpleza deriva su mantenibilidad. A nivel arquitectura, evolucionó desde una aplicación monolítica a una basada en microservicios, que consta de una aplicación Ruby On Rails como gestor de contenido, más una aplicación -llamada test runner server - por cada lenguaje soportado, que ofrece servicios de evaluación de soluciones. Actualmente y a través de diferentes runners, Mumuki ofrece soporte para varios lenguajes, tanto de uso industrial como Java, JavaScript, Haskell, Prolog y Ruby, como lenguajes desarrollados con un fin educativo, como Wollok o Gobstones. V. E XPERIENCIAS EN INSTITUCIONES EDUCATIVAS Se analiza la forma de utilización de la plataforma en dos instituciones educativas sustancialmente diferentes, tanto en el planteo de los contenidos como en el perfil del alumnado. En ambos casos se toma el período correspondiente a la primera mitad del año 2015. V-A. Paradigmas de Programación El primer caso es en la asignatura Paradigmas de Programación, materia anual obligatoria del segundo nivel de la carrera de Ingeniería en Sistemas de Información, en el ámbito de la Universidad Tecnológica Nacional (Facultad Regional Buenos Aires). Allí los alumnos llegan habiendo cursado previamente una materia anual sobre fundamentos de programación imperativa, orientada a la resolución de problemas mediante algoritmos y estructuras de datos. Es una asignatura con una gran cantidad de estudiantes -más de 400- organizados en quince comisiones de entre 20 y 40 integrantes. El cuerpo docente está formado por 9 profesores que se encuentran a cargo de los cursos, más un grupo de unos 40 ayudantes. El planteo de la materia es eminentemente teórico-práctico, siendo ambos aspectos difícilmente separables. En Paradigmas de Programación a los alumnos se les presentan conceptos transversales, como polimorfismo, orden superior, delegación, declaratividad, expresividad, abstracción, efecto y conceptos y herramientas características de tres diferentes paradigmas de programación: Funcional, Lógico y Orientado a Objetos. En el período analizado se desarrollaron las temáticas de la programación funcional y lógica, utilizando respectivamente los lenguajes Haskell y Prolog, ambos soportados por Mumuki. En la amplia mayoría de los cursos, las guías de aprendizaje fueron recomendadas para aquellos estudiantes que no pudieron asistir a alguna clase, mientras que las guías de desafío fueron recomendadas para todos, para practicar fuera del aula y más allá de los trabajos prácticos requeridos para la aprobación de la materia, con carácter opcional. Además, en algún curso fue utilizado en tiempo de clase, en el espacio de laboratorio de sistemas, y en otros cursos algunos de los ejercicios fueron requeridos puntualmente como trabajo práctico de entrega obligatoria. Buena parte de los docentes hicieron una presentación de la herramienta a sus alumnos y motivaron a utilizarla, mientras que otros lo comentaron con menor énfasis. En este contexto, los alumnos lo usaron intensamente. Aproximadamente, unos 300 estudiantes utilizaron Mumuki y se registraron soluciones a más de 200 ejercicios diferentes, organizados en 12 guías. Se han contabilizado alrededor de 30.000 soluciones, lo cual significa unas 100 por usuario y aproximadamente el 30 % de las mismas fue correcto, lo que sugiere que la solución correcta corresponde en promedio al tercer intento. Ciertamente, estos promedios son indicadores relativos, ya que hay ejercicios que la amplia mayoría lo resuelve correctamente al primer intento, y en el otro extremo, hay algunos ejercicios donde las soluciones correctas son muy pocas. Haciendo un seguimiento más detallado, hay estudiantes que hay hecho un uso muy intensivo de la plataforma superando las doscientas soluciones y hay casos de estudiantes con muy pocos ejercicios resueltos, lo que muestra que simplemente ingresaron a la plataforma para conocerla y por algún motivo no la continuaron utilizando. V-B. Laboratorio de Programación 2 El segundo caso se trata de la materia Laboratorio de Programación 2, dictada en el marco de la Tecnicatura en Programación con Orientación en desarrollo de Software Libre del Instituto Secundario Sagrado Corazón, ubicado en Villa Jardín, Lanús Oeste, Provincia de Buenos Aires. Se trata de un curso introductorio a la programación donde el objetivo es poder aplicar los fundamentos de la programación utilizando como recurso el lenguaje Gobstones [7]. Los alumnos llegan sin conocimientos previos de programación y en muchas casos no están acostumbrados a escribir mails, de modo que las horas de clase se transforman en el único espacio de consulta. Al ser una materia nueva, no existe material de consulta adecuado para la edad y los conocimientos. Por otra parte, las ausencias a clase son bastante comunes lo cual vuelve difícil el seguimiento de la materia 1) Experiencia: La plataforma se utilizó como canal para resolver trabajos prácticos obligatorios para la aprobación de la materia, con el objetivo de nivelar los conocimientos del grupo. Para aquellos que siguieron el curso la resolución de las guías sirvió de repaso y práctica, mientras que para el resto se transformó en una herramienta fundamental en la incorporación de nuevos conceptos. La introducción de Mumuki logró que todos los alumnos practiquen fuera del horario de la clase, dato no menor teniendo en cuenta el bajo nivel de involucramiento con las materias que suele darse en la escuela media. Todos los alumnos pudieron acceder a la plataforma y muchos de ellos se mostraron mucho más entusiasmados que con la herramienta de escritorio. Desde la percepción de los mismos estudiantes surgen tres cosas fundamentales: la importancia que se le da a la explicación de los errores, el lenguaje coloquial utilizado en las explicaciones de los ejercicios y el hecho de no tener que instalar ningún software adicional para poder practicar. En sus propias palabras, una alumna afirma que "lográs entender mejor llevando a la practica lo teórico y si logras entender mas o menos lo teórico y luego lo llevás a la practica con una herramienta como Mumuki creo que es mucho más fácil de entender y ver con más claridad". Otro alumno destaca que "te van explicando paso por paso en las diferentes guías y además la forma de explicar los pasos que hay que dar en los ejercicios son muy fáciles de entender, no andan con palabras raras". Pese a la mala calidad del servicio de Internet que puede contratarse en el barrio y teniendo en cuenta que aproximadamente la mitad de los alumnos no cuenta con ningún tipo de conectividad en forma permanente, la herramienta fue utilizada con bastante frecuencia por los estudiantes. VI. C ONCLUSIONES Retomando las preguntas iniciales acerca de cómo fomentar la práctica en los estudiantes para que aprendan a programar y teniendo en cuenta la descripción de la plataforma y el análisis de sus primeras experiencias de utilización, se puede afirmar que Mumuki es una herramienta que favorece el proceso de aprendizaje. Aún con su corta existencia, da muestras que es efectivo y tratándose de un trabajo en proceso, promete mejores resultados en un futuro. No es el enfoque del presente trabajo pretender cuantificar la magnitud de este aporte, sino describir y ayudar a descubrir las variables que constituyen el proceso en el que adquiere sentido su utilización como recurso pedagógico. De esta manera, los elementos más destacados son los siguientes: VI-A. Feedback para una mejora continua Desde el punto de vista del docente, el poder contar con las soluciones erróneas resultó muy valioso para guiar el desarrollo de la materia en dos ejes. Por un lado, esta información fue fundamental para aumentar la calidad del contenido tanto dentro de la plataforma (modificando su redacción, agregando ayudas o simplificando ejercicios) como fuera de ella. Por otro lado, permitió anticiparse a la falla en los exámenes: a partir de la detección de patrones de errores comunes, se ha logrado reforzar esos temas en el aula a tiempo. VI-B. Proactividad de los estudiantes Se observó un mayor involucramiento de los alumnos en la práctica, lo cual se infiere a partir de, por un lado la gran cantidad de soluciones enviadas a los problemas, y por otro lado la mayor variedad de ejercicio o temáticas a las que se refieren las consultas recibidas. Antes de la existencia de Mumuki pocas veces los alumnos realizaban consultas sobre ejercitación opcional. La herramienta mejoró la proactividad del alumnado en este aspecto. VI-C. Foco en los conceptos Se constató un cambio en el tipo de consultas y correcciones realizadas: se pasó de consultas orientadas fundamentalmente a la sintaxis, instalación e interpretación de errores de la herramienta, a otras de tipo más conceptual que van en línea con los contenidos que se buscan transmitir. Esto ha liberado al docente de hacer demasiado hincapié en preguntas triviales o sobre detalles, pudiendo dedicarse con mayor atención a cuestiones más interesantes y profundas. VI-D. tienen la responsabilidad de conducir y evaluar el proceso, con una recuperación más profunda y sistemática de la experiencia de los alumnos. Focalizando en la plataforma, recogiendo las inquietudes de los mismos desarrolladores como opiniones de los demás docentes, surgen diversas líneas de acción para continuar modificando y enriqueciendo Mumuki, algunas de ellas ya en proceso de desarrollo. Contención VII-B. Aplicación en otras áreas Teniendo en cuenta que la arquitectura de Mumuki diferencia lo que son las opciones y facilidades de la plataforma como tal de los contenidos propiamente dichos, resulta una herramienta lo suficientemente genérica y versátil para permitir la confección de apuntes interactivos, guías de ejercitación, prácticas, desafíos, juegos o incluso exámenes sobre otras temáticas: el requerimiento es que la información se estructure en torno a problemas con soluciones verificables. Más allá de que la plataforma fue concebida en primer lugar para ayudar en la enseñanza de la programación, el tipo de problema tampoco está prefijado: ejercicios de matemática, física, ajedrez, son otros distintos escenarios posibles de aplicación de la herramienta. R EFERENCIAS [2] [3] [4] [5] [6] T RABAJO FUTURO Desde una perspectiva metodológica, cabe señalar que tratándose de un recurso pedagógico, el estudiante es un actor central de quien valorar su propia experiencia de aprendizaje. En el presente trabajo, si bien se cita la opinión puntual de algunos alumnos, en general se toma su apreciación a partir de la percepción que tienen los docentes de cómo ven ellos el proceso de sus respectivos alumnos. Como trabajo pendiente, está la tarea de complementar esta importante mirada de quienes Herramientas docentes y de seguimiento Está en su etapa temprana de desarrollo una herramienta que permita ver al docente de manera organizada y clara la información sobre el progreso de sus propios alumnos, de forma tal que sea más sencillo utilizarla como un indicador más a la hora de planificar su materia. En esencia, buscará dar respuesta a preguntas sobre el grado de avance del curso ¿qué porcentaje de alumnos resolvió la guía y? ¿qué ejercicios obtuvieron mayor cantidad de soluciones incorrectas?- así como también sobre seguimiento individual de los estudiantes -¿en qué se está equivocando la alumna y? ¿demuestra una mejora en sus soluciones sucesivas a partir del feedback de la plataforma?-. [1] El hecho de saber que se cuenta con una herramienta que puede ser accedida en cualquier momento, logró que el alumno pueda sentirse más contenido. Los alumnos en general se sintieron a gusto con la herramienta, entregando feedback muy positivo. Aún reconociendo que no es perfecta y a sabiendas de que se encuentra en etapas iniciales de desarrollo, manifiestan que Mumuki les resultó útil. Algunos incluso han colaborado proponiendo mejoras a la plataforma y detectando errores de los ejercicios. VII. VII-A. [7] [8] Peter Naur. «Programming as Theory Building». En: (1985). Lev Vigotsky. Pensamiento y lenguaje. Ed. por Visor. Madrid, 1993. Paulo Freire. Carta a quien pretende enseñar. Ed. por Siglo Veintiuno. Buenos Aires, 1994. Seymour Papert. Logo Philosophy and Implementation. Ed. por LCSI. 1999. Jacques Ranciere. El maestro ignorante. Ed. por Laertes. Barcelona, 2002. Secretaría Académica y de Planeamiento. UTN. Didáctica en la Universidad. Ed. por Universidad Tecnológica Nacional. Buenos Aires, 2007. Pablo E. Martínez López. Las bases conceptuales de la Programación: Una nueva forma de aprender a programar. La Plata, Buenos Aires, Argentina, 2013. ISBN: 978-987-33-4081-9. URL: http : / / www. gobstones . org / bibliografia/Libros/BasesConceptualesProg.pdf. Free Software Foundation. ¿Qué es el software libre? URL : http://www.gnu.org/philosophy/free- sw.es.html (visitado 08-20-2015).
© Copyright 2024