¡Acepta el reto!: aprendizaje de la programación basado en problemas

Dos ordenadores con gráficas
  • Nivel:
    • E.S.O.
  • Área del pensamiento computacional:
    • Programación

Recurso del mes

¡Acepta el reto!: aprendizaje de la programación basado en problemas

 

En el recurso de este mes os presentamos una herramienta que puede utilizarse para el desarrollo del Pensamiento Computacional y la programación en el aula. Os hablamos de ¡Acepta el reto!, un almacén y juez en línea de problemas de programación.

¿Qué debo saber para empezar a trabajar con este recurso?

Niveles a los que va dirigido

En el repositorio de ¡Acepta el reto! pueden encontrarse problemas con distintos niveles de dificultad, debido a ello puede utilizarse desde tercero de la E.S.O. hasta Bachillerato y ciclos formativos de F.P. de grados medio y superior. En este caso vamos a proponer una actividad para un grupo de 1º de Desarrollo de Aplicaciones Multiplataforma

Asignatura/s

¡Acepta el reto! está planteado para practicar la resolución de problemas. Esta tarea puede realizarse de manera transversal en cualquier asignatura. En cualquier caso, las asignaturas en las que se le puede sacar un mayor partido son las de Programación de Secundaria y Bachillerato y los módulos de programación de los Ciclos Formativos de Grado Superior. Tal y como está planteado el recurso, está dirigido al módulo de Programación.

¿Se requieren conocimientos previos? ¿Cuáles son?

En un primer nivel, se pueden utilizar los problemas que proporciona ¡Acepta el reto! para enseñar a pensar a los alumnos. Pero se obtiene el máximo rendimiento de la herramienta si se utiliza para enseñar a programar en los lenguajes de programación a los que va dirigido: C, C++ o Java. Como docente, es necesario tener conocimientos de programación para utilizar este recurso.

¿Qué objetivos se persigue con el recurso?

El objetivo principal de este recurso es practicar en el uso del Pensamiento Computacional. Para ello se plantean problemas, o retos, que llevan a los alumnos a pensar. Además, como objetivo secundario está el que los alumnos se acerquen a la programación de una manera más dinámica y divertida, así como más cercana a la realidad.

¿Qué habilidades de los alumnos se desarrollan que no se pueden obtener de manera más tradicional?

Los problemas no están planteados de una forma tradicional. Están escritos para forzar a leer con calma y obtener qué datos son necesarios para obtener una solución satisfactoria para el problema. Esto ayuda a desarrollar en los alumnos la comprensión lectora y el espíritu crítico. El ranking de usuarios registrados permite afrontar estos retos de una manera más lúdica.

¿En qué consiste el recurso?

¡Acepta el reto! es un repositorio de problemas orientados a la programación. Pero también es más que eso, es un juez que evalúa si la respuesta que se le ofrece es adecuada.

Los problemas se “archivan” en volúmenes, cada uno compuesto de 100 problemas. Los problemas de un mismo volumen no tienen por qué guardar ningún tipo de relación; tan sólo se introdujeron en el sistema en un periodo cercano.

El recorrido de los problemas por volúmenes permite averiguar el número exacto de problemas disponibles, y enfrentarse a ellos sin un conocimiento previo de su categorización, pues ésta puede dar pistas sobre su resolución. Para practicar algún tipo concreto de problemas, el repositorio dispone de una navegación por categorías.

Una vez se finaliza el reto, si el usuario está registrado en la web, puede subir sus soluciones y el juez le devolverá un veredicto sobre su programa. Si no está correcto, debe buscar dónde está el posible error.  Una vez se sube el programa que ofrece una solución correcta, la persona registrada pasa a formar parte del ranking de usuarios que han superado el problema.

Y ahora que sé para qué sirve, ¿cómo lo pongo en práctica?

 

En primer lugar, tenemos que elegir un problema de un nivel y temática adecuado a los alumnos a los que va dirigido. En este caso vamos a considerar que estamos trabajando los condicionales y queremos plantear un reto a nuestros alumnos. Podemos acceder a la web y buscar por categorías. Dentro de la categoría de Programación buscaremos aquella temática que se adapte a los contenidos que estemos impartiendo en ese momento.

