viernes, 27 de abril de 2012

Robótica en la educación


La idea de tener robots en la escuela puede parecer algo futurista si pensamos en máquinas que hablen y se comporten como seres humanos, sin embargo, aunque no se ha llegado a esos niveles el avance de la tecnología ha permitido que casi cualquier persona pueda construir prototipos capaces de detectar calor, identificar formas o seguir rutas por sí solos.
Leer más...

sábado, 21 de abril de 2012

Un poquito de programación (previo a LOGO y Scratch)

Bien, hemos visto la historia de LOGO, de Scratch, de dónde parten, además también vimos la historia de un lenguaje de programación bastante difundido: BASIC. Majenamos conceptos como programación estructurada y objetual pero déjenme explicar un poquito algunos de estos términos antes de entrar en materia del post. Actualmente TODOS hacemos programación, programamos nuestras actividades, programamos nuestras grabadoras, programamos nuestros reproductores y otros programamos cosas más complejas. La programación consiste en organizar un conjunto de actividades (en su mayoría son órdenes) de una manera lógica, tienen un punto de inicio y un punto de fin, además tienen el objetivo de realizar un trabajo o proceso, si no me creen, hagan su itinerario de actividades del día anotando lugar al que fueron, hora y qué hicieron, verán dónde empiezan, dónde terminan e incluso encontrarán que pudo existir una manera más eficiente.

Para lo que refiere a lenguaje de programación, pues todos hablamos un idioma, utilizamos por lo menos un lenguaje para comunicarnos con otras personas, los médicos tienen su lenguaje lleno de "itis", "aleas", etcétera, por citar un ejemplo. La finalidad es darse a entender dentro de una comunidad. Se siguen reglas que dan sentido y significado a lo que queremos decir. Igual con la programación, existen diversos lenguajes como BASIC, LOGO, PASCAL, C, C++, PHP, JAVA, COBOL, LISP, PROLOG (algunos nos suenan de la sesión con el Dr. Gándara) Algunos se parecen entre sí (C, C++, PHP,JAVA) otros cambian mucho (LISP, PROLOG).

Existe toda una genealogía de los lenguajes, misma que no trataré aquí sino en otro foro, pero también existe una evolución. ¿Recuerdan eso de "spagetti code"? (También hay otro término curioso "scrambled code" que refiere a un código donde se revuelven partes de un lenguaje con partes de otro, las páginas de internet son un buen ejemplo) eso deriva de una primera forma de programar, la programación lineal, tal como lo hacía BASIC, ahí seguíamos una secuencia, misma que podíamos alterar con el famoso (y "letal") GOTO (o "ir a"), para solucionar eso se desarrolló una programación donde se podía agrupar un conjunto de instrucciones con un nombre (a esto se le llamó procedimiento o función) y donde necesitara esas instrucciones simplemente las mandaba a llamar por su nombre, a esto se le llamó programación estructurada, de aquí surgió la idea de agrupar variables y procedimientos para hacer cosas más complejas, por ejemplo: las variables "nombre", "edad", "sexo", "nacimiento" junto con los procedimientos "nacer", "crecer", "morir", "trabajar", "bautizar", "cumpleaños" pueden definir a una "persona", esta "persona" en la computadora se denomina "objeto" y la programación que se utiliza se dice "orientada a objetos".

Por otro lado, nos mencionaron "compilado" e "interpretado". Imaginen que vamos a otro país y tenemos una guía turística, obviamente escrita en el idioma del país, si no sabemos el idioma tenemos que recurrir a personas que hablen nuestro idioma y el del país para que nos traduzcan y nos ayuden, eso hace que nuestra visita sea lenta, necesitamos INTÉRPRETES, lo bueno es que no importa si cambia la información, estas personas nos pueden seguir ayudando sin más lio. Imaginemos el mismo caso solo que esta vez nos prevenimos y... traducimos la guía a nuestro idioma, ahora la visita es más ágil, sabemos a dónde ir y casi sin ayuda, recopilamos y COMPILAMOS los datos en una guía entendible para nosotros, ¿y si entre que terminamos de traducir o compilar nuestra guía y nuestra visita las cosas cambian? pues tenemos que volver a recopilar la información y traducirla (RECOMPILAR). Lo mismo pasa con los programas, un programa en un lenguaje interpretado es rápido para cambiar pero lento de procesar, mientras que un programa con un lenguaje compilado es lento de cambiar pero rápido de procesar.
Leer más...