Descargar - conaiisi 2015 - Universidad Tecnológica Nacional

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).