De la aritmética al álgebra: funciones …
Juan José Carreón Granados
Facultad de Ingeniería
juan.carreon@gmail.com
Eduardo Espinosa Ávila
Facultad de Ingeniería
laloeag@gmail.com
Alejandro Velázquez Mena
Facultad de Ingeniería
mena@fi-b.unam.mx
Línea temática:
Integración de recursos educativos como apoyo a la enseñanza
Resumen
Se plantea una propuesta que permite que estudiantes de primer semestre de Ingeniería y de enseñanza media aprendan temas algebraicos esenciales, al construir ellos mismos sus propios videojuegos, empleando el currículo Bootstrap, que alinea conceptos matemáticos y computacionales. Este currículo es parte de una experiencia internacional exitosa, apoyada en un software interactivo en línea WeScheme y/o el descargable DrRacket, así como en la capacitación del profesorado.
Palabras clave: álgebra, programación, videojuegos, Bootstrap
1. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
De la aritmética al álgebra: funciones …
Juan José Carreón Granados
Facultad de Ingeniería
juan.carreon@gmail.com
Eduardo Espinosa Ávila
Facultad de Ingeniería
laloeag@gmail.com
Alejandro Velázquez Mena
Facultad de Ingeniería
mena@fi-b.unam.mx
Línea temática:
Integración de recursos educativos como apoyo a la enseñanza
Resumen
Se plantea una propuesta que permite que estudiantes de primer semestre de Ingeniería y de
enseñanza media aprendan temas algebraicos esenciales, al construir ellos mismos sus propios
videojuegos, empleando el currículo Bootstrap, que alinea conceptos matemáticos y
computacionales. Este currículo es parte de una experiencia internacional exitosa, apoyada en un
software interactivo en línea WeScheme y/o el descargable DrRacket, así como en la capacitación del
profesorado.
Palabras clave: álgebra, programación, videojuegos, Bootstrap
Introducción
Se ha buscado reducir deficiencias en el conocimiento del Álgebra de estudiantes de primer ingreso
en la Facultad de Ingeniería, FI, mediante recursos web como parte del proyecto PAPIME 104415,
Drupal Camp y WebAcademy.
Inicialmente, mediante hacer responsivo y más fácilmente mantenible el sitio de la Sección de
Álgebra del Departamento de Matemáticas de la División de Ciencias Básicas, FI (División de Ciencias
Básicas, FI, UNAM, 2016); así como mediante manejar recursos interactivos. En relación a esto último,
eventualmente, incorporando ligas a recursos web externos a la Sección de Álgebra, como el MOOC
AlgebraX: Introduction to Algebra (edX, 2016), entre otros.
Un recurso en línea más interesante es Bootstrap (Bootstrap, 2016), parecido a AlgebraX, pero con
menores limitaciones y de alcances mucho mayores, ha sido desarrollado con base en el principio de
que el Álgebra es una herramienta fundamental para la matemática de la educación media, las
ciencias y la ingeniería de licenciatura; abarcan mucho más que el currículo standard de Algebra 1 de
high school, pudiendo alinearse tanto como se quiera con estándares como el CCSS (common core
estadounidense), entre otros.
Desarrollo
2. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
Bootstrap es un valioso recurso interactivo que no demanda de los estudiantes saber suficiente inglés
y tener la autodisciplina para iniciar y continuar un MOOC, como el curso AlgebraX, hasta terminarlo;
ni tampoco algunas limitaciones adicionales de AlgebraX como son el apoyarse principalmente en el
esfuerzo individual de los estudiantes y, por lo tanto, no mostrar estadísticas relacionadas con
avances de diferentes grupos socioeconómicas de estudiantes, ni considerar las peculiaridades
especiales como las de los grupos de estudiantes en riesgo.
Boostrap vincula el razonamiento algebraico con un proceso de solución de problemas, se apoya no
solo en el trabajo individual de los estudiantes sino en el trabajo en equipo, además de contribuir
significativamente a que los estudiantes construyan una visión global del Álgebra.
Recursos interactivos como Bootstrap, con base en el manejo de expresiones numéricas simples
como 4 y 9, añadiendo funciones simples como + o –, contribuyen inmediatamente a que los
estudiantes manejen funciones gráficas más complejas, …, y que grupos de estudiantes (cerca de la
mitad mujeres, y provenientes de minorías como afroamericanos y latinos) logran diseñar y construir
sus propios videojuegos, en escuelas con recursos computacionales escasos, a través de actividades
extracurriculares, al mejorar significativamente su manejo y comprensión del Álgebra.
Lo cual requiere no dejar lagunas en el conocimiento de los estudiantes que afecten su rendimiento
en ciclos posteriores del aprendizaje matemático. Pues si, como afirman profesores de Álgebra de
Ciencias Básicas de la FI, se desea que los estudiantes manejen exponentes fraccionarios, primero
habría que lograr que sean hábiles con fracciones, algo que se esperaría hubieran visto desde la
primaria.
De forma parecida, pero a un nivel superior se esperaría que si entienden conceptos aritméticos,
pudieran abstraerlos y emplear conceptos algebraicos, en particular los relacionados con el concepto
de función. Sin embargo, abstraer operaciones aritméticas en operaciones algebraicas parece trivial,
pero no lo es.
Ya que pasar de la Aritmética al Álgebra requiere de un salto cualitativo poco evidente y muy
desatendido en las clases y recursos interactivos que buscan que los estudiantes transiten con éxito
de la Aritmética al Álgebra, ya que las peculiaridades de dicho tránsito no solo son fundamentales
desde el punto de vista de la didáctica de las matemáticas, sino en la programación.
Pues, de hecho es lo que permite operar definiciones de funciones o sea programas (en los lenguajes
funcionales). Tampoco que las mismas reglas de abstracción en el cómputo son las que permiten
generalizar la aritmética y operar aritméticas de cadenas, booleanos, e imágenes, entre otras
aritméticas; las que a su vez se pueden abstraer en álgebras de cadenas, booleanos, imágenes ... y
de funciones o programas.
De ahí, que cada vez se comprueba más que muchas veces el camino del aprendizaje de las
matemáticas se facilita significativamente mediante la programación en ambientes como los de
Bootstrap. De ahí la conveniencia de plantear el siguente proyecto.
Objetivo
3. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
Mejorar el aprendizaje del Álgebra, mediante el uso de recursos y aplicaciones web, como
WeScheme de Bootstrap, (Bootstrap, 2016).
Hipótesis
Emplear recursos en línea, WeScheme, permite aminorar deficiencias en el conocimiento de los
antecedentes mencionados; mediante identificar y evaluar esos recursos, organizarlos y (en su caso)
diseñarlos, principalmente, los relacionados con Álgebra.
En Aritmética, el objetivo principal es obtener un resultado empleando operaciones fundamentales
como la suma o la multiplicación. En comparación el Álgebra, el cálculo de una respuesta no es
suficiente, ya que ahora se trata de comprender conceptos básicos como el de función, con respecto
a la cual ahora se requiere desarrollar y manejar abstracciones que permitan, por ejemplo, conocer si
una función es lineal, sus raíces, sus máximos y mínimos, entre otros conceptos.
En este sentido, se requiere pensar de una manera más abstracta para entender cómo la situación de
un problema implica abstraer la relación entre variables, siendo esto un desafío para los estudiantes
porque no siempre se les enseña efectivamente, o simplemente los alumnos no logran desarrollar el
pensamiento abstracto ahora requerido.
Por esta razón, los estudiantes necesitan de herramientas que les ayuden no sólo a fomentar su
aprendizaje del Álgebra, sino que puedan dar el salto cualitativo requerido para pasar de un manejo
correcto de la Aritmética, a su generalización mediante Álgebra, propiciando a que sean capaces de
asimilar los conceptos básicos algebraicos y de esta forma resolver problemas de ésta área del
conocimiento.
Profesores y estudiantes de la FI, desde 1999, buscando opciones a lenguajes y ambientes
integrados de desarrollo convencionales (con base en Lisp, muy caros) en el campo de la Inteligencia
Artificial, encontraron en su variante PLT Scheme, un ambiente libre y gratuito para expresar algunas
de sus inquietudes.
Esta variante de Scheme producto de un grupo de hackers académicos en su búsqueda de integrar
investigación de frontera en el área de Lenguajes de Programación con la programación cotidiana,
después de muchos años ha venido a denominarse simplemente Racket o en su versión en la nube,
WeScheme, y ha sido empleado por Bootstrap, una comunidad estadounidense sumamente exitosa
de investigadores en Lenguajes de Programación, programadores, desarrolladores de planes de
estudio, cientos de profesores y miles de estudiantes de nivel medio y superior, a fin de que estos
últimos mejoren su desempeño en actividades específicas de aprendizaje del Álgebra, en la Tabla 1
se presentan algunos resultados. (Bootstrap, 2016)
Metodología
WeScheme es una herramienta IDE (Integrated Development Environment, ambiente de desarrollo
integrado) en la nube, desarrollado por Bootstrap, que no requiere bajarse de Internet ni instalarse,
sino solo una cuenta de correo en Gmail, permitiendo recuperar y almacenar archivos en la nube, y
editarlos desde un navegador, además de poder compartirlos mediante enviar una liga, o postearlos
en sitios como Facebook o Twitter.
4. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
O si se requiere efectuar todo localmente, Bootstrap se apoya en DrRacket, un ambiente gráfico
multiplataforma (que corre en Windows, OS X, Unix/Linux), de modo que los programas escritos en
una plataforma corren en otras, apoyando una variedad de escenarios de computación tanto
escolares como en el hogar. Además de enfatizar características amigables a novatos, como la de
apoyarse en el empleo de imágenes y videos. (Racket, 2016)
Tabla 1
Nivel de significación de mejora de los estudiantes
Si bien esas herramientas están inicialmente orientadas a estudiantes de secundaria y preparatoria
con limitaciones, empleando estrategias didácticas apoyadas fuertemente en imágenes y
animaciones, pueden escalarse a temas más avanzados de matemáticas y programación. No sólo
educativos de nivel medio superior y superior, sino de posgrado.
Por ejemplo, si incidir en algunas deficiencias de alumnos de primer ingreso en instituciones de
educación superior, requiere que con base en programas de computadora manejen expresiones
aritméticas simples, como piezas de código que pueden ser valores simples como son un número o
una figura como un círculo, combinándose en expresiones más complejas empleando funciones que,
por ejemplo, las sumen o resten, generando nuevos valores; o produzcan figuras geométricas a partir
de operadores y operandos igualmente simples. Y en caso de equivocaciones de programación los
mensajes de error ayuden fácilmente a corregirlos. Permitiendo también operar como herramientas
de exploración para conocer y emplear funciones predefenidas.
Que desde la aritmética y el álgebra se pueda comprender y transformar problemas verbales
referidos a situaciones relacionadas a planos coordenados, que implican manejo adecuado en el
orden de las operaciones y de variables en expresiones aritméticas, su abstracción en funciones, así
como tablas de relación entre entradas y salidas, relaciones entre dominios y rangos, composiciones
de funciones, desigualdades en el plano, Teorema de Pitágoras, y líneas numéricas. (Bootstrap,
2016)
Y que desde la programación puedan representarse mediante números, cadenas e imágenes;
definiciones de funciones, pruebas unitarias, lógica booleana, funciones multi-entrada, y funciones
con tipos mezclados.
5. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
Así como eventualmente expresar matemáticamente relaciones funcionales complejas, explorar
procesos aleatorios, así como trigonometría, programando con base en eventos, datos en
estructuras, diseño de programas completos, modelaje de datos, encapsulamiento, vinculando con
recursión, listas y algoritmos.
El eje de lo anterior es que si los estudiantes manejan y mejoran sus conceptos aritméticos pueden
abstraerlos y operar conceptos algebraicos, en particular los relacionados con el concepto de función.
Que si
1 + 1 = 2
1 + 2 = 3
...
1 + x = f (x)
siendo f la relación, la función que suma 1 a cualquier número
f(x) = x + 1
lo que en WeScheme o Racket se representa como
(define (f x)
(+ x 1))
Abstraer operaciones aritméticas en operaciones algebraicas parece trivial, pero no lo es. Sin
embargo, se puede aprender, sin demasiada dificultad, a manejar definiciones de funciones o sea
programas (en los lenguajes funcionales empleados en Bootstrap y DrRacket).
Las mismas reglas de abstracción permiten generalizar la aritmética y manejar aritméticas de
cadenas, booleanos, e imágenes, entre otras aritméticas; las que a su vez se pueden abstraer en
álgebras de cadenas, booleanos, imágenes ... e incluso de funciones. (Racket, 2016) Lo que permite
manejar teóricamente de forma eventual cualquier programa de computadora exclusivamente con
base en funciones matemáticas, (edX, 2015) entre otros aspectos.
Resultados
Con profesores y estudiantes del nivel de licenciatura y de bachillerato de la UNAM, además de
profesores y estudiantes de otras instituciones de educación superior y media nacionales, se han
organizado cursos a profesores, impartido conferencias, y realizado seminarios de investigación con
profesores, estudiantes de servicio social y tesistas.
En general, se ha obtenido más éxito con estudiantes y profesores fuera de la UNAM, que en la
propia UNAM. Más con estudiantes que con profesores. Más con profesores que no tienen que ver
nada con carreras como Ingeniería en Computación que con áreas afines a ésta.
En el caso de la Facultad de Ingeniería de la UNAM un obstáculo ha sido la idea en profesores de
matemáticas que la programación, más allá de ser una herramienta auxiliar útil, poco tiene que ver
con las matemáticas, en particular con la aritmética y el álgebra. Algo parecido sucede con los
6. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
profesores afines a la computación que consideran que las matemáticas son útiles para la
computación, pero que no existe una relación íntima entre ellas.
Sin embargo, a lo largo de los años los profesores de matemáticas han comenzado a intuir que de
alguna manera u otra requieren avanzar en su manejo de conocimientos y herramientas de cómputo
para ser más eficaces y eficientes.
Discusión de resultados
Se ha trabajado más de 16 años en la UNAM en la Facultad de Ingeniería y en la Facultad de
Ciencias (Facultad de Ciencias, UNAM, 2015) con las metodologías, software y materiales del
Programming Language Team, PLT, de forma más intermitente algo parecido ha sucedido con
académicos del ITESM; académicos de Canadá y países asiáticos, europeos, africanos, así como
latinoamericanos, Chile y Brasil, que también han participado en proyectos con el PLT.
La FI ha publicado la traducción de la primera edición de Cómo diseñar programas (Felleisen, Findler,
Flatt, & Krishnamurthi, HtDP, 2003), la obra principal del PLT, el que se ha conocido por profesores y
estudiantes mediante actividades principalmente extracurriculares; actualmente, con estudiantes de
servicio social y tesistas se explora la posibilidad de traducir el material de Bootstrap. (Rios Ortega,
2016)
Esta posibilidad de concretarse abrirá un vasto campo de acción del PLT con la comunidad hispana
estadounidense, repercutiendo en México y demás países de habla hispana.
Lo que ya puede ser más viable, gracias al surgimiento de MOOC como Introduction to Systematic
Program Design – Part 1 impartidos por Coursera a partir de septiembre de 2013, por George
Kiczales de la British Columbia University de Canáda. Que mejorados continuaron en los MOOC de
edX UBCx: SPD1xSystematic Program Design – Part 1, Part 2, y Part 3, y, continúan actualmente en
el curso, How to Code: Systematic Program Design – Part 1, Part 2, y Part 3. (edX, 2016)
Previamente conocer y manejar recursos del PLT parecía requerir asistir a alguno de los workshops
anuales organizados por sus miembros, ahora basta inscribirse a los últimos MOOC mencionados y
participar en ellos para conocer y emplear estos recursos, así como ver cómo son implementados por
académicos, profesionales y entusiastas de todo el mundo.
Si bien siempre se ha podido acceder al sitio web htdp.org y consultar gran parte de sus libros,
artículos software, y currículos; lo que muchas veces ha resultado difícil de comprender es la
vinculación y diferenciación entre la aritmética y el álgebra, los procesos de abstracción que ésta
implica, y que tan importante son para el aprendizaje de matemáticas, y el significado que tienen en la
programación.
Que si
1 + 1 = 2
1 + 2 = 3
…
1 + x = f(x) pasamos de la aritmética al álgebra
7. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
y
aritmética numérica
aritmética de cadenas
…
aritmética de tipo x = cómputo
y
aritmética de funciones
álgebra de funciones
…
diseño de funciones = programación
Mucho más importante es la forma que el PLT ha implementado lo que mencionan Harold Abelson y
Gerald Jay Sussman: "programs must be written for people to read, and only incidentally for machines
to execute", (The Linux Information Project, 2005), y Edsger W. Dijkstra, "We should reshape our field
of programming in such a way that the mathematician's methods become equally applicable". (Ruiz
Delgado, 2008)
Pues, el propósito de un programa es describir un proceso computacional que mediante información
produce información nueva. Figura 1. En esta perspectiva, un programa es semejante a las
instrucciones que un profesor de matemáticas da a estudiantes de primaria. Sin embargo, a diferencia
del estudiante, un programa opera no solo con números; ya que puede calcular información de
navegación, buscar una dirección de una persona, prender interruptores, o inspeccionar el estado de
un video juego. Proviniendo del mundo toda esta información, denominada dominio, a la que los
resultados de un programa agregan más información a este dominio. (Felleisen, Findler, Flatt, &
Krishnamurthi, How to Design Programs, 2015)
Figura 1: De la información a los datos, y viceversa
8. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
A fin de que un programa procese información, ésta debe referirse a una forma de datos en un
lenguaje de programación, el que procesa los datos, obteniéndose como resultado nuevos datos,
referidos a nueva información, que en el caso de programas “batch” resuelve el problema
representado por la información inicial. Y que en el caso de un programa interactivo combina los
pasos anteriores, de modo de adquirir más información del mundo conforme se requiere, generando
nueva información entre algunos pasos. (Felleisen, Findler, Flatt, & Krishnamurthi, How to Design
Programs, 2015)
Se parte de información acerca de un dominio, incompleta y vaga; a partir de la infraestructura
representada por el proceso de diseño, se completa y se afina, se vuelve redundante, verificable,
comprobable, ampliable y mejorable. Figura 2.
;; número -> número 1 firma
;; duplica el número 2 propósito
; (define (duplica n) 0) 3 borrador
(check-expect (duplica 0) 0) 4 pruebas
(check-expect (duplica 3) (* 2 3))
#; (define (f-n n) 5 formato
(…n))
(define (duplica n) 6 código
(* 2 n))
Figura 2: Pasos en el diseño de programas
Tomando un ejemplo sumamente sencillo que permita presentar de forma lo más clara posible los
pasos de diseño, su receta o infraestructura inicial, suponiéndose que se tiene el problema de
duplicar un número, problema que inicialmente en el paso 0 se ha comprendido suficientemente,
puede sucederle el paso 1 que es determinar la firma de la función o el programa que lo resuelva, el
cual establece el o los tipos de datos que recibirá, así como los que entrega.
El paso 2, el propósito, explica en lenguaje natural en menos de un renglón qué hace la función o el
programa; el paso 4, ejemplos transformados en pruebas automáticas aclara suficientes veces que
resultados se obtendrán aplicando el programa o función a una serie representativa de argumentos;
el paso 3, establece el nombre de la función, sus argumentos y el tipo de resultado que se espera, lo
cual permite correr pruebas lo más pronto posible y detectar inconsistencias.
El paso 5, el formato, establece la estructura general de todos los programas que tienen un
determinado tipo de datos, que en el ejemplo es la afirmación de que algo tendría que hacerse con el
número recibido. El paso 6, codificar con base en los pasos 0, 1, 2, 4 y 5. El paso 7, verificar
automáticamente que no existen errores de sintaxis; el paso 8, ejecutar las pruebas automáticas, si
se detectan errores validar pruebas, si las pruebas son válidas verificar código, corregir y otra vez
iniciar el paso 7.
9. 2º Encuentro universitario de mejores prácticas de uso de TIC en la educación
El proceso de diseño puede iniciar por los pasos 0, 1, 2, 3, 4 o 5, continuar por cualquiera de éstos,
hasta completarlos, solo hasta entonces pasar al 6, codificar; siguiendo ordenadamente los 7 y 8.
Pudiendo resultar del 8, una revisión y ajuste de cualquiera de los anteriores.
En el desarrollo del diseño pueden irse verificando consistencias entre los tipos de los argumentos y
lo que se afirma en el propósito y en el borrador, y éste en su consistencia con las pruebas. Así como
entre éstas y la codificación, entre otras verificaciones.
Aspectos como los mencionados a lo largo de dos décadas han hecho sumamente exitoso a este
proceso de diseño a nivel internacional en la investigación, la industria y la academia; en el mundo
hispanoamericano y, en particular en México, se conoce poco, aunque podría esperarse que en el
mediano plazo se modifique esta situación. Y que se puede mejorar, mediante el uso de recursos y
aplicaciones web, el aprendizaje del Álgebra y la Trigonometría.
Conclusiones
En este trabajo se han analizado y evaluado recursos de programación como ayudas al aprendizaje
de asignaturas de Matemáticas del primer semestre y de sus antecedentes de las carreras impartidas
en la FI; principalmente los que pueden emplearse para pasar mediante abstracción de los conceptos
aritméticos a los algebraicos, en particular los relacionados con el concepto de función; lo cual es
importante para quienes se preocupan y ocupan de educar a niños y jóvenes en una perspectiva
amplia que incluya aspectos esenciales científicos y tecnológicos que eventualmente les permitan
desenvolverse con soltura en alguna carrera universitaria, incluyendo las de ingeniería. Para esos
estudiantes que conocer álgebra y programar bien es más que una habilidad vocacional, pueden ser
útiles recursos de diseño de programas como los mencionados.
Bibliografía
Bootstrap. (2016). computing creatively + thriving mathematically. Sitio web.
edX. (2016). How to Code: Systematic Program Design. University of British Columbia, UBCx - SPD3x.
edX. (2015). UBCx: SPD1x Systematic Program Design - Part 1. (edX, Ed.)
Flatt, M. (2015). Programming Languages. Sitio web, Utah University.
Facultad de Ciencias, UNAM. (2015). Lenguajes de programación. página de asignatura, Licenciatura en
Ciencias de la Computación.
Felleisen, M., Findler, R. B., Flatt, M., & Krishnamurthi, S. (2003). How to design programs (1st ed.). (J. J.
Carreón Granados, Trans.) Cambridge, Massachusetts, USA: MIT Press.
Felleisen, M., Findler, R. B., Flatt, M., & Krishnamurthi, S. (2015). How to Design Programs. The MIT Press.
Krishnamurthi, S. (2012, september 5). Introduction to Programming Languages. Brown University, Providence,
Rhode Island, USA.
Krishnamurthi, S. (2016). Programming Languages Aplication and Interpretation Second Edition. Providence:
Brown University.
Racket. (2016). A programmable programming language. Sitio web.
Rios Ortega, G. (2016). De la Aritmética al Álgebra: funciones. Tesis de licenciatura Ingeniería en Computación,
Universidad Nacional Autónoma de México, Departamento de Ingeniería en Computación, División de
Ingeniería Eléctrica.
Rodríguez Rodríguez, M. A. (2016). Diseño de recursos web para el apoyo docente en la FI, UNAM. Tesis,
Facultad de Ingeniería, Universidad Nacional Autónoma de México, Departamento de Ingeniería en
Computación, División de Ingeniería Eléctrica, CDMX.
Ruiz Delgado, J. A. (2008). On a methodology of design.
The Linux Information Project. (2005). Best Programming Quotations.