Una vez hayamos elegido el reto que le vamos a plantear a nuestro alumnado, podemos comenzar a ponerlo en práctica en el aula.

Actividad 1: Leemos el enunciado y entendemos que nos piden

Esta actividad se puede realizar individualmente, pero si el trabajo se realiza en equipo el alumnado obtendrá ventajas adicionales:

  • Aprende a escuchar a sus compañeros y tener en cuenta que hay distintas soluciones posibles a un problema
  • Aprende a comunicar sus ideas de una manera respetuosa y a respetar las opiniones de los demás
  • Varias cabezas pensando en un mismo problema pueden obtener mejores resultados que sólo una
  • Aprende una habilidad que van a necesitar en un futuro cercano, cuando tengan que incorporarse a la empresa

Si se decide poner en práctica el trabajo en equipo, haremos los grupos e informaremos a los alumnos del problema elegido. Les pediremos que hagan una primera lectura para tener una idea general del reto que nos plantean. Los enunciados tienen casi siempre una ambientación que en cierta medida esconde lo que se está pidiendo. Les animamos a que realicen una segunda lectura con la intención de que respondan a las siguientes cuestiones:

  • ¿Podrías resumir en una frase, dejando a un lado la ambientación, qué nos pide el problema?
  • ¿Qué datos tenemos que proporcionar como entrada al programa?
  • ¿Qué datos tenemos que generar como salida?
  • ¿Qué formato nos dicen que tiene la entrada?
  • ¿Qué formato tienen los datos que vamos a obtener cómo salida?
 Según el alumnado se va acostumbrando a trabajar con este recurso, podemos pedirles que nos proporcionen información más avanzada.
  • Proporciona algún ejemplo de entrada y salida adicional que no venga en el enunciado y que pueda probar los casos límite del enunciado

Actividad 2: Pensamos las posibles soluciones que se pueden ofrecer

Una vez hemos leído detenidamente y entendemos el problema en profundidad, es la hora de comenzar a plantear una posible solución. Todavía no lo haremos delante del ordenador. Pediremos al alumnado que piense cómo podría resolver el problema. Si el trabajo es en equipo, les pediremos que debatan las posibles soluciones que se les han ocurrido.

Es muy posible que, las primeras veces que planteemos este tipo de actividad a nuestro alumnado, no sepan cómo empezar a pensar los problemas. En ese caso es el momento de sugerirles estrategias cómo resolverlo poco a poco, dividiéndolo en partes más pequeñas que nos permitan alcanzar la solución total o pensar si hemos resuelto problemas parecidos que nos puedan dar un punto de arranque.

Actividad 3: Programamos la solución

Una vez tenemos una estrategia, podemos comenzar a programar. El juez de ¡Acepta el reto! admite soluciones en C, C++ o Java, por lo que, si queremos aprovechar todas sus funcionalidades, tendremos que programar nuestra propuesta en estos lenguajes de programación.

Es importante hacer ver a nuestro alumnado que, una vez hayan escrito el programa, es importante testearlo. Para ello, la web pone a nuestra disposición unos ejemplos de prueba

Si la solución propuesta no funciona con esos casos, tendremos que revisarla para ver qué puede estar ocurriendo. Además, es importante el formato de entrada y salida. El juez es inflexible en este tema, los datos de entrada los proporcionará con el formato dado. Igualmente ocurrirá cuando tenga que evaluar la salida, exigirá el formato exacto que plantea el enunciado.

Pero los casos de prueba de ejemplo no serán los únicos con los que se probará nuestra solución. El juez está alimentado con multitud de casos distintos, por lo que es esencial que el alumnado piense sus propios casos de prueba y los utilice para comprobar si su solución es correcta. Tenemos que invitarles a tener en cuenta los límites que plantea el enunciado del problema.

Actividad 4: Comprobamos si la solución es correcta

Una vez finalizados los pasos anteriores ha llegado el momento de enviar nuestra solución al juez.

Al pulsar en Enviar, aparece una ventana en la que podemos subir nuestra solución. El juez la evaluará y nos ofrecerá un veredicto.

Actividad 5: Revisamos los posibles errores y volvemos a comprobar

En este momento, si a nuestro alumnado el juez le ha devuelto un AC, quiere decir que su programa da una respuesta correcta al problema.

Si no es así, es el momento de revisar el código y encontrar los posibles errores o detalles que no se han tenido en cuenta. Las primeras veces, es posible que nuestro alumnado se frustre. Es el momento de trabajar esta frustración y enseñarles que las equivocaciones son el primer paso para aprender. Y que la única manera de hacerlo es siendo persistentes e intentándolo hasta que consigan que el juez les proporcione su tan ansiado AC.

Algunos problemas tienen habilitado un sistema de pistas. Estas pistas están en beta por lo que no están habilitadas para todos los problemas, ni tienen en cuenta todos los errores. Pero si trabajamos con un problema que las tiene disponibles, pueden ser de ayuda para buscar el error cometido en nuestra solución.

 

¿Qué habilidades de los alumnos desarrollo que no se pueden obtener de manera más tradicional?

Con este recurso los alumnos desarrollan las siguientes habilidades:

  • Lectura y comprensión de problemas: los enunciados están planteados en un lenguaje muy cercano al real. Habitualmente los problemas tradicionales de programación están planteados de una manera clara y objetiva que lleva a pensar en su solución inmediata. En este caso, el enunciado hace que haya que trabajar y esforzarse por entender, entre la información que nos proporcionan, cual es la que realmente necesitamos para el desarrollo de nuestra solución. Esto facilita el trabajo futuro cuando se tenga que realizar aplicaciones teniendo en cuenta especificaciones de clientes
  • Gestión de la frustración: el enfrentarse a los veredictos del juez puede ser frustrante en un primer momento, pero si ayudamos a nuestros alumnos a gestionarla, les estaremos proporcionando una herramienta que utilizarán a lo largo de su vida laboral cómo programadores.
  • Trabajo en equipo: si, además, utilizamos los equipos de alumnos para pensar las posibles soluciones, añadimos esta habilidad que es solicitada hoy en día en la mayor parte de los trabajos

¿Qué ventaja obtengo de utilizar este recurso en el aula?

  • Motivación: el ranking del juez hace que, si lo utilizamos en nuestro favor en el aula, podemos usar la competición entre nuestros alumnos para motivarles a encontrar la solución más eficiente (rápida) o para ver quien es capaz de conseguir el primer AC.
  • Corrección automática: la corrección automática del juez hace que esta labor por parte del profesor sea menos tediosa. En este caso el profesor se convierte en la persona que resuelve las dudas de sus alumnos, más que en corrector de ejercicios.
  • Personalización del aprendizaje: si existen distintos niveles en el grupo, se pueden buscar problemas con la misma temática pero distintos niveles de dificultad que permitan acceder al aprendizaje al ritmo que cada alumno demande. De esta manera estamos atendiendo a la diversidad del aula.
  • Repositorio de problemas: el repositorio de problemas cuenta a día de hoy com más de 500 problemas para elegir. Es cierto que muchos de ellos están orientados a alumnos de universidad, pero buscando por categoría podemos encontrar ejemplos para cada contenido que queramos impartir.

¿Qué materiales necesito para ponerlo en práctica en el aula?

Los materiales necesarios son un ordenador y conexión a Internet.

Para saber más…

FAQ de la Web ¡Acepta el reto!
¡Acepta el reto! Juez Online para la docencia en español: https://dialnet.unirioja.es/servlet/articulo?codigo=7753809
La importancia del aprendizaje del Pensamiento Computacional en el futuro de nuestro alumnado: http://code.intef.es/la-importancia-del-aprendizaje-del-pensamiento-computacional-en-el-futuro-de-nuestro-alumnado/


Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies