Fundamentos de la inclusión de la programación como contenido educativo

Sabemos que en los últimos tiempos se han planteado con renovado entusiasmo las bondades de enseñar programación a nuestros alumnos, digamos la verdad: está de moda.

 A nuestro entender, sin embargo, el valor pedagógico de incluir en las prácticas de enseñanza las bases de la programación, lejos de ser una moda tiene un sentido valioso desde el punto de vista de la formación de los alumnos fundamentalmente por las herramientas cognitivas y meta cognitivas que el alumno adquiere cuando aprende a programar.


Vamos a comenzar pensando en términos de resolución de problemas ya que, es bien sabido que, como metodología de enseñanza, garantiza de alguna manera cierto compromiso intelectual del alumno, ya que, aunque tan solo logre ver que existe un problema que requiere la elaboración de una solución, aunque tan solo logre identificar las variables involucradas, ya es un paso importante. Poder analizar el problema es parte de la solución, o por lo menos es el primer paso y, como habilidad cognitiva, es fundamental.

Hablando de resolución de problemas con computadoras, podemos distinguir dos tipos de situaciones problemáticas cuya solución se puede obtener utilizándola:
  • Resolución de problemas con herramientas informáticas
  • Resolución de problemas con lenguajes de programación 

 En ambos casos deberíamos motorizar en el alumno el pensamiento algorítmico y llevarlo a plantearse tres preguntas básicas: ¿Datos de entrada? ¿Proceso? ¿Datos de salida?

Por ejemplo, pensemos en una hoja de cálculo, consideremos a las celdas como espacios de memoria que según el caso serán variables de entrada o variables de salida (resultados obtenidos) y las fórmulas serán las instrucciones para saber cómo llegar a los datos de salida. Incluso trabajando con un procesador de textos, resulta útil este análisis: la hoja electrónica recibe los datos de entrada, el proceso sería el formato y el diseño que le aplicamos al texto plano, y la salida sería el texto con formato en pantalla o en la hoja impresa.

 Es claro que resulta más evidente pensar en resolución de problemas cuando apelamos al pensamiento formal, abstracto, pero aún las tareas habituales que llevamos a cabo con cualquier aplicación responden a este esquema básico del sistema (E-P-S).

 Ahora bien, cuando planteamos a los alumnos un problema a resolver que requiera la búsqueda de la automatización de la solución revelamos la necesidad de realizar un programa. Es muy valioso en la formación integral del alumno, ya que los lleva a desarrollar estrategias y poner en práctica habilidades de pensamiento superior y también a desarrollar la creatividad en tareas de diseño. Por ejemplo, el diseño de interfaces de usuario obliga a salir de la propia perspectiva para pensar en la perspectiva del otro (el usuario) lo cual implica una reflexión que plantea un juego dialéctico que, a nuestro entender, enriquece la experiencia meta cognitiva.  Es importante aclarar que es el espacio curricular propio del área de informática el lugar indicado para enseñar a los alumnos a programar. Luego el alumno podrá resolver problemas en otras áreas poniendo en juego las herramientas cognitivas de la programación para hallar soluciones informáticas o no, a diversos problemas provenientes de campos de conocimiento diversos.

 Es, en tal contexto, que a mi entender, aparece la necesidad de que los docentes en general cuenten con los conocimientos relacionados con los principios de la programación, puntualmente, para no profundizar la brecha cognitiva entre los que cuentan con herramientas conceptuales propias del pensamiento computacional al servicio de la resolución de problemas y aquellos que se limitan a "miran desde afuera" porque, declaran: "yo de eso no entiendo nada".

Mitchel Resnick creador del lenguaje Scratch nos dice a la hora de fundamentar el papel de la programación en la educación: "No están simplemente aprendiendo a programar, están programando para aprender; pues además, de comprender ideas matemáticas y computacionales, tales como variables y condicionales, simultáneamente están aprendiendo estrategias para solucionar problemas, diseñar proyectos y comunicar ideas. Esas habilidades son útiles no solo para los científicos de la computación sino para todas las personas".

 Está más que claro que nadie en su sano juicio diría que los conocimientos que se enseñan en el área de matemática son transversales, todos coincidimos en que es fundamental que exista una materia en donde se enseña intencional y metódicamente los conceptos, procedimientos y habilidades de pensamiento propios de la matemática. Lo mismo pasa con el saber informático por más que algunos insistan en encasillarlo en la categoría de transversal, la realidad es que se trata de una disciplina con un campo de conocimiento propio.

Actualmente contamos con un espacio curricular en la Nueva Escuela Secundaria de CABA, denominado "Tecnologías de la Información" en 3ero, 4to y, a partir del 2019, en 5to año de la escuela media. Sin dudas es el espacio indicado para desarrollar acciones formativas en este sentido, ya que los profesores de informática son los docentes idóneos para impartir la enseñanza formal de la programación, que es solamente uno de los ejes que integra el campo de conocimiento de la Informática. No obstante, estamos convencidos de que también es importante que los docentes de otras áreas reciban capacitación en el tema para poder formar parte activa de proyectos creativos en los que la programación y el pensamiento computacional "digan presente", pero sin la responsabilidad pedagógica de enseñar a programar a los alumnos, de la misma manera que los docentes en general,  "descansamos" en la tarea pedagógica del docente de lengua en lo respecta a contenidos curriculares propios de la lengua.