domingo, 1 de noviembre de 2015

4. ¿Qué me importan las bolitas?

El universo de discurso de Gobstones.

 

  Una de las características distintivas del lenguaje Gobstones es su universo de discurso: el tablero, las bolitas y el cabezal. En este post discutiremos el por qué de la elección de este universo, así como las desventajas de otros universos, tanto específicos (como puede ser el de Logo) como generales (como es el de los lenguajes de programación generales como Python, Java, etc.).

  Comencemos con una afirmación básica: para programar se necesita un autómata capaz de expresar soluciones a problemas de manera mecánica, y que este autómata sea reconfigurable a través de diferentes descripciones ejecutables (programas).

  En el caso de los lenguajes de propósitos generales tradicionales, el autómata es una computadora de arquitectura von Neumann (memoria y procesador), y las soluciones se expresan en términos de modificaciones a la memoria, que es donde los datos se expresan mediante representaciones abstractas.
  Este modelo, si bien poderoso, es demasiado abstracto para comenzar a aprender a programar (con consecuencias indeseables en la forma en que los estudiantes perciben la disciplina). Y puesto que el objetivo de la secuencia Gobstones es formar la capacidad de expresar abstracciones, comenzar con un modelo demasiado abstracto pone una barrera inicial muy alta, lo cual provoca frustración en los estudiantes. Es, entonces, casi una decisión obvia que se hace necesario un tipo de autómata más simple, con un universo de discurso más concreto.

  Ahora bien: ¿qué autómata y qué universo? Esta pregunta ha sido formulada muchas veces antes, y respondida de diversas maneras.

  Por ejemplo, en el caso del lenguaje Logo se decidió que el autómata fuese una "tortuga" que se podía desplazar tanto dejando una línea a su paso, como sin dejarla. De esta manera, las tareas a resolver son la realización de dibujos diversos. Este modelo es bien concreto, pero su problema fundamental es que es *demasiado* concreto: es complejo migrar de estos dibujos a representaciones más abstractas, además de que no hay una correspondencia clara con modelos más abstractos. Por otra parte, para la realización de dibujos de cierta complejidad hacen falta conocimientos básicos de geometría y no poca manipulación numérica.
  Es por ello que el modelo provisto por Logo también resulta inadecuado para comenzar a aprender a programar más allá de los rudimentos más básicos.

  También podemos considerar herramientas/lenguajes como Scratch o Alice, donde el universo de discurso viene dado por un "lienzo" (en 2 o 3 dimensiones, según la herramienta) donde se pueden combinar diversos "actores" (elegidos de una biblioteca predefinida). Las tareas ahora resultan más ricas, puesto que se pueden expresar dominios diversos en términos de los actores, y no dependen prácticamente de conocimientos previos de geometría o matemáticas (aunque ciertas tareas lo requieran, las mismas usualmente se pueden evitar al comienzo).
  Sin embargo, estos modelos también resultan demasiado concretos, pues las abstracciones ya vienen provistas, y el estudiante solo las manipula. Por otra parte, están pensados, en general, para guiar a los estudiantes a aprender el paradigma de orientación a objetos, lo cual, como establecí en posts anteriores (Por qué Gobstones es importante), no es lo suficientemente general (ya que otras formas poderosas de programación, como la Programación Funcional, no son fácilmente expresables en términos de objetos). Es por ello que también estos modelos resultan inadecuados.

  En Gobstones elegimos que el universo de discurso sea un tablero y bolitas, junto a una máquina, denominada "cabezal", que puede realizar modificaciones al tablero. De esta forma, las tareas se expresan en términos de bolitas sobre el tablero.

  ¿Qué ventajas proveen un tablero y bolitas? Decidimos usar este universo de discurso por varias razones:
  1. es lo suficientemente concreto para que los estudiantes se lo puedan imaginar con sencillez, aún sin tener desarrolladas formas avanzadas de pensamiento abstracto.
  2. es lo suficientemente abstracto para permitir su utilización en la representación de numerosos problemas de diversa índole.
  3. permite una transición gradual de formas e ideas concretas a formas e ideas abstractas.
  En su forma más concreta se lo puede entender de manera similar al lienzo de Logo, pero con la gran diferencia de que no se limita a eso y puede vérselo de otras maneras (además de que un tablero es mucho más "discreto" que un lienzo, que podría entenderse como más "analógico"). De hecho, dado un tablero suficientemente grande, Logo podría ser expresado en términos de Gobstones, pero con un tablero de Gobstones podemos expresar muchas otras cosas que no serían fáciles de expresar con un lienzo de Logo.
  En su forma más abstracta, el tablero puede entenderse como una memoria de computadora von Neumann, donde las bolitas codifican elementos abstractos.
  Sin embargo, la decisión de si se lo verá de manera concreta o abstracta no está prefijada, y es el docente el que elije en cada momento desde qué "distancia" (conceptual) se "mirará" el tablero. Además, es posible diseñar herramientas que ayuden en la adecuada manera de "mirar" y favorezcan la explicitación del uso de la abstracción (lo cual será tema de posts futuros).

  El último elemento del universo de discurso de Gobstones es el cabezal. Es el autómata que realiza las tareas. Sin embargo, esta máquina no se visualiza en ningún momento, favoreciendo el hecho de que la ejecución es un proceso abstracto y rara veces observable. Los programas deben razonarse por las transformaciones que producen sobre los elementos del universo de discurso (ya sean, o bien efectos sobre un estado, o bien transformaciones de información). La naturaleza del cabezal favorece este tipo de razonamiento (volveremos sobre este punto en futuros posts).

  Podrían proponerse quizás otros universos de discurso que sirviesen a los mismos objetivos. El enfoque didáctico de Gobstones no precisa de las bolitas de manera imprescindible. Sin embargo, sí es necesario un universo de discurso que posea las características enunciadas (suficientemente concreto, pero a la vez suficientemente abstracto) para que el enfoque didáctico Gobstones se manifieste en su máximo potencial. Nuestra decisión fue por la de un tablero y bolitas, y demostró ser extremadamente adecuada.

  En futuros posts continuaremos analizando las características que hacen que Gobstones importe.

No hay comentarios:

Publicar un comentario