Gobstones

Bienvenido a Gobstones


Gobstones es un lenguaje que expresa de manera óptima una secuencia didáctica específica para enseñar a programar a personas que no tienen experiencia previa en esta actividad. Este lenguaje propone el desarrollo de un adecuado manejo abstracto y simbólico de las ideas asociadas con la programación a través de una selección cuidadosa de un conjunto relativamente pequeño de conceptos que estimamos fundamentales para conseguir este tipo de pensamiento, para luego incluir los conceptos de estructuras de datos elementales, pasaje de parámetros por referencia y algunas otras nociones complejas (capturado en XGobstones).


Introducción

Inicialmente usamos “Gobstones” como el nombre de un lenguaje que expresa de manera óptima una secuencia didáctica específica para enseñar a programar a personas que no tienen experiencia previa en esta actividad. Actualmente lo utilizamos también para denominar a dicha secuencia didáctica.

Secuencia didáctica

Gobstones propone el desarrollo de un adecuado manejo abstracto y simbólico de las ideas asociadas con la programación a través de una selección cuidadosa de un conjunto relativamente pequeño de conceptos que estimamos fundamentales para conseguir este tipo de pensamiento, para luego incluir los conceptos de estructuras de datos elementales, pasaje de parámetros por referencia y algunas otras nociones complejas (capturado en XGobstones).

El foco de Gobstones se encuentra en poner en valor en todo momento la concepción de un programa como una descripción en texto de un conjunto de ideas que además puede ser ejecutable. De esta manera se hace hincapié en las características denotacionales de esta descripción y la escritura de soluciones de software pensando, en primer lugar, en el propósito del mismo y, en segundo lugar, en la implementación.

Una de las características más destacadas de esta secuencia didáctica es la presentación de procedimientos y parametrización como primeros elementos didácticos antes que otros elementos clásicos como estructuras de control y variables, de manera tal que desde el primer encuentro con el lenguaje los alumnos ejerciten la capacidad de dividir tareas y modularizar soluciones generando abstracciones reutilizables.

La secuencia didáctica gobstones distingue tres grupos de conceptos que usualmente no son tenidos en cuenta por los enfoques tradicionales:

  1. Elementos del lenguaje
    1. Categoría de elementos
      • Acciones, comandos, procedimientos
      • Valores, expresiones, funciones
    2. Formas de combinación de elementos
      • Secuencia (agregación)
      • Alternativa
      • Repetición
    3. Herramientas para expresar abstracción
      • Parametrización
  2. Manejo del lenguaje
    1. Manejo de sintaxis dura
    2. Buenas prácticas (cuestiones de estilo)
  3. Herramientas de abstracción
    1. División en subproblemas
    2. Parametrización
    3. Parcialidad y precondiciones
    4. Esquemas de programas sencillos

Gobstones excluye conceptos que consideramos superfluos para una primera aproximación a la programación, entre estos: estructuras de datos complejas, parámetros in/out, punteros.

En la sección Bibliografía se encuentra disponible material bibliográfico sobre Gobstones.

Lenguajes de programación

Gobstones es un lenguaje de programación ideado por Pablo E. Martínez López y Eduardo A. Bonelli en el año 2008 pensando para satisfacer las necesidades de los alumnos de la reciente carrera Tecnicatura Universitaria en Programación Informática que se dicta en la Universidad Nacional de Quilmes. Este lenguaje de programación fue pensado en el marco de un primer año de una carrera informática para aquellas personas que no tienen conocimientos previos de programación, basándose en tres elementos fundamentales que forman parte de la filosofía de Gobstones: el desarrollo de la abstracción, el aprendizaje de la división de tareas y la obtención de pautas de estilo que favorezcan la posterior interpretación de los programas generados, todo manteniendo un alto grado de simplicidad conceptual y eliminando elementos superfluos que claramente complican el aprendizaje inicial. En 2013 se gesta la idea de XGobstones, un lenguaje basado en el original gobstones, que incorpora estructuras de datos básicas y otros elementos avanzados (como manejo de referencias).

En la sección Bibliografía se encuentra disponible la sintáxis de Gobstones y XGobstones.

Herramientas de software

Gobstones fue implementado por varias herramientas. Actualmente mantenemos y favorecemos el uso de una de esas herramientas denominada PyGobstones versión 1.0 que puede obtenerse en la sección de Descargas de este mismo sitio.