Construir un programa que funcioneAprender al menos un lenguaje de programación, durante la enseñanza obligatoria, me parece muy interesante. Los alumnos de mis clases de Tecnología siempre han respondido con entusiasmo a los ejercicios de programación.

No creo que sea una buena idea incluir una lista de contenidos obligatorios en los currículos de la enseñanza obligatoria. Pero, si las administraciones educativas deciden fijar de forma normativa los contenidos de cada etapa y curso, deberían considerar la utilidad de aprender un lenguaje de programación en el currículo de la enseñanza tecnológica.

¿Por qué aprender a programar?

La programación es una vía poderosísima para elaborar los procesos del pensamiento y desarrollar capacidades generales como, por ejemplo, la abstracción, la planificación de procesos, la síntesis, la descomposición o fragmentación, el análisis de alternativas, etc.

El objetivo principal de la educación tecnológica, y el que figura en el primer lugar en el currículo, es lograr que todos los alumnos sean capaces de abordar de manera sistemática un problema, diseñando, construyendo y poniendo en uso un producto o solución. El aprendizaje de un lenguaje de programación contribuye en gran medida al logro de ese objetivo principal.

Aunque el enfoque metódico predominante en las enseñanzas tecnológicas sea el método de proyectos, mediante el que se enseña a resolver un problema diseñando y construyendo un objeto, circuito o artefacto, podrían alcanzarse los mismos objetivos mediante la programación: dado un problema o propuesta de diseño, los alumnos deben diseñar, construir y evaluar un programa informático apropiado. Las semejanzas entre el diseño y construcción de productos en el taller son muchas:

  • En ambos casos, una estrategia adecuada consiste en dividir el problema en aspectos parciales o subproblemas, más limitados y fáciles de abordar.
  • Al diseñar un objeto, esperamos que el alumno sea capaz de concebir varias soluciones alternativas para cada uno de los problemas parciales identificados. También al crear un programa informático, el alumno debe elaborar algoritmos, más o menos ingeniosos, para implementar cada aspecto de la solución que busca. En ambos casos, desarrollamos el pensamiento divergente para concebir soluciones propias y originales.
  • En el diseño de objetos, enseñamos a aplicar criterios de economía (en el uso de materiales y de energía) y de eficiencia en el desempeño de la función del producto. También, al diseñar un programa informático, la necesidad de reducir la cantidad de código y evitar las redundancias, impone requisitos de economía (de tiempo, de memoria y de recursos de proceso), sin sacrificar la eficiencia en el logro de los objetivos del programa.
  • La construcción del objeto diseñado exige una planificación previa de los recursos necesarios y del orden en que se practicarán las operaciones técnicas para alcanzar el resultado esperado. Cuando se construye un programa, también hay que anticipar imaginariamente el proceso y predecir el rumbo de los acontecimientos al ejecutarse las instrucciones. Cuando programamos, necesitamos pensar en todos los posibles rumbos del proceso, en función de variables imprevistas o sucesos potenciales. La ventaja de la programación es que se pueden concebir y ejecutar las acciones del programa, ver el resultado y corregir, si fuese necesario, el código que hemos ideado. En el taller, si fracasa la construcción de una pieza por imprevisión o por mala concepción, hay que empezar de nuevo. La programación es más amable con las equivocaciones.

¿Qué lenguaje enseñar?

La programación de robots, tarjetas controladoras y micro controladores también requiere el uso de un lenguaje de programación aunque, en algunos casos, la dificultad del aprendizaje de un lenguaje se puede obviar mediante el empleo de entornos de desarrollo gráfico. Ahora estamos hablando de la creación de programas para un ordenador personal.

La inmensa mayoría de los lenguajes de programación no están concebidos para la enseñanza. El viejo Basic, que fue concebido para principiantes (Begginers’ All-purpose Symbolic Instructive Code) y con el que muchos empezamos a disfrutar de la programación en nuestros Spectrum y Commodore, no se adapta a las máquinas actuales. Los lenguajes más extendidos hoy, me refiero a C++, Java y Vbasic.Net) son muy profesionales y exigen un esfuerzo de aprendizaje muy elevado, que desanima a muchos estudiantes. Afortunadamente hay algunos lenguajes, aunque pocos, que son opciones interesantes para el profesor de Secundaria.

No consideramos que sea programar, aunque a veces se denomina erróneamente “programación web”, la escritura de código html, css o javascript por ejemplo. Estos códigos son sistemas de marcado de documentos, para que un cliente web presente en pantalla los contenidos del documento del modo que se especifica en las marcas y no son, propiamente hablando, lenguajes de programación de ordenadores.

Lenguajes compilados e interpretados

La primera decisión es, en el fondo, un dilema leve. Consiste en considerar si es mejor utilizar un lenguaje compilado o un lenguaje interpretado. Un lenguaje compilado produce archivos ejecutables que pueden abrirse en cualquier ordenador personal. Eso es una ventaja, porque el programa puede ser portado a cualquier máquina. Pero, a cambio, el programa debe ser compilado para ser probado. Las ayudas que nos proporciona un entorno de desarrollo, antes de compilar, suelen consistir tan sólo en identificar los errores de sintaxis o la inconsistencia en la declaración de entidades, tales como variables, cadenas y matrices.

Un lenguaje interpretado produce archivos que deben ser traducidos por otro programa intérprete o máquina virtual, que debe estar ejecutándose en el mismo ordenador. Esto es una limitación en cuanto a la portabilidad del fichero (aunque una limitación menor si utilizamos intérpretes y lenguajes de dominio público y no privativos). A cambio, la escritura de programas en lenguaje interpretado nos permite probar cada instrucción o grupo de instrucciones para comprobar si produce los resultados imaginados. Esta segunda opción, que permite escribir una instrucción o un procedimiento y probarlos, parece más adecuada para el tipo de alumnos de Secundaria.

Entorno visual o editor de texto

Los entornos de programación utilizan siempre texto plano. Si habéis empezado a trastear con la programación de máquinas o robots, utilizando alguna tarjeta controladora como las que suministran Enconor, Robolab o Fischer, por ejemplo, habréis conocido los entornos gráficos para el desarrollo de programas mediante la conexión de iconos o símbolos gráficos.

Pero los entornos gráficos tienen muchas limitaciones para desarrollar programas en los que haya, por ejemplo, variables que cambian de valor, contadores para detener un bucle, cadenas de entidades que van cambiando de valor a lo largo del programa, etcétera. Hablando en plata, un entorno visual sólo sirve para introducir a los alumnos en el mundillo de la programación. Pero, tarde o temprano, hay que entrar en modo texto.

Algunas opciones interesantes

Logo: Logo es un lenguaje, creado en 1968 por Seymour Pappert, que resulta fantástico como herramienta de aprendizaje. En sus primeras versiones el lenguaje estaba dirigido a un entorno gráfico en el que una tortuga se movía por la pantalla siguiendo las instrucciones de un programa escrito por un alumno. Hay varios intérpretes disponibles para Logo, de los que Xlogo, MSWLogo y LogoES son programas de uso libre. El observatorio tecnológico del CNICE (Centro Nacional de Información y Comunicación Educativa) ofrece para su descarga MSWLogo 6.5a en castellano, en este enlace.

KPL: KPL (Kid’s Programming Language) es un lenguaje de programación, desarrollado por la consultora Morrison Schwartz, con la finalidad específica de ser muy accesible y fácil de aprender para utilizarlo en la enseñanza de la programación en las escuelas. Partiendo de la idea de que la creación de juegos o videojuegos constituye una excelente motivación para el aprendizaje de la programación, se ha dotado a KPL de un conjunto de instrucciones que permiten manejar con gran potencia gráficos y sonidos. Está disponible para su descarga en este enlace.

Aunque se distribuye una versión gratuita de KPL 1.1 no es software libre y sólo corre en entornos Windows. La siguiente versión de este programa ha cambiado de nombre (ahora se llama Phrogram) y se distribuye como software privativo y de pago.

About these ads