Вы находитесь на странице: 1из 39

Un Robot llamado Karel

Materiales de apoyo para el instructor de un taller presencial sobre el Robot Karel

Elaborado por Tecnologa Educativa Galileo SA de CV Enero de 2008

Notas aclaratorias:
Este documento ha sido preparado para facilitar a los profesores, la enseanza y el uso pedaggico del robot Karel. Para tener xito, el profesor y sus estudiantes deben contar con el programa Karel el Robot y realizar con l, las actividades que aqu se muestran o sealan. El documento supone que el profesor y los estudiantes estn familiarizados con los aspectos tcnicos de operacin del programa. Este documento esta registrado y es propiedad de Tecnologa Educativa Galileo SA de CV, se prohbe su uso parcial o total, sin el conocimiento y consentimiento de la empresa

Karel. Propsito
Karel es un programa educativo que permite: Desarrollar en los estudiantes el pensamiento lgico y las habilidades afines a este. Mediante su utilizacin los estudiantes aprenden a identificar la esencia de los problemas, a desarrollar niveles de abstraccin y a transmitir sus conocimientos en forma detallada y precisa. As mismo desarrollan habilidades de planeacin, de preparacin de estrategias y de toma de decisiones. Su utilizacin es especialmente til para el desarrollo del pensamiento matemtico. Para los nios pequeos puede ayudarle a desarrollar el sentido de la orientacin, de la ubicacin y ayudar en la comprensin de los nmeros enteros y las distancias.

Orientacin
Karel puede ser utilizado en los primeros grados de primaria para ensear a los nios a contar, a ubicarse en el espacio de dos dimensiones y a moverse en el. En la primaria alta, los nios adquieren los conceptos bsicos del pensamiento lgico y del lenguaje matemtico, aprenden a resolver problemas sencillo y desarrollan su autoestima, al observar que el robot puede resolver problemas siguiendo sus instrucciones. En los diferentes grados de secundaria, Karel facilita el estudio de las matemticas, los estudiantes utilizan el concepto de algoritmo en el desarrollo de mtodos para resolver problemas. En el Bachillerato Karel ha sido utilizado para ensear computacin (programacin de computadoras) y resolver problemas de mayor complejidad.

Descripcin General
Karel es un robot que vive en un espacio rectangular en el cual puede moverse dando pasos hacia delante o giros que le permiten cambiar de direccin. Karel tiene sensores que le permiten detectar barreras enfrente de l y a sus lados, las cuales debe rodear y no chocar con ellas. De hecho el espacio de Karel esta rodeado de barreras que impiden su salida de l. Karel tiene tambin un brazo que le permite recoger los objetos que encuentra y dejarlos en una mochila, para sacarlos despus y dejarlos en otra parte. As pues bsicamente, Karel es un robot transportador de objetos, pero haciendo esto puede resolver muchos problemas interesantes.
En la lmina siguiente se encuentra la pantalla inicial de Karel, con la que puedes crear los escenarios de trabajo

Karel Barreras Trompos

Con este tablero tu puedes cargar tambien escenarios creados y almacenados previamente y decidir el tamao del escenario.

Pantalla inicial de Karel, destinada a crear escenarios

Editor de programas
Una vez editado el escenario, tu puedes pasar al editor de programas activando la pestaa correspondiente. En la pantalla del editor, debes encender a Karel para que pueda funcionar, luego colcalo en la posicin y direccin correctas. El programa se edita en la columna intermedia en blanco, mientras que en la parte derecha se observa el escenario donde Karel va a ejecutar el programa. El tablero permite llamar a un asistente de programacin que facilita la correcta escritura del programa. En la parte izquierda se encuentra el botn de encendido y abajo un juego de indicadores sobre el estado de los sensores del robot. En la parte media superior se encuentran los botones que permiten cargar un programa previamente almacenado. En la parte inferior derecha se encuentran los botones que permiten restablecer el escenario a las condiciones iniciales, iniciar los programas y controlar la velocidad del robot

Pantalla del editor de programas

Descripcin General
En la figura siguiente aparece Karel en un posible espacio, en el que se observa una trayectoria por la cual se debe mover para llegar a un punto donde debe recoger un objeto. Despus de recogerlo se debe mover a otra posicin y dejar all el objeto. Los puntos de la trayectoria son:
1. Punto inicial 2. Punto donde se recoge el objeto. 3. Punto donde se deja el objeto.

Karel es un robot que no acta por decisin propia, sino que hace solo lo que le ordenamos que haga, las instrucciones que le daramos en espaol para que recorra la trayectoria aparecen a un lado de la figura.

Descripcin General
Las instrucciones para Karel:
Avanza cuatro pasos, Gira a la derecha, Avanza cinco pasos, Recoge un objeto y gira a la derecha, Avanza cuatro pasos, Gira a la izquierda, Avanza dos pasos, Gira a la izquierda, Avanza 6 pasos, Deja el objeto 1 3 2

Descripcin General
Esta actividad es en realidad muy simple, pero da una idea de cmo trabaja el robot y resuelve problemas, siguiendo nuestras instrucciones. A veces nosotros queremos y esperamos que Karel haga algo especfico, como por ejemplo seguir una trayectoria determinada, pero en su lugar hace algo distinto. Entonces, tenemos que encontrar el error y corregirlo, esto siempre es divertido y al hacerlo, estaremos aprendiendo a razonar y a descubrir nuestros errores, la experiencia resulta fascinante.

El espacio de Karel
Como hemos visto es un espacio rectangular cuadriculado, en un cualquier cuadro de la retcula pueden colocarse barreras u objetos (trompos) que el robot puede levantar y mover. El robot puede colocarse en cualquier cuadro, orientado en una direccin determinada. El espacio de Karel cuenta con facilidades para poner y quitar barreras y trompos, pero slo permite colocar un solo robot. Las cuadriculas pueden ser de 10 X 10 o de 20X20 cuadros como se observa en las figuras siguientes. Al colocar en el espacio las barreras y los trompos, estamos definiendo de algn modo los problemas que Karel debe resolver:

Dos posibles espacios para Karel


Trompo

Karel

Espacio de 10 X10 con ejemplo de una barrera en forma de T y dos trompos. Karel en la parte inferior.

Espacio de 20 X 20 con ejemplo de un laberinto en espiral y un tesoro oculto, Karel en la parte inferior izquierda

La primera tarea de Karel


Imaginemos que colocamos un trompo a una cierta distancia y queremos que Karel vaya por el y nos lo traiga, soltndolo en la posicin inicial. El programa para Karel es el siguiente: INICIO-DEPROGRAMA INICIA-ACTIVIDAD AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA RECOGE-OBJETO GIRA-DERECHA GIRA-DERECHA AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA AVANZA DEJA-TROMPO GIRA-IZQUIERDA AVANZA FIN-ACTIVIDAD FIN-PROGRAMA

La primera tarea de Karel


Varios puntos deben ser tomados en cuenta: El primero de ellos es la existencia de dos lneas al principio del programa y dos al final, cuyo nico fin es protocolario, como nuestro buenos das al principio de una platica y el Adis del final. Otro aspecto molesto es el referente a la necesidad de repetir ciertas palabras como en AVANZA AVANZA AVANZA etc. Este puede ser obviado utilizando la capacidad del lenguaje de karel para definir nuevos trminos como en: APRENDE-QUE AVANZA4 ES INICIO AVANZA AVANZA AVANZA AVANZA FIN APRENDE-QUE MEDIAVUELTA ES INICIO GIRA-DERECHA GIRA-DERECHA FIN Con esta facilidad, podemos decir que Karel ahora tiene la capacidad de aprender. Ahora la estructura del programa es la siguiente: Aqu es importante hacer notar que un nio de 9 10 aos puede escribir programas con este nivel de complejidad

La primera tarea de Karel


INICIO-DE-PROGRAMA APRENDE-QUE AVANZA4 ES INICIO AVANZA AVANZA AVANZA AVANZA FIN APRENDE-QUE MEDIAVUELTA ES INICIO GIRA-DERECHA GIRA-DERECHA FIN INICIA-ACTIVIDAD AVANZA4 AVANZA4 RECOGE-OBJETO MEDIAVUELTA AVANZA4 AVANZA4 DEJA-OBJETO GIRA-IZQUIERDA AVANZA FIN-ACTIVIDAD FIN-PROGRAMA No olvides encender a Karel para que pueda funcionar

Ahora veamos a Karel realizar la tarea completa

La primera tarea de Karel


Ahora bien, es claro que si el objeto hubiese estado un cuadro o dos ms cerca o ms lejos, hubiese sido necesario modificar el programa pues de otro modo, Karel fallara. Es posible hacer un programa ms general, utilizando la capacidad de Karel de detectar objetos y barreras, que le permita recoger los trompos a cualquier distancia. El hecho de que el robot pueda detectar objetos y barreras le permite tomar decisiones, como las del siguiente programa El programa aparece derecha de esta lamina. en la parte KAREL ENCUENTRAUNTROMPO Y REGRESA INICIO-DE-PROGRAMA INICIA ACTIVIDAD MIENTRAS NINGUN-OBJETO HAZ AVANZA RECOGE-TROMPO GIRA-DERECHA GIRA-DERECHA MIENTRAS NADA-ENFRENTE HAZ AVANZA DEJA-TROMPO GIRA-IZQUIERDA AVANZA FIN-ACTIVIDAD FIN-PROGRAMA

Karel. Bloques de instrucciones


Imaginemos ahora que Karel debe recoger no uno, sino toda una hilera de trompos, (no sabemos cuantos) antes de regresar al punto de partida La estrategia es que mientras siga encontrando trompos debe recogerlos y seguir adelante. Al encontrar el ltimo y detectar que ya no hay ms, debe dar la media vuelta y regresar. La parte del programa donde Karel levanta los trompos es la siguiente: MIENTRAS ALGUN-OBJETO HAZ INICIO RECOGE-OBJETO AVANZA FIN En la pagina siguiente podemos ver y analizar el programa completo. Punto de regreso

Karel. Bloques de instrucciones


RECOGE HILERA DE TROMPOS INICIO-DE-PROGRAMA APRENDE-QUE MEDIAVUELTA ES GIRA-DERECHA GIRA-DERECHA INICIA-ACTIVIDAD MIENTRAS NINGUN-OBJETO HAZ AVANZA MIENTRAS ALGUN-OJETO HAZ INICIO RECOGE-OBJETO AVANZA FIN MEDIAVUELTA MIENTRAS NADA-ENFRENTE HAZ AVANZA MEDIAVUELTA FIN-ACTIVIDAD FIN-PROGRAMA A las sucesiones de instrucciones como: INICO RECOGE-OBJETO AVANZA FIN Les llamamos bloques, estos bloques tienen una gran importancia en el lenguaje, porque nos permiten agrupar a las instrucciones para ir conformando la lgica del programa La idea es lograr que cuando el robot ejecute la primera instruccin del bloque, tiene que ejecutar todas las dems. Observemos ahora al robot realizando el programa con la hilera de trompos de la figura.

Karel. Las decisiones Lgicas


Imaginemos ahora que hemos colocado un trompo en algn lugar del tablero y queremos que Karel lo encuentre. Para ello hemos dejado algunas barreras como seales, cada vez que Karel encuentre una deber dar vuelta a la derecha y seguir adelante. El proceso termina encuentra el trompo. cuando Karel

La estrategia que Karel debe seguir es continuar hasta hallar el trompo haciendo lo siguiente: Dar vuelta a la izquierda al encontrar una barrera enfrente y si no avanzar. El programa aparece en la pgina siguiente

Karel. Las decisiones Lgicas


KAREL ENCUENTRA UN TROMPO INICIO-DE-PROGRAMA INICIA-ACTIVIDAD MIENTRAS NINGUN-OBJETO HAZ INICIO SI ALGO-ENFRENTE ENTONCES GIRA-DERECHA SINO AVANZA FIN RECOGE-OBJETO FIN-ACTIVIDAD El bloque central de instrucciones de este programa tiene una decisin lgica basada en uno de los censores de karel, el cual le permite detectar una barrera enfrente de l, en ese momento el debe girar a la derecha. Cuando un bloque de actividades esta formado por una sola instruccin los trminos INICIO y FIN son innecesarios Pongamos ahora a Karel a ejecutar el programa con el escenario Karel encuentra un trompo y veamos que efectivamente lo hace

Karel. Las decisiones Lgicas


Si utilizas el Asistente de programacin de Karel tu puedes ver que Karel cuenta con otros sensores que le permiten detectar objetos no solo frente a el, sino tambin a sus lados. Con esta facilidad, lograremos ahora que Karel regrese al punto de salida luego de hallar el trompo, para ello necesitamos que marque el punto de salida para regresar a el. K ENCUENTRA TROMPO REGRESA INICIO DEL PROGRAMA APRENDE-QUE MEDIAVUELTA ES INICIO GIRA-DERECHA GIRA-DERECHA FIN INICIA-ACTIVIDAD PIDE-TROMPO DEJA-TROMPO AVANZA MIENTRAS NIGUN-OBJETO HAZ SI ALGO-ENFRENTE ENTONCES GIRA-DERECHA SINO AVANZA RECOGE-OBJETO MEDIAVUELTA MIENTRAS NINGUN-OBJETO HAZ SI ALGO-DERECHA ENTONCES GIRA-IZQUIERDA SINO AVANZA MEDIA-VUELTA FIN-ACTIVIDAD FIN-PROGRAMA

Ejecutemos el programa, viendo los movimientos de Karel

Karel rodeando barreras


En la figura aparece un rectngulo formado por barreras que Karel debe rodear. Una forma sencilla de hacerlo sera como al principio, contando los pasos que debe dar antes de cada giro. Pero nosotros sabemos que gracias a sus sensores, Karel lo puede hacer de manera ms sencilla. 2

Al comenzar a moverse Karel debe dejar una marca, de otra manera, no sabra donde detenerse. MIENTRA NINGUN-OBJETO HAZ SI ALGO-DERECHA ENTONCES KAREL RODEA RECTANGULO AVANZA SINO INICIO-DE-PROGRAMA INICIO GIRA-DERECHA AVANZA FIN INICIA-ACTIVIDAD FIN-ACTIVIDAD PIEDE-OBJETO DEJA-OBJETO FIN-PROGRAMA AVANZA Ejecutar el programa

Karel rodeando barreras


Un aspecto importante de sealar es que con el programa anterior, Karel puede rodear barreras rectangulares de cualquier tamao, de hecho tu podras colocar a karel en la posicin marcada como 2 y hacer que rodee el cuadrado pequeo de la figura. Del mismo modo t puedes hacer que con el mismo programa Karel rodee cualquiera de las formas en el espacio de la siguiente figura. Por ello podemos afirmar que hemos resuelto, no un problema, sino toda una familia de problemas.

Ahora estamos en condiciones de intentar que karel resuelva problemas ms complejos como rodear una barrera en forma de T

Karel rodeando barreras


KAREL RODEA LA T INICIO-DE-PROGRAMA INICIA-ACTIVIDAD PIDE-OBJETO DEJA-OBJETO AVANZA MIENTRAS NINGUN-OBJETO HAZ SI NADA-DERECHA ENTONCES INICO GIRA-DERECHA AVANZA FIN SINO SI ALGO-ENFRENTE ENTONCES GIRA-IZQUIERDA SINO AVANZA FIN-ACTIVIDAD FIN-PROGRAMA Ejecuta el programa

El programa aparece en la parte derecha de esta lamina, tu puedes comprobar que es igualmente general pues rodea cualquier otra T. Tu podras hacer un programa parecido que rodee la T en el otro sentido.

Decisiones anidadas
El programa anterior contiene un nuevo tipo de estructura, conocido como decisiones anidadas. Veamos la seccin siguiente la cual puede ser escrita de otra manera. .. SI NADA-DERECHA ENTONCES INICO GIRA-DERECHA AVANZA FIN SINO SI ALGO-ENFRENTE ENTONCES GIRA-IZQUIERDA SINO AVANZA .. SI NADA-DERECHA ENTONCES INICO GIRA-DERECHA AVANZA FIN SINO SI ALGO-ENFRENTE ENTONCES GIRA-IZQUIERDA SINO AVANZA

Decisiones anidadas
SI NADA-DERECHA Si ENTONCES INICIO GIRA-DERECHA AVANZA FIN No

SINO SI ALGO-ENFRENTE Si No SINO AVANZA

ENTONCES GIRA-IZQUIERDA En cada paso, mientras no ha terminado, el robot debe preguntarse si no tiene nada a su derecha y en ese caso girar a la derecha y avanzar

En el caso contrario, el robot debe hacerse la pregunta de si tiene algo enfrente y entonces girar a la izquierda, sino entonces puede seguir de frente.

Karel. Un programa para rodear las letras del abecedario


Un programa general para rodear barreras colocadas formando las diferentes letras del abecedario puede pensarse que es complejo. Pero no lo es, de hecho el programa para rodear la letra T, puede ser usado para rodear cualquier letra y de hecho cualquier conformacin de barreas.

Karel recorre laberintos y saca tesoros


Desde tiempo antiguos los laberintos han representado problemas interesantes de resolver. Nosotros podemos imaginar la existencia de un tesoro (trompo) escondido en un laberinto que debe ser encontrado y sacado por nuestro robot. Para ello debemos escribir un programa que le permita realizar esta tarea. Como nosotros no sabemos que forma puede tener el laberinto, ni en que parte de este, est guardado el tesoro, necesitamos un programa general Crees que puedes hacerlo?

En realidad el programa no es difcil, se parece al que hicimos para rodear las letras.

Karel recorre laberintos y saca tesoros


KAREL BUSCA UN TESORO INICIO-DE-PROGRAMA APRENDE-QUE ENCUENTRA-TROMPO ES INICIO MIENTRAS NINGUN-OBJETO HAZ SI NADA-DERECHA ENTONCES INICIO GIRO-DERECHA AVANZA FIN SINO SI ALGO-ENFRENTE ENTONCES GIRA-IZQUIERDA SINO AVANZA FIN FIN INICIA-ACTIVIDAD INICIO PIDE-OBJETO DEJA-OBJETO AVANZA ENCUENTRATROMPO RECOGE-OBJETO ENCUENTRATROMPO FIN FIN-ACTIVIDAD FIN-PROGRAMA

Ejecuta el programa y cambia el trompo a otros sitios del laberinto

Observa como Karel los puede sacar en todos los casos

Karel recorre laberintos y saca tesoros


Ahora hemos construido un laberinto mas grande (20 X 20) y mas complejo. Adems tiene ahora 3 tesoros. Si quitas dos de los trompos y ejecutas el programa KAREL BUSCA UN TESORO vers que el robot realiza bien la tarea. Ahora trata de modificar el programa para que busque y encuentre los tres tesoros. Cuando lo logres, escribe un pequeo ensayo sobre el mtodo que seguiste para resolver el problema. Seguramente ahora comprendes la importancia de las selecciones generales.

Karel encuentra la puerta del corral


Imaginemos ahora que Karel esta dentro de un corral que tiene una puerta. Karel no sabe donde esta, por lo que tiene que hallarla y salir del corral. Disea una estrategia que le permita a Karel, realizar exitosamente esta misin y escrbela en espaol. Luego escribe el programa y comprueba que funciona, independientemente de la posicin inicial y de la direccin en que Karel este orientado.

Karel encuentra la puerta del corral


El programa para encontrar la puerta es el siguiente: KAREL ENCUENTRA LA PUERTA INICIO-DE-PROGRAMA INICIA-ACTIVIDAD MIENTRAS NADA-ENFRENTE HAZ AVANZA GIRA-DERECHA MIENTRAS ALGO-IZQUIERDA HAZ SI ALGO-ENFRENTE ENTONCES GIRA-DERECHA SINO AVANZA GIRA-IZQUIERDA AVANZA AVANZA FIN-ACTIVIDAD FIN-PROGRAMA Un problema ms complejo se presenta cuando el corral es irregular como el de la figura. Lo puedes resolver tu solo?

Karel encuentra la puerta del corral


Aunque pueden existir diferentes estrategias para resolver el problema, una de ellas consiste en reconocer la puerta por la existencia de un trompo como seal frente a ella tal como se ve en la figura. KAREL ENCUENTRA LA PUERTA2 INICIO-DE-PROGRAMA INICIA-ACTIVIDAD MIENTRAS NADA-ENFRENTE HAZ AVANZA MIENTRAS NINGUN-OBJETO HAZ SI ALGO-ENFRENTE ENTONCES GIRA-DERECHA SINO SI NADA-IZQUIERDA ENTONCES INICIO GIRA-IZQUIERDA AVANZA FIN SINO AVANZA RECOGE-OBJETO AVANZA FIN-ACTIVIDAD FIN-PROGRAMA

Trompo

Karel encuentra la puerta del corral


Existe una condicin inicial para la cual este programa falla. Cul es esa condicin inicial con la que falla el programa? Identifcala y explica a que se debe esta falla. Escribe un programa en el cual la falla quede superada y luego prubalo. Otro reto importante es modificar la forma del corral y comprobar que el robot puede encontrar la puerta en otros casos, usando el mismo programa

Karel entra al corral y saca los trompos que estn adentro


Un desafo ms complejo para Karel consiste en meterse a un corral rectangular y sacar todos los trompos que se encuentren en su interior. El robot debe sacar los trompos y colocarlos en una hilera fuera del corral. La estrategia para realizar esta tarea es descomponerla en cuatro: 1.Encontrar la puerta y entrar. 2.Encontrar la esquina inferior izquierda. 3.Barrer todas las hileras levantando los trompos. 4.Salir del recinto y colocar los trompos en una hilera exterior

Para levantar todos los trompos se hace hilera por hilera, el programa aparece en la pagina siguiente

Karel entra al corral y saca los trompos que estn adentro


RECOJE TROMPOS EN RECINTO INICIO-DE-PROGRAMA APRENDE-QUE ENTRAALRECINTO ES INICIO MIENTRAS ALGO-DERECHA HAZ AVANZA GIRA-DERECHA MIENTRAS NADA-ENFRENTE HAZ AVANZA GIRA-DERECHA MIENTRAS NADA-ENFRENTE HAZ AVANZA GIRA-DERECHA FIN APRENDE-QUE RECORREHILERA ES INICIO MIENTRAS NADA-ENFRENTE HAZ SI ALGUN-OBJETO ENTONCES INICIO RECOGE-OBJETO AVANZA FIN SINO AVANZA SI ALGUN-OBJETO ENTONCES INICIO RECOGE-OBJETO GIRA-DERECHA GIRA-DERECHA FIN SINO INICIO GIRA-DERECHA GIRA-DERECHA FIN MIENTRAS NADA-ENFRENTE HAZ AVANZA GIRA-DERECHA FIN

Karel entra al corral y saca los trompos que estn adentro


APRENDE-QUE BUSCASALIDA ES INICIO GIRA-DERECHA MIENTRAS ALGO-IZQUIERDA HAZ AVANZA GIRA-IZQUIERDA AVANZA AVANZA FIN APRENDE-QUE DEJATROMPOS ES INICIO GIRA-IZQUIERDA MIENTRAS ALGO IZQUIERDA HAZ AVANZA GIRA-DERECHA GIRA-DERECHA MIENTRAS ALGO-EN-BOLSA HAZ INICIO DEJA-OBJETO AVANZA FIN AVANZA FIN INICIA-ACTIVIDAD INICIO ENTRAALRECINTO GIRA DERECHA RECORREHILERA MIENTRAS NADA-ENFRENTE HAZ INICIO AVANZA GIRA-DERECHA RECORRE-HILERA FIN BUSCASALIDA DEJATROMPOS FIN FIN-ACTIVIDAD FIN-PROGRAMA

CONCLUSIONES
La ultima actividad de Karel podra parecer bastante simple, pero la longitud del programa nos indica que no lo es tanto. De hecho es el programa ms largo que hemos preparado, pero si t la haz ejecutado, habrs visto que el robot lo sigue sin problema. A partir de aqu, tu puedes seguir adelante construyendo programas ms complejos, su solucin ser motivo de satisfaccin y alegra al observar al robot realizando las tareas que t le ordenas. Algunas posibles tareas podran ser la comparacin del nmero de trompos en dos recintos para decidir cual es mayor, obtener la suma, la resta, la multiplicacin y la divisin con los trompos en los dos recintos. De cualquier manera, nosotros esperamos que este contacto con Karel, te haya enseado algunas ideas importantes, como: La importancia del razonamiento lgico y de la especificacin puntual que se necesita para resolver algunos problemas. La importancia de los lenguajes formales o matemticos que dan precisin total a ideas que de otro modo quedan confusas. La importancia que puede tener el razonamiento lgico y estructurado para resolver problemas. HASTA PRONTO.