Sei sulla pagina 1di 5

Karel el Robot

Karel el Robot

Desarrollador(es)

Richard E. Pattis, Jim Roberts, Mark Stehlik Introducing Objects with Karel J. Robot

Informacin general

Paradigma

Programacin estructurada

Apareci en

1981

Diseado por

Richard E. Pattis1 2

ltima versin estable Karel 0.6 (31 de diciembre de 2000; hace 13


aos)

Implementaciones

Educativo

Dialectos

Karel

Influido por

Pascal

Ha influido a

Karel++, Karel J

Sistema operativo

Multiplataforma

Licencia

GPL v2, junio de 1991

Karel el Robot es un emulador de un robot, distribuido como software educativo de cdigo abierto dirigido a principiantes en el estudio de lenguajes de programacin, dando al iniciado slidas bases en cuanto al diseo en un ambiente de programacin estructurada3 como Pascal.1 2 Fue creado por Richard E. Pattis en su libro Karel The Robot: A Gentle Introduction to the Art of Programming (Karel el Robot: Una agradable introduccin al arte de la programacin). Pattis us el lenguage en sus clases en la Universidad Carnegie Mellon, con el objetivo de que sus estudiantes aprendiesen a pensar de manera ordenada y efeciente. El lenguaje se llamara despus como el escritor checo que introdujo la palabra robot: Karel apek, en su obra R.U.R. (Robots Universales Rossum). Funciona en la mayora de sistemas basdos en Unix Karel el Robot es adems usado oficialmente como una de las pruebas en la Olimpiada Mexicana de Informtica.
ndice [ocultar] 1 Historia 2 Filosofa o o o 2.1 Karel el Robot 2.2 Ejemplo 2.3 Karel++ y Karel J Robot

3 Enlaces externos 4 Referencias

Historia[editar]
Karel el Robot fue escrito originalmente (en Wiley, Colorado, Estados Unidos; 1981) por Richard E. Pattis (graduado de laUniversidad de Stanford), para iniciar a los novatos en la programacin estructurada del lenguaje Pascal2 Desde ese entonces ha tenido cambios fundamentales. Jim Roberts (en ese entonces profesor en la Universidad Carnegie Mellon, ahora est jubilado)4 y Mark Stehlik (profesor en la Universidad

Carnegie Mellon, en la Escuela de Ciensas de la Computacin)5 , ayudados por Pattis, desarrollaron la segunda versin en 1995, en la cual incluyeron mucho material sobre la descomposicin de un programa estructurado.2 Luego, Joseph Bergin (profesor en la Universidad Pace) escribe los lenguajesKarel++ y Karel J con la participacin de otros tres desarrolladores en 1997, realizando cambios sustanciales al libro anteriomente citado arriba de esta seccin y generando los libros Karel++: A gentle introduction to the art of Object-Oriented Programming(Karel++: una agradable introduccin al area de la Programacin Orientada a Objetos) y Karel J Robot: A gentle introduccin to the art of Object-Oriented Programming in Java (Karel J Robot: una agradable introduccin al arte de la Programacin Orientada a Objetos en Java), para introducir a los estudiantes en la programacin orientada a objetos en C++ y en Java, repectivamente.2 Desde entonces, el seor Bergin ha escrito para la siguiente versin de Karel el Robot: Karel J. Robot (que puede considerarse la evolucin de Karel el Robot), con una sintaxis fuertemente basada en Java, as mismo se le agregaron datos en esta mezcla didctica. Karel J. Robot, se publica nicamente en la pgina web que se encuentra ms abajo en la seccin enlaces externos de este mismo artculo.2

Filosofa[editar]
Todas las versiones de Karel se basan en un conjunto de patrones pedaggicos para la educacin virtual, creados por el seor Bergin, siendo el ms importante el mtodo Early Bird; este patrn sugiere que en el diseo de un curso de la materia que se ensea, se ha de encontrar la idea ms importante y empezar con eso.6 7

Karel el Robot[editar]
En Karel el Robot originario de Karel J Robot, la idea ms importante ha sido el uso de la abstraccin de procedimientos, por lo tanto, Karel el Robot inicia con los procedimientos, as los estudiantes ven los procedimientos antes que cualquier otra cosa en el lenguaje Karel. La lengua humana est includa en los procedimientos (sin parmetros) por esto los estudiantes pueden escribir sus procedimientos para resolver problemas. Otro punto clave en la metodologa pedaggica de Karel es el uso constante de las metforas. El concepto de un robot es bien conocido por los estudiantes, lo que facilita homologar un procedimiento de Karel con una visin sobre la porgramacin orientada a objetos, puesto que los robots tienden a comportarse coherentemente con lo que se les ordena, lo que facilita a los estudiantes la comprensin de lo que ocurre en un programa Karel. Esta es una visin mucho ms simple para los noviciados que la analoga con laarquitectura de von Neumann y su uso en la oficina de correos de los EE.UU. (la oficina de correos de los Estados Unidos de Norteamrica, compr el ordenador UNIVAC I, que fue construido basado en dicha arquitectura) para la comprensin de la memoria de almacenamiento y sus variables, lo que es fundamental para la enseanza (en cuanto al paradigma de procedimientos se refiere).2

Ejemplo[editar]
Lo siguiente es un ejemplo simple de la sintaxis del lenguaje de programacin Karel
INICIO-DE-PROGRAMA DEFINE giraderecha COMO INICIO giraizquierda; giraizquierda;

giraizquierda; FIN INICIO-DE-EJECUCION REPITE 3 VECES INICIO giraderecha; avanza; FIN apagar; FIN-DE-EJECUCION FIN-DE PROGRAMA

Karel++ y Karel J Robot[editar]

Captura de pantalla de Karel, software utilizado en la OMI

En Karel++ y en Karel J Robot, comprender el polimorfismo dinmico es el concepto principal en su enseanza, sin embargo esto dependende en gran medida de la creacin de subclases. Por lo tanto, las clases y las subclases es el primer tema que se ensea conKarel++ y Karel J, para lograr as que los estudiantes escriban sus clases y subclases. Con esto se hace hincapi en la dificultad de programar sin encapsulacin basadas en la clase, para luego pasar al polimorfismo propiamente dicho, con esto se logra que la programacin orientada a objetos sea ms fcil de entender y ms natural. Esto se logra atravs del nfasis de la encapsulacin de clases y, como el robot (objeto), est en control de su cdigo, as ste nunca realiza una accin impuesta, sino que responde a los mensajes. Esta la es la fortaleza de la metfora del robot.2 En la superficie, Karel++ y Karel J Robot se parecen mucho a Karel el Robot, pero el nfasis constante en el desarrollo de nuevas clases para lograr as nuevas fuciones y el carcter activo e independiente del robot, aunado a la posibilidad de utilizar varios robots en el mismomicromundo le da al estudiante una idea muy diferente sobre la naturaleza de la abstraccin que el original Karel el Robot.2 Se introduce as, la concurrencia de varios robots, ya que un slo comando de Karel J el Robot y Karel++ necesita mucha explicacin, esto no ocurre en Karel el Robot, puesto que siempre hay un nico robot. Sin embargo en Karel++ la concurrencia de varios robots se introduce para enfatizar la nataruleza esencial de los objetos. La concurrencia es difcil en C++, por lo tanto Karel++ qued con un slo subproceso haciendo necesaria la utilizacin de una metfora, un tanto forzada, para que parezca natural. Esta restriccin fue eliminada en Karel J Robot.2

Curiosamente, la idea de estado mutable, est implcita en la filosofa de Karel. Los robots pueden transitar por un mundo en el que hay paredes y zumbadores, sin embargo no est la nocin de estado privado. Por lo tanto, la programacin de robots es casi prctica, tanto en el mundo real como en el nico estado en el mundo de Karel. Karel J Robot utiliza el estado para mantener las referencias a otros objetos para que se puedan delegar acciones a ellos.2

Potrebbero piacerti anche