jueves, 7 de febrero de 2013

Pensando en el Pensamiento Computacional

¿Recuerdan el video anterior, que hablaba del pensamiento computacional? Pueden volver a mirarlo y refrescar la memoria.. porque aquí hablaremos de ello y veremos algunas estrategias para fomentarlo en el aula.

El pensamiento computacional, como dijimos, es más que una competencia que debemos promover en los niños; el pensamiento computacional (desde ahora PC) es una suma de competencias, de habilidades, destrezas, procedimientos: es un comportamiento, es la manera de abordar las problemáticas del S XXI. Como ya dijimos, se trata no sólo de una habilidad tecnológica, sino también de la resolución de problemas por medio de ella.

El PC surje a partir del trabajo de Papert , un genio informático y educador que tuvo una gran visión: desarrollar un lenguaje de programación que los niños puedan entender fácilmente, con el cual puedan resolver problemas diseñando estrategias, por medio de algoritmos y utilizando tecnología. Lo llamó LOGO, y dijo de ello:


"Concibo el Logo como un medio que puede, en principio, ser utilizado por educadores para apoyar el desarrollo de nuevas maneras de pensar y aprender […]. Durante la década de 1970, habíamos demostrado que niños de casi cualquier edad podían aprender a programar en Logo bajo buenas condiciones con suficiente tiempo y computadoras investigativas poderosas […]. He observado a centenares de niños de primaria aprender muy fácilmente a programar, y se está acumulando evidencia que indica que niños mucho menores podrían hacerlo también."  (pp. xiv, xvi, 13) - Fragmento extraído de http://ecrp.uiuc.edu/v6n1/gillespie-sp.html el 7/02/13.


Con este fundamento, el PC pretende ser desarrollado a través de actividades que desarrollen en los alumnos:
- Pensamiento analítico y matemático: para resolver problemas.
- Pensamiento ingenieril: para diseñar y evaluar estrategias.
- Pensamiento científico: para analizar  y abstraer conceptos, detección de errores y re -formular los diseños si es necesario. 

La clave está en la enseñanza y el aprendizaje de la programación. Dirán que es muy ambicioso, y el debate se encuentra abierto sobre si es conveniente o no que se enseñe a programar en las instituciones escolares, o sólo dejar relegada esta tarea a las escuelas de enseñanza técnica. 

La buena noticia es que hoy en día hay muchas aplicaciones y herramientas fáciles de usar y, sobre todo, interesantes y didácticas para que los alumnos, ya sea niños pequeños o adolescentes de escuelas secundarias, puedan desarrollar su PC al máximo aprendiendo a programar juegos y miniclips ellos mismos.  
Sí... es necesario, primero que nada, la capacitación docente. Tanto en cómo motivar a los alumnos en el desarrollo de su PC, y luego lo referido a lo tecnológico: competencias en programación y uso de software. 
Sí... también es necesaria una re-estructuración de las currículas escolares, dando espacio a un aula taller que le de la posibilidad a todos los alumnos de que, al menos con frecuencia de un módulo semanal, puedan desarrollar este tipo de actividades.
Y si... es cierto que también se necesita pensar en los recursos tecnológicos: el hardware y el software disponible... los laboratorios de informática.
Creo que lleva tiempo. Pero no es imposible... Y soy una de las que apuesta a la enseñanza de programación en todos los niveles educativos; desde ya, atendiendo a las necesidades de cada alumno, adecuando la complejidad y las actividades previo diagnóstico del grupo.

Es más.. intentaré hacerlo este año como proyecto-taller en un grupo de 4to. año de secundaria. Así que les iré contando que tal va.

MaNoS a La ObRa!!!

Quiero dejarles, antes de empezar con la presentación de las herramientas, un extracto de un artículo que escribí para una cátedra (2012), a partir del estudio de casos presentados por otros autores. Si bien, en ese artículo me refería la enseñanza de programación en el nivel secundario, creo que puede ser adaptable a todos los niveles educativos. Para comenzar, algunas estrategias para la enseñanza de programación:





Estrategias propuestas para la enseñanza de programación. 



La enseñanza de la programación debe promover en el alumno el desarrollo de distintas competencias no sólo la de crear programas en un determinado lenguaje sino - y más importante aún- las relacionadas con la resolución de problemas, la creatividad e innovación, y la adquisición del pensamiento algorítmico y computacional. Es así que la enseñanza de la programación se perfila como una tarea compleja y el hecho de que los alumnos aprendan reside, en gran parte, en las estrategias con las que el docente cuente al llevar la programación al aula. 


Algunos autores han escrito y propuesto diferentes estrategias y, a continuación, se listan: 

- Énfasis en el diseño previo, uso de un editor interactivo de algoritmos, plantillas (templates) para las distintas estructuras de control, datos de entrada, datos de salida, comprobación de tipos de datos, etc.*

- Utilizar los algoritmos como recursos esquemáticos para plasmar el modelo de la resolución de un problema (Etapa previa) *

- Corrector sintáctico y semántico que asegura la escritura correcta *

- Programación de videojuegos y animaciones, favoreciendo el desarrollo de competencias, en un mundo con el que los alumnos están muy familiarizados, favorece el trabajo por competencias, y enlaza el entorno exterior con el contexto del aula. Por otro lado, la programación se vuelve más amena, ya que por lo general los algoritmos para que resuelvan los alumnos que se proponen en las clases de programación están relacionados a los cálculos y resoluciones matemáticas. **

- Enseñanza multiparadigma. “Un paradigma de programación provee (y determina) la visión y métodos que un programador utiliza en la construcción de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes formas de pensar la solución de los problemas.” “...preparar a los futuros profesionales para identificar la naturaleza del problema que busca solucionarse y elegir conscientemente las mejores herramientas y técnicas”. ***

- No “encasillar” a los alumnos en el aprendizaje de un lenguaje de programación específico, sino aprender competencias de resolución de problemas y toma de decisiones. 
Cada uno de los autores expone su propia estrategia, lo que no indica que sea la mejor estrategia, ni la recomendada. Cada alumno aprende de forma diferente****, por tanto la mejor estrategia será la que respete los tiempos y el proceso de aprendizaje de cada alumno.


“Entre los factores que pueden influir en el éxito de los novatos en programación están: experiencia previa en computación, comodidad mientras se trabaja, sensación de estar jugando, autoeficacia, conocimientos previos en matemáticas y ciencias, estilo de aprendizaje, y el modelo mental que el estudiante tiene de la programación” *****

*Moroni, N., Señas, P., (2005). Estrategias para la enseñanza de la programación. http://cs.uns.edu.ar/jeitics2005/Trabajos/pdf/52.pdf

**Nieves Carralero Colmenar, (2012). Programación en Bachillerato. Crear video-juegos como recurso para comprender bucles y condicionales. 

***Pérez, Y. P. , López, L. M., (2007), MULTIPARADIGMA EN LA ENSEÑANZA DE LA PROGRAMACION, http://www.ing.unp.edu.ar/wicc2007/trabajos/TIAE/153.pdf

****Capítulo 1 del libro “How People Learn: Brain, Mind, Experience, and School. Expanded Edition (2000)” Cómo Aprende la Gente: Cerebro, Mente, Experiencia, y Escuela. Edición Expandida. Publicado por la Editorial de la Academia nacional de Ciencias de Estados Unidos. http://www.nap.edu/books/0309070368/html/. Traducción del Inglés por Tito Nelson Oviedo A.
Fecha de publicación en EDUTEKA: Septiembre 7 de 2002. Recuperado el 28 de junio de 2012 en http://www.eduteka.org/pdfdir/ComoAprendeLaGente.php

*****Reguera, Hernández Rivas, Farran Leiva, (2010). Una plataforma de evaluación automática con una metodología efectiva para la enseñanza/aprendizaje en programación de computadores. Ingeniare. Revista chilena de ingeniería, vol. 19 Nº 2, 2011, pp. 265-277
Recuperado el 28 de junio de 2012 


Dificultades en el aprendizaje de la programación

Los mismos autores que proponen estrategias diferentes para la enseñanza de la programación, han detectado en los alumnos ciertas dificultades en el aprendizaje originadas tanto por falta de competencias en el alumnado como por falta de estrategias por parte del docente:

- Los estudiantes que se inician en la programación no poseen los modelos mentales fundamentales que requiere el aprendizaje de programación.

- Ansiedad de los alumnos en la ‘etapa previa’ (querer usar el ordenador antes de adquirir buenas prácticas de resolución de algoritmos). 

- Falta de estrategias de enseñanza (estrategia patrón- técnica, aprendizaje por imitación).

- “Sensación de que el “cómo hacer las cosas” no es enseñable, y que es algo que depende de la inspiración y del ingenio del programador.”

- Linealidad ascendente de presentación de contenidos. (Presentación de estructuras, falta de un contexto, “los alumnos no ven una necesidad real de lo aprendido”).

- Actividades propuestas sin un objetivo o contexto específico. Necesidad de aprender un amplio abanico de estructuras y técnicas antes de construir un programa completo. 

- “. El estudiante le da mucha más importancia a los elementos del lenguaje de programación que al proceso de construir un programa” (encasillar al alumno a un lenguaje específico y no a competencias).

Ahora sí... 

Quiero presentarles algunas herramientas y documentos de sumo interés para ir investigando y planificando cómo poner en práctica actividades que fomenten el PC en nuestros alumnos:







EXPERIENCIAS CON SCRATCH Visiten todo el blog.. es muy interesante!



PROYECTO DALE ACEPTAR Muy interesante!










Más información:


PENSAMIENTO COMPUTACIONAL en http://www.eduteka.org/pdfdir/PensamientoComputacional_Definicion.pdfPublicación de este documento en EDUTEKA: Abril 01 de 2012.





Si algún link no se encuentra disponible, avisar, así lo reparo (o envío el material por mail). Saludos! 

2 comentarios:

  1. Hola, soy Omar Pérez desde Ecuador es muy ilustrativo el blog y muestra un nivel importante de investigación que podría replicarse en otros lugares

    ResponderEliminar
  2. Me gustaría saber si han elaborado una manera de evaluar mediante ejercicios el pensamiento computacional...si existen por favor haganme saberlo...Gracias

    ResponderEliminar