Ir al contenido principal

La magia de la programación


El jueves pudimos disfrutar de la presentación en la que David O. (aka. Cascabel) nos transmitía cual era su visión de cómo enseñar programación a nuestros alumnos de primero de Bachiller.
Para ello nos presentó sus objetivos fundamentales de la asignatura que eran:

Fuente: Presentación de David, puede consultarse aquí

Creo que David dio en el clavo con estos objetivos, no podemos enseñarles a nuestros alumnos la programación como algo ajeno, complejo y tedioso, por ejemplo haciéndoles leerse un manual y empezando por un "hola mundo" sin sentido.

Es importante que asimilen en profundidad que la programación está en cada elemento cotidiano en la actualidad, y que entenderlo forma parte de un entendimiento global del mundo que les permitirá ser más libres y dueños de sus vidas.

Así que por ello coincido en clasificar como objetivos fundamentales los anteriores. Como objetivos necesarios, aquellos que necesitaran al finalizar bachiller, serán aquellos conceptos básicos y teóricos sobre la programación:
  • Explicar los elementos comunes de un programa: datos, variables, bucles y condiciones
  • Definir lenguaje de programación, compilador y entorno de desarrollo
  • Implementar diagramas de flujo para resolver problemas sencillos
  • Traducir algoritmos sencillos.
El resto de objetivos, todos aquellos que implican programar o un conocimiento más profundo de los compiladores y entorno de desarrollo serán objetivos accesorios, ya que tenemos en cuenta la diversidad de alumnos en nuestras aulas, ya que no todos van a tener un perfil tecnológico:
  • Compilar sus propios programas.
  • Defender cuándo y por qué es necesario implementar funciones.
  • Diseñar programas sencillos que hagan llamadas a funciones, entre ellas funciones de entrada y salida.
  • Usar un entorno de desarrollo con soltura 
  • Valorar la utilidad de los distintos entornos utilizados  
  • Implementar pequeños programas


A Grumpy Cat no le gustó leerse el manual de Turbo Pascal

Como propuesta metodológica y de contenidos David nos propuso un complejo aunque interesante mapa de aprendizaje con distintas actividades que iban desde entender algoritmos y programar pequeñas lineas de código a buscar noticias sobre el impacto de la programación (y sus errores) en nuestra vida. Una propuesta cuyas principales pegas fueron el tiempo para prepararlo y después el tiempo en el aula, el que no parecía permitir a alumnos más de letras evitar trabajar con código tras un ligero contacto y que la programación que hacían al ser pequeños trocitos no terminaban de verlo concretado en algo más grande. Este último punto está relacionado con la crítica que hizo David al planteamiento antagónico, hacer un proyecto grande y cooperativo de programación que es lo que se suele hacer.

Mi propuesta entonces sería ir en un término medio de estas dos posiciones, crear un único proyecto incremental de programación. Esto es, empezamos con un programa pequeño que tiene funcionalidad y entidad propia y vamos incrementándolo hasta llegar a un proyecto más grande. Creo que ciertas tareas más satélites (documentación, investigación, multimedia...) a lo largo de este proyecto podrían ser cooperativas pero la programación en sí debería ser individual ya que es la manera de asimilar bien ciertos conceptos básicos. También tener en cuenta este perfil que comentábamos en el debate que puede no querer meterse de lleno en una programación más técnica, y para ello proporcionarles un proyecto más adecuado. Quizá que puedan ponerse en la piel de un periodista, buscar información con temas relacionados y generar contenido y debate sobre ello. Eso sí, me encantó la idea y apostaría por iniciarles en la programación con algún juego de mesa como el Potato Pirates, con el que todos podrán asimilar los primeros conceptos básicos de programación como los bucles o los condicionales.

Creo que esta es una de las unidades más complicadas por su complejidad y nivel de abstracción de los conceptos a aprender y debe conllevar por lo tanto un esfuerzo extra por parte de los docentes. Esta importancia creo que debe verse reflejada en la temporalización también, y por ello estoy de acuerdo con David en dedicarle un trimestre entero.

Sobre qué tipo de proyecto de programación y con qué lenguaje podríamos cumplir las características arriba presentadas y a la vez garantizar que sea abierto, flexible, del contexto del alumno... He estado explorando algunas opciones como un lenguaje llamado KPL (Kids Programming Language)[1] cuyos creadores dicen que es un lenguaje que ha simplificado los principales lenguajes de programación para acercarlo a niños y adolescentes en un entorno que potencia también la creación de proyectos atractivos como la programación de videojuegos o, a golpe de google, parece que (tras scratch) Python es una de las propuestas más populares para este propósito.


Dejo abierto a debate, interno y con mis compañeros, esta cuestión que necesita de un estudio mucho más riguroso. Todo ello para poder revelar con éxito la magia de la programación ;)


[1] Jon Schwartz, Jonah Stagner, and Walt Morrison. 2006. Kid's programming language (KPL). In ACM SIGGRAPH 2006 Educators program (SIGGRAPH '06). ACM, New York, NY, USA, Article 52

Comentarios

  1. Hola Alba, coincido contigo en la necesidad de que haya un proyecto de fondo porque así se puede conseguir que los alumnos comprendan que ellos pueden ser capaces de hacer algo que sea útil, mientras que si sólo hacemos ejercicios sueltos e inconexos no van a llegar a hacerse esa idea. El problema que veo es cómo conseguir eso, creo que la cuestión implica un gran esfuerzo por nuestra parte para buscar algún proyecto que cumpla los requisitos y que a la vez resulte atractivo para los alumnos.

    También has tocado otro de los aspectos que considero fundamentales como es qué lenguaje utilizar. Parece que hoy en día los docentes se decantan por lenguajes como Scratch aunque me da miedo que éstos puedan parecer lenguajes de "juguete" o incluso infantiles y no sean apropiados para 1º de Bachillerato. Yo aprendí a programar a esa misma edad en el instituto y utilizábamos C. Probablemente esa tampoco sea la mejor opción. En cualquier cosa es algo que me "atormenta" y para lo que no tengo la respuesta... todavía

    ResponderEliminar
  2. En este artículo vemos perfectamente reflejado lo que vimos en clase, remarcando la importancia de que la programación no se quede en las aulas, que los alumnos vean la importancia de la programación fuera de estas. Por otro lado, como ya comenté en mi blog, no le daría un trimestre entero como indico David en su presentación, aunque Alba este de acuerdo en ello. Me parece una parte importante de la asignatura, pero al ser una optativa, implica que muchos alumnos, por ejemplo de letras, estén en ella por ser la asignatura menos mala, por lo que no es elegida por vocación y estar un trimestre entero, es excesivo. En cuanto a la metodología que plantea Alba, me quedo con ella totalmente, los alumnos tienen que hacer algo ellos, que vean de lo que son capaces, si parten de algo hecho, no ven lo que pueden llegar a hacer ellos y pierden gran parte de la motivación.

    ResponderEliminar
  3. Tras la edición, además de una buena reflexión y una buena propuesta explicas claramente la categorización de los objetivos de aprendizaje que propondrías a los alumnos.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Un tema muy duro

De la mano de Sergio y Agustín profundizamos en la unidad didáctica de Hardware . Junto a la unidad de sistemas operativos creo que son las dos unidades más complejas de preparar debido al nivel de abstracción que requieren para un entendimiento pleno. Por ello hay que encontrar un equilibrio entre profundidad y amplitud que nos permita proporcionar a los alumnos un mapa general del tema con una base sólida . Si los sistemas operativos eran el soporte de todo el software, el hardware son los cimientos sin los cuales el software no existiría. Por ellos considero imprescindible familiarizar a los adolescentes con los elementos hardware, y continuando la filosofía de toda la asignatura, que se alejen un poco más de la idea de que en su ordenador lo que ocurre es magia. También unos conocimientos básicos de hardware podrán invitarles a profundizar más por su cuenta a aquellos que tengan interés. Por estas mismas razones, poder dar un mapa general, coincido con los objetivos fundamentale...

El arte de contar historias

Llegamos ya a la última de las entradas sobre las unidades didácticas estudiadas en la asignatura de contenidos disciplinares de Informática del Máster del profesorado de la Universidad de Zaragoza. Y finalizamos esta etapa con una unidad didáctica que puede pasar desapercibida, pero es una de las que más usarán nuestros alumnos a lo largo de su vida: cómo hacer una buena presentación. Más allá de aprender a usar una herramienta, ya que cambiarán a lo largo del tiempo, debemos darles las claves para lograr plasmar y transmitir las ideas que quieran y poder captar también la atención del público al que se dirigen. Este aprendizaje podrán aplicarlo en el resto de sus asignaturas, en su vida formativa y laboral y también en su vida personal. Cada vez más gente comparte en público a través de charlas sus experiencias vitales (como un señor que estuvo 12 años viajando en bici), su ideas políticas y espirituales, sus logros y aprendizajes deportivos... Así que creo que es importante q...