Latest Posts:

Mostrando las entradas con la etiqueta codigos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta codigos. Mostrar todas las entradas

10 de septiembre de 2014

Blocky: Recursos para enseñar programación a los niños

Blocky es un lenguaje de programación para niños que funciona vía web y con una interfaz gráfica. Se programa arrastrando y soltando piezas y ni siquiera hay que teclear.

Además de este y otros similares están todos los recursos de Code.org, que se creó el año pasado como organización sin ánimo de lucro para difundir la programación como parte de la educación básica de los jóvenes. Desde allí se puede acceder a todo tipo de material para niños y profesores. Hay más en este artículo del New Scientist: Want to help your kids code? Here's how.

Ahora que en Madrid será pronto obligatoria la asignatura de Programación para los niños de secundaria (entre 12 y 15 años) se hacen más necesarios que nunca recursos como esos para enseñar los jóvenes. Aunque hay quien piensa que el mayor problema no son precisamente los pequeños, que desde muy temprana edad programan los aparatos del hogar, los dispositivos móviles y los videojuegos… sino los profesores que nunca han llegado a mojarse en el terreno de la tecnología, el inglés, Internet… o todo lo anterior a la vez.

Para entender un poco de lo que hablamos y su relación con el futuro de los niños según una de las previsiones de Code.org en el año 2020 habrá en Estados Unidos una demanda de 1,4 millones de empleos relacionados con la informática frente a tan solo 400.000 estudiantes especializados; allí el 90 por ciento de las escuelas tampoco ofrecen clases de programación

Fuente:

Microsiervos

15 de julio de 2014

Kibo, el robot que enseña a niños a programar


Un gadget que ayuda a diversos procesos de aprendizaje en edad temprana.

El aprendizaje de programación a una edad temprana se ha convertido en uno de los retos para las personas dedicadas a la enseñanza. Los ingenieros en Boston Device Development y la startup educacional KinderLab Robotics ayudaron a la creación de un gadget para despertar ese tipo de habilidades en niños de 4 a 7 años de edad.


Kibo es un robot que puede ser programado con sencillas tareas por medio del uso de bloques de madera con códigos de barras escaneables. Esto permite que no se tenga que utilizar ningún tipo de app o dispositivo móvil como interfaz complementaria, lo que ayuda a centrar la atención de los niños en el mismo robot. Además, Kibo puede ser personalizado y decorado para reafirmar el apego de los jóvenes programadores con su robot.

Procesos de diseño, funciones de ejecución y resolución de problemas son los hábitos que los desarrolladores de Kibo pretenden fomentar en aquellos que utilicen el dispositivo.

Programas hechos de bloques de madera son material tangible, por lo que se pueden compartir fácilmente. Los programas pueden ser comentados y cotejados en un círculo social. Bloques de programación de madera son, naturalmente, familiares y cómodos para los niños, ya que elementos manipulables se utilizan en las aulas de primera infancia para enseñar formas, tamaño y colores.
Este robot diseñado originalmente por la profesora Marina Umaschi Bers de la Universidad de Tufts en Boston consiguió recientemente su meta de financiación en la plataforma Kickstarter. Se planea su venta y distribución para finales de este año.

Fuente:

Fayer Wayer

1 de junio de 2014

El sistema operativo BASIC cumple 50 años





BASIC, el lenguaje de programación que acercó la informática a millones de personas sin demasiados conocimientos, cumple este 1 de mayo 50 años. Sus característicos comandos en forma de listado fueron el primer contacto de varias generaciones con los ordenadores y todavía hoy se usan algunos lenguajes derivados de él.


Fue diseñado en 1964 por dos matemáticos-informáticos estadounidenses en la escuela de New Hampshire en la que trabajaban, con el objetivo de acercar el uso de los ordenadores (entonces eran poco más que torpes máquinas con gigantismo) a cualquier estudiante. Incluso a los que no sabían de informática.

Con la llegada de los ordenadores personales durante los años 70, BASIC se popularizó aún más por la simplicidad de su uso: en líneas sucesivas, ordenadas con números, se iban escribiendo las órdenes que el programa debía leer y ejecutar (PRINT para mostrar un mensaje en pantalla, GOTO para saltar a otra línea...).

Tras sus siglas, "Código de Instrucciones Simbólicas Multipropósito para Principiantes", se escondía la posibilidad real de que cualquiera con paciencia e interés desarrollase sus propios programas. Y precisamente por eso fue la entrada de muchos al mundo de los ordenadores.

El primer progama de Gates

El propio Bill Gates, creador de Microsoft, desarrolló su primer programa en BASIC con 13 años recién cumplidos: un juego de tres en raya en el que los usuarios competían con el ordenador.

Durante los 80, la mayor potencia de las máquinas facilitó que otros lenguajes como Pascal destronasen a BASIC en el ámbito escolar y supuso la llegada al mercado doméstico de aplicaciones listas para usar. Ya no tenía sentido que los consumidores desarrollasen sus propios programas.

BASIC había sido destronado, aunque en realidad nunca murió del todo y, de hecho, sigue vivo en la familia Visual Basic.

Quienes sientan nostalgia, o crean que sus hijos podrían seguir los pasos de sus padres en el mundo de la informática, tienen una oportunidad de revivir el amanecer de la revolución de la informática doméstica con Small Basic, un rediseño publicado por Microsoft en 2011, o usando Petit Computer para Nintendo 3DS y Nintendo DSi.

Pero no todo es color de rosa para el BASIC, porque también existen detractores. En Microsiervos nos los recuerdan así:

Claro que para Edsger Dijkstra, uno de los más grande guruses en esto de los ordenadores,
Es prácticamente imposible enseñar programación correctamente a estudiantes que han estado expuestos al lenguaje BASIC con anterioridad. Como potenciales programadores, tienen la mente mutilada sin esperanza alguna de regeneración.

Tomado de:

El Economista

Microsiervos

Neo Teo




7 de enero de 2014

Alan Turing, padre de la computación y condenado por ser gay, consigue el 'indulto real'

  • Encarcelado y sometido a castración química, se suicidó en 1954 
  • Este 'perdón' real llega casi 60 años después de su trágica muerte 
  • Sólo cuatro indultos reales se han otorgado desde la II GM 

La figura del matemático Alan Turing, padre de la computación moderna y hombre clave para la victoria británica en la Segunda Guerra Mundial por crackeo del código "irrompible" nazi Enigma, ha recibido finalmente un indulto real que trata de enmendar su condena penal por ser homosexual, un hecho que le llevó al suicidio.

La máquina electromecánica de Turing, considerada una precursora de los ordenadores modernos, logró desbloquear el código utilizado por los submarinos alemanes en el Atlántico. Su trabajo en Bletchley Park está considerado clave para el final de la II Guerra Mundial.

Sin embargo, Turing fue despedido de su puesto de trabajo y se sometió a una castración química mediante inyecciones de hormonas femeninas tras ser declarado culpable de tener relaciones sexuales con un hombre, un delito considerado grave en 1952. De hecho, las prácticas homosexuales fueron ilegales en el Reino Unido hasta 1967 .

Turing se suicidó en 1954, 41 años de edad, tras ingerir cianuro.

El Ministro de Justicia británico, Chris Grayling, afirmó que el indulto de la reina Isabel entra en vigor inmediatamente, como merecido homenaje a "un hombre excepcional, con una mente brillante". "Su brillantez se puso a prueba en Bletchley Park durante la Segunda Guerra Mundial , donde fue esencial para romper el código 'Enigma', lo que ayudó a poner fin a la guerra y salvar miles de vidas", dijo Grayling en un comunicado.


Máquina de descrifrado de códigos nazis. E.M.

"Su vida posterior se vio ensombrecida por su condena por la actividad homosexual, una sentencia que ahora consideraría injusta y discriminatoria y que ahora ha sido derogada", dijo. Sólo cuatro indultos reales se han otorgado desde el final de la Segunda Guerra Mundial, ha afirmado un portavoz del ministerio.

Stephen Hawking y otros 10 eminentes científicos habían hecho campaña durante años para lograr el indulto para "uno de los matemáticos más brillantes de la era moderna". De hecho, uno de esos científicos, Paul Nurse, presidente de la Royal Society, ha afirmado: "La persecución de este gran científico británico por su sexualidad fue trágica y estoy encantado de que ahora podemos centrarnos únicamente en la celebración de su legado".

Ya en 2009, el entonces primer ministro Gordon Brown se disculpó públicamente en nombre del gobierno por "la forma atroz" en la que Turing fue tratado, pero los activistas exigieron un indulto completo.


Imagen de Alan Turing E.M.

En mayo de 2012, se presentó una iniciativa ante la Cámara de los Lores en el Parlamento británico encaminada a conceder un indulto legal a Turing, y en julio de este año ganó el apoyo del gobierno.

Cameron ha descrito a Turing como "un hombre extraordinario que jugó un papel clave que ahorró sufrimiento a este país en la Segunda Guerra Mundial". "Su acción salvó incontables vidas y, además, dejó un legado nacional extraordinaria a través de sus logros científicos importantes, por lo que a menudo se le conoce como el padre de la computación moderna", dijo Cameron en un comunicado.

Su trabajo en Bletchley Park, una casa de campo aislada al norte de Londres, se hizo público en la década de 1970, cuando se reveló el papel del brillante matemático en la guerra. Los criptógrafos que trabajaban ayudaron a acortar la Segunda Guerra Mundial unos dos años, al lograr descifrar alrededor de 3.000 mensajes militares alemanes al día.

El equipo de Turing descifró el código 'Enigma', que los alemanes consideraban como irrompible, y diseñó y desarrolló Colossus, una de las primeras computadoras programables.

Pero después de la guerra, el primer ministro Winston Churchill ordenó la destrucción de los ordenadores Colossus y 200 máquinas 'Turing bombe' para mantenerlos en secreto frente a la Unión Soviética.
Fuente:

6 de enero de 2014

Encuentran un segundo código genético en el ADN

adn

Los científicos han descubierto que en nuestro ADN se oculta otro código. Este segundo código contiene información que cambia la manera en que los científicos leen las instrucciones contenidas en el ADN.

Desde que el código genético fue descifrado en la década de 1960, los científicos han asumido que se utiliza exclusivamente para escribir información sobre las proteínas. Por eso los científicos de la Universidad de Washington se sorprendieron al descubrir que los genomas utilizan el código genético para escribir en dos idiomas separados. Uno describe cómo se hacen las proteínas, mientras que el otro indica a la célula cómo se controlan los genes. Un código se escribe encima del otro, por eso el segundo se mantuvo oculto durante tanto tiempo.

“Durante más de 40 años hemos asumido que los cambios en el ADN que afectan el código genético únicamente afectaban la manera cómo se hacen las proteínas. Ahora sabemos que por culpa de esta suposición tan básica acerca de la lectura del genoma humano no veíamos la mitad de la información. Estos nuevos resultados destacan que el ADN es un dispositivo de almacenamiento de información increíblemente potente que la naturaleza ha explotado plenamente de formas inesperadas”, dice el autor del estudio, John Stamatoyannopoulos.

El código genético utiliza un alfabeto de 64 letras que se llaman ‘codones’. El equipo de la Universidad de Washington descubrió que algunos codones, conocidos como ‘duones’, pueden tener dos significados, uno relacionado con la secuencia de la proteína y el otro relacionado con el control de los genes. Estos dos significados parecen haber evolucionado en concordancia entre sí. Se supone que las instrucciones de control de genes ayudan a estabilizar ciertas características beneficiosas de las proteínas y normalizan su proceso de creación.

El descubrimiento de duones tiene importantes implicaciones sobre cómo interpretan los científicos y los médicos el genoma de un paciente y abrirá nuevas puertas para el diagnóstico y tratamiento de diferentes enfermedades.

El estudio está publicado en la revista ‘Science‘. 

Fuente:

2 de octubre de 2013

Criptografía: Entre el lenguaje y las matemáticas



Durante los últimos años, se ha hablado mucho sobre la seguridad en Internet y los peligros que tiene enviar tus datos. La solución que nos ofrecen: encriptar. Las páginas de los bancos, o de comercio electrónico, vienen encriptadas (lo distinguiréis porque en la barra de la dirección, en vez del típico http, veréis https). Pero ¿Sabemos realmente qué es la encriptación?¿En qué consiste?
Teoría clásica de la comunicación y encriptación
Una visita a la wikipedia ya nos deja una definición bastante exacta: "Criptografía (del griego κρύπτω krypto, «oculto», y γράφως graphos, «escribir», literalmente «escritura oculta») tradicionalmente se ha definido como la parte de la criptología que se ocupa de las técnicas, bien sea aplicadas al arte o la ciencia, que alteran las representaciones lingüísticas de mensajes, mediante técnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes."
Para entender bien la definición, primero hay que entender como se produce la comunicación de un mensaje:

Como vemos, en todo mensaje hay un emisor (emite el mensaje), un receptor (quien lo recibe), un canal por el que se envía el mensaje y un código. El código es el sistema común que hace que el receptor entienda el mensaje. Un ejemplo clásico es el propio idioma, que es comprensible por aquellos que lo hablan. En el código es donde entra en marcha la criptografía. De hecho, cuando alguien habla en un idioma que desconocemos, en cierta manera están hablando de forma "cifrada" para nosotros. Este no es un hecho menor, dados casos como el del ejercito norteamericano, que usaron Indios Navajos como operadores de radio, para que los Japoneses no se enteraran de las conversaciones. Pero el objetivo de la criptografía es obtener un método genérico de encriptado, independiente del idioma. Hoy en día, este sistema no tendría mucho éxito, dada la cantidad de buenos traductores que hay por Internet.
Imaginemos un Capitán que quiera enviar información a un General que se encuentre lejos, y teme que al mensajero le atrapen las tropas enemigas. Si leyeran ese mensaje, sería fatal para ellos, pues podrían enterarse de sus planes. Así que lo mejor es escribirlo cifrado.
Los principios: el cifrado de "El Cesar"
Ya los antiguos y belicosos romanos se dieron cuenta, como bien decíamos antes, de lo importante que era que el enemigo no pudiera interceptar sus comunicaciones. Pero como ésto era inevitable, crearon el primer sistema de cifrado, conocido como el cifrado de "El Cesar", por ser las tropas del ejercito romano en usarlo. Aunque el nombre técnico sería el de "Cifrado por Trasposición".
Este sistema de cifrado seguía una lógica muy simple: elegías un coeficiente de trasposición (vamos, eliges un número), por ejemplo el 2. Así que lo añadías a las letras del abecedario. De tal manera que sustituías las letras originales, por la letra que se encontraba dos posiciones más adelante. Por ejemplo, sustituías la A por la C, la B por la D, etc...  Para ver un ejemplo, supongamos el siguiente mensaje: "Saludos a todos". Le aplicamos un coeficiente de trasposición 2, con lo que quedaría: "Tcnwfqt c vqfqt". Algo totalmente ilegible e incongruente para alguien que no conozca dicho coeficiente.
Vulnerabilidades
Este sistema de cifrado se mostró altamente eficiente para textos cortos, pero daba problemas con textos largos. Entonces era más fácil descifrarlos. Esto se debía a que realmente seguía manteniendo la estructura propia del lenguaje. Es decir, la palabra "Saludos" siempre se escribiría "Tcnwfqt " con un coeficiente de trasposición = 2. De tal manera que, si el texto estuviera en español, sabremos que la letra que aparece en mayor número de ocasiones es la 'A' (ver Wikipedia: Frecuencia de aparición de letras). Entonces si vemos que en un texto la letra que más aparece es la 'C',  podemos deducir el coeficiente de trasposición. A este método se le llama "Criptoanálisis Estadístico".
Mediante este método, cuanto más largo es un texto, más fácil es obtener una estadística fiable, que con un texto corto. Aún así, conociendo el método, solo es cuestión de paciencia.

Métodos con Claves: Critografía Simétrica y Asimétrica

Dada la importancia de controlar el tráfico de datos, el cifrado ha ido cogiendo gran importancia hasta nuestros días. De esta manera, se ha buscado formas de encriptar que, aunque sean públicos y conocidos, no permitan hacer un simple criptoanálisis estadístico para obtener el mensaje deseado.
La idea inicial del cifrado es el uso de una palabra clave conocida solamente por el emisor y el receptor (deseado, claro. El que reciba el mensaje va a ser un receptor, pero éste sólo será informativo si es capaz de decodificar la información que el mensaje contiene). De esta manera la palabra clave serviría para encriptar y desencriptar la información.
Una forma sencilla usada en el siglo XVII, fué una variante del método de trasposición. Asignemos un número a cada letra del abecedario, de tal manera que la A = 001, la B = 002, etc... Ahora cojamos el texto: "Saludos". Y elegimos como palabra clave ABETO. Si en vez de escribirlo con palabras, lo pasamos a números, el texto quedaría: '022001013024005018022' y la palabra clave sería '001002006023018'.
Ahora cogemos ambos códigos numéricos y los ponemos uno encima del otro, en grupos de tres, sumando el primer código de la primera letra del texto a la primera letra de la clave, y así, sucesivamente. En caso de que la clave no llegue a cubrir la longitud del texto, la repetimos, hasta donde haga falta...
022 001 013 024 005 018 022
+
001 002 006 023 018 001 002
======================
023 003 019 047 023 019 024

Como vemos la suma de la letra U, sumada a la letra T, se escapa del alcance del abecedario. Que tiene un total de 29 letras (Ver Método DIMQV, que se está tomando como base en este ejemplo, aunque pudiera no ser del todo exacto). En este caso, lo más sencillo es restarle 29 a 47, que daría 18. De tal manera que el texto cifrado quedaria: "TCPOTPU". Cuando se recepcionara el texto, solo tendríamos que hacer la operación inversa para obtener la clave final. Este ejemplo es muy sencillo, dado que hemos asignado simplemente números a las diferenes letras y hemos hecho una simple suma. Los sistemas actuales usan complejas ecuaciones para que el cifrado sea más efectivo.
Este sería un ejemplo de lo que se conoce como Criptografía Simétrica, o de una sola clave. La mayor parte de los sistemas de encriptación actuales están basados en sistemas de Criptografía Asímetrica, de llave pública y llave privada, en la que el programa crea una clave privada (de forma autónoma) que no es conocida más que por él (mediante sistemas matemáticos de cálculo) y el usuario introduce una clave alfanumérica (es decir, formada por números y letras, así como caracteres especiales, como la @ o la #) que puede dar a otras personas (llave pública).
En todos los programas informáticos que se usan actualmente (en webs o en Windows), las contraseñas van encriptadas con Criptografía Simétrica, en ficheros, que después son leídos para hacer la comparación pertinente. En sistemas Unix usan sistemas que llaman de "one way encription", encriptación de una sola vía, que se trata de sistemas de encriptación que no se pueden desencriptar.
Fuente:

30 de julio de 2013

¿Quién inventó el código de barras?



El código de barras revolucionó la compra de productos en todo el mundo.


Una tarde de 1971 el ingeniero George Laurer, de IBM, le confesó a su jefe:

—No hice lo que me pidió.

A Laurer, residente de Raleigh, Carolina del Norte, le habían encargado diseñar un código que pudiera imprimirse en las etiquetas de los alimentos y que fuera compatible con los escáneres que en ese tiempo se estaban probando en las cajas registradoras de los supermercados de Estados Unidos. Le dijeron que tomara como base el código visual con forma de ojo de buey creado en los años 40 por N. Joseph Woodland. Pero Laurer pensaba que esa figura planteaba un problema: “Cuando se imprime un círculo con una prensa de alta velocidad, algunas partes quedan embadurnadas”, señaló, “así que he creado mi propio código”.

Su sistema, un patrón de barras, se podría leer aunque la impresión no fuera muy buena.

Ese patrón se convirtió en la base del Código Universal de Producto (UPC, por sus siglas en inglés), y fue adoptado por un consorcio de empresas de alimentos en 1973, cuando los cajeros aún marcaban los precios a mano, uno por uno. En menos de una década, el UPC —y los lectores ópticos— llevaron la era digital a los supermercados. Los empleados ya podían marcar el precio de una caja de cereal con un simple giro de muñeca. “Cuando la gente se entera de que yo inventé el UPC, supone que me hice rico”, dice Laurer. Pero no recibió regalías por esta invención, la cual IBM no patentó.

Fuente:

Selecciones

14 de marzo de 2013

Aprender a programar como se aprende a leer

Un número creciente de países enseña a los alumnos a escribir código
El objetivo es formar a creadores y no solo a meros consumidores
Potencia la creatividad y la mente lógica

Desde los seis años se puede aprender a programar. / Jamie Grill (Getty Images)

“¡Hola chicos! Olvidaos de ser doctores, estrellas del fútbol o raperos. Aunque os vacilen y llamen frikis en el colegio, el futuro está en los ordenadores”, alerta en un vídeo Bill Gates. El fundador de Microsoft comparte pantalla con el de Facebook, Mark Zuckerberg, que apostilla: “Aprender a programar no significa querer conocer todo de la ciencia de la computación o ser un maestro”. Ambos apoyan a la fundación Code.org, que pretende introducir la programación en las escuelas de Estados Unidos. Tan solo en una de cada diez se aprenden los códigos. A Code.org le resulta insuficiente, pero el porcentaje está a años luz de España, donde los niños navegan sin parar por la Red sin saber desarrollar sus propias aplicaciones.

“No sirve de nada que te enseñen unas herramientas como Word que habrán desaparecido o habrán cambiado mucho cuando terminen sus estudios. Cualquier aplicación, si está bien diseñada, no se tarda en aprender”, sostiene Luis de Marcos, profesor de Informática en la Universidad de Alcalá de Henares. “Hay que usar el ordenador como herramienta para resolver problemas. Lo que los anglosajones llaman el computational thinking. Porque el debate es: ¿somos creadores digitales o consumidores de contenidos?, ¿queremos que los chavales agoten en 15 minutos la tarifa de datos del móvil o que desarrollen algo y compartirlo?”, prosigue.

A Juan Corzo, analista de tecnología con GPS, sin embargo, no le entusiasma la idea de que su hija Tala, hoy de dos años, aprenda a programar con seis. “Que estructure su cabeza como quiera. Encuentro más útil que a esa edad le enseñen con el método Ábaco a sumar o multiplicar números largos. Para el día a día no hace falta programar. Ayuda a ordenar las ideas, pero debería aprenderse como pasatiempo. Así empezaron los grandes genios. Es como escribir. Tienes una idea, piensas en los personajes, en la estructura y en cómo los introduces en la historia”.

¿Podría incluirse entre los contenidos escolares en España? El panorama no es muy halagüeño
“Está bien que los niños aprendan las bases de la programación, pero también deben de conocer las herramientas. Aunque el mundo cambie, no todo es tecnología. 

Aprendiendo el Word o PowerPoint uno no sólo adquiere competencias informáticas, también lingüísticas, sociales y ciudadanas”, media Inés Andrés, coordinadora de TICS de Ineverycrea, una plataforma que asesora a los profesores en la integración de las tecnologías. Sostiene que sobre todo hay que aprender a trabajar en Red. “La ven como algo lúdico y no saben moverse por ella. Es curioso, no les dejamos solos en casa, pero no nos preocupamos de la Red. Mis alumnos en Burgos contactaron con un aula de Palencia. Se establecieron vínculos por carta, videoconferencia...”.



Conscientes de los beneficios de este aprendizaje, el Ministerio de Educación británico ha pedido ayuda a la industria para crear un nuevo contenido para las clases de informática. Finlandia e Israel ya han incorporado la programación a sus currículos escolares. La palabra “programación” asusta, pero los monitores no se cansan de repetir que resulta tan fácil de controlar como la lectura o la escritura.

¿Podría incluirse entre los contenidos escolares en España? El panorama no es muy halagüeño.

“Es verdad que los profesores son reticentes a la informática, pero tampoco se les pone fácil. No hay suficientes ordenadores y nadie se ocupa del mantenimiento, así que la mitad no funcionan”, asegura Ángeles Araguz, profesora técnica de FP y tutora del Centro de Formación de formadores de la Comunidad de Madrid. “Para impartir clase de programación tendría que existir un proyecto común de los profesores y que se enseñase en Física o Matemáticas. No hay tiempo para idearlo, como en Finlandia, y cuando se cierra la puerta del aula es el reino del docente”, prosigue esta profesora de un instituto de Vallecas.

Aunque en los centros haya medios, el personal docente no está preparado para acometer la tarea. “Un profesor con conocimientos básicos de informática en dos o tres meses aprende lo que tiene luego que enseñar”, cuantifica De Marcos. Comparte opinión Inés Andrés, profesora de Lengua: “Se están haciendo cosas interesantes, pero es algo nuevo y descoloca. Por eso, yo como consultora resuelvo dudas metodológicas. Aprender de forma autodidacta lleva mucho tiempo”.

En la sala 102 de la Facultad de Informática de la Universidad de Valladolid hay un oasis. Dan las cinco de la tarde y por tercer lunes consecutivo se llena con 18 niños de entre ocho y 13 años que quieren aprender scratch, una aplicación destinada a la creación de juegos para la web mediante una sencilla interfaz gráfica. Muchos no llegan al perchero y los monitores les ayudan a colgar el anorak. Cargan con un portátil desde casa, a veces tan pesado que les hace trastabillar. Todo normal y corriente hasta que abren la boca, mostrando una curiosidad inmensa y envidiable por todo lo que les rodea. Aquí adquirirán conocimientos que podrían servirles para crear los nuevos Google, Twitter o Zynga.

Es verdad que los profesores son reticentes a la informática, pero tampoco se les pone fácil
Los 18 pequeños se sientan en unas mesas hexagonales y despliegan sus ordenadores. “Son niños y necesitan por lo menos un metro de espacio. Mucho más que un adulto, porque no se sientan bien”, explica con media sonrisa Belén Palop, la coordinadora de este curso de scratch, el sistema de programación infantil ideado por el Massachusetts Institute of Technology (MIT). Efectivamente, están desparramados y ansiosos por empezar. Viven pensando en el lunes, el día que se entienden con niños que hablan el mismo lenguaje que ellos. Cada vez en más ciudades españolas se convocan masivos encuentros de estos locos por el scratch.

Lo primero es tener claro qué tipo de programa se quiere crear: narrativo o videojuego. Casi la totalidad se decanta por este último. “Quizá a las chicas —sólo hay tres— les gusten más las historias, pero a la hora de manejar el scratch no hay diferencias”, diferencia Palop. Seguidamente hay que plasmar en un papel A3 la idea a desarrollar en el ordenador. Se establece entonces un “compromiso” que los niños, dispersos como todos en la infancia, intentan saltarse. Por eso los dos monitores y Palop les remiten todo el tiempo a su planteamiento original que suele titularse Super Mario. Ansiosos dibujan y entran en scratch, que es en español y gratuito. Su lema se repite hasta la saciedad: “Imagina, programa y comparte historias, música, juegos y arte”.

Dibujan en la Red sus personajes y, añadiendo órdenes muy sencillas, estos monigotes empiezan a tener autonomía y movilidad. “Cuando consiguen pintar un simple punto o hacer que el gato maúlle, se emocionan”, dice Palop. Scratch se puede usar desde los seis o siete años, pero en este taller no admiten a estos menores porque necesitan la atención constante de un adulto. Casi todos son hijos de informáticos o hijos de padres sensibles a sus enormes ganas de aprender. “Mi hijo quería aprender a programar desde hace dos años. Yo, que soy informática, le enseñé a hacer páginas web, pero él quería también animaciones. Es muy curioso a sus 10 años. De mayor quiere ser ingeniero de montañas rusas y las diseña con un programa”, sostiene orgullosa Alicia Novo, madre de Daniel.

Ministerio de Educación británico ha pedido ayuda a la industria para crear un nuevo contenido
“No es solo que aprendan a programar, sino que desarrollan una mente lógica que les va a venir bien para cualquier faceta de la vida”, subraya Palop. A María Vegas, madre de Sabino, y a la de Daniel las convence que sus hijos trabajen en un proyecto en equipo, algo poco usual en las aulas, que convivan con chicos de otras edades sin complejos y, sobre todo, que durante unas horas se sientan entre iguales. “Me encanta que mi hijo no entre en Internet por las redes sociales, sino para mirar en YouTube un vídeo sobre parques de atracciones o seguir tutoriales”, explica Novo. Con el proyecto concluido, escriben un cuento con el proceso y, orgullosos, lo exponen a sus compañeros que no pierden el hilo. “Es increíble su desparpajo. No les cuesta hacerlo, cuando hay alumnos míos que lo primero que cuentan en público es su proyecto de fin de carrera”. También se asombra Pablo Espeso, uno de los monitores: “Entienden algoritmos que nosotros en primero de Informática desconocíamos. Matemática pura que ellos aplican naturalmente porque es más sencilla de lo que parece”. No cree que los niños lleguen a aburrirse: “Las posibilidades son infinitas. En informática hay pocas cosas que dominen del todo”.

Espeso pone a David Martín, de 13 años, como ejemplo de precocidad. Tímido, le cuesta reconocer que tiene ciertos conocimientos de Java. “Me interesé por Internet y sigo viendo tutoriales”. A su lado, Sabino Codesal, de 12 años, se acerca al micro de su portátil para grabar la banda sonora de su videojuego. Pide silencio a la concurrencia y tararea una melodía que recuerda a la Indiana Jones. Se comporta como el niño que es, por eso sorprende saber que en sus ratos libres estudia Alice, un sistema para hacer animaciones y escenarios en 3D.

Si el scratch deja con la boca abierta, ¿qué decir del mundo de la robótica que suena ya a ciencia ficción en manos de mini-hombrecitos? A ello se dedica el ingeniero en Telecomunicaciones Toni Ferraté, quien aburrido de programar para empresas en 2007 fundó Ro-botica, una tienda online y con sede física en Barcelona. “No se trata de aprender robótica, sino de aprender con robótica. Trasteando con el ordenador aprenden de los errores y de los aciertos de los demás compañeros y se reduce el fracaso escolar. El profesor adquiere un rol más de facilitador, guía, inspirador”, precisa. De esta forma, estos niños hipermotivados descubren la programación al controlar dispositivos reales de entrada y salida, física (energías, fuerza y velocidad) y conceptos matemáticos (trigonometría, geometría). “Si en el aula te dan una clase magistral llena de fórmulas ni entiendes ni recuerdas lo que te han contado. Sin embargo, con el robot entiendes la aceleración o la inercia. Nosotros hacemos materiales que expliquen los fenómenos físicos”, remarca Ferraté. Incluso, asegura, “coges un episodio histórico, lo recreas virtualmente y luego lo pasas al mundo real con los robots”.

Es indiscutible que al sector informático no ha afectado tanto el paro en España
Ferraté organiza talleres para profesores de infantil a la Universidad, asesora en el aula y monta competiciones de robótica. “Paradójicamente, cuando más se necesitan informáticos menos vocaciones hay. Antes éramos 200 en clase. Ahora son 20”. La comunidad universitaria es menor, pero es evidente que ha decrecido el interés en todo el Mundo. La fundación Code.org reclama la formación de más ingenieros de software. Sólo, cuantifican, lo son el 2,4% de los graduados hoy en su país —un porcentaje más bajo que hace una década— y tienen el doble de posibilidades de encontrar trabajo que la media universitaria.
Es indiscutible que al sector informático no ha afectado tanto el paro en España. “Tengo amigos que han perdido el trabajo y en pocos días les sale algo nuevo. Las empresas cierran pero enseguida hay alguien que les llama. Desde hace cinco años vivimos rodeados de programas. En los indicadores del coche, Instagram en el móvil, contenidos interactivos en la TDT...”, opina Juan Corzo, que vive en Valladolid.

“Cada vez más profesiones obligan a tener conocimientos de programación: la biogenética, las artes gráficas, el mundo empresarial… Así que la Informática se debería incluir en secundaria, en especial para los de ciencia y arte”, propone de Marcos. Por eso el pequeño Sabino, a quien nada ni nadie le retiene, lo tiene claro: “Cuando sea mayor quiero dedicarme a la biorobótica. Necesito aprender programación para hacer nanorobots y trabajar con células madre”.

Se integre o no la programación en clase, nadie pone en duda estas palabras del pensador chino Confucio (551-478 a. C.): “Me lo contaron y lo olvidé; lo vi y lo entendí; lo hice y lo aprendí”.

Programas y robots (Guía para docentes y padres de familia)

Scratch. Desarrollado por el MIT, permite contar historias, música o arte con un lenguaje muy fácil.

Small Basic. De Microsoft. Enseña a programar mediante código simplificado.

Alice. De la Universidad Carnegie Mellon. Es un sistema de programación 3D para crear animaciones.

Kodu. Un software de creación de videojuegos para niños adaptado al PC.

Bee-Bot. Para enseñar lenguaje direccional, a contar historias y programación desde los tres años.

Lego WeDo. Ideal para contar historias y cuentos construyendo modelos con sensores simples y un motor.

Ollo. Nuevo sistema para construir robots con muñecos y radiocontroles.

Arduino para robots. Placas para construir máquinas con sistemas y programarlas.

Fischertechnik.Un sistema de robótica integral y progresivo que puede empezar a utilizarse a los siete años.

Fuente:

El País Ciencia

Lea en los Archivos de "Conocer Ciencia":

Niños ingleses aprenderán a programar en el colegio

Colombia: Arranca programa piloto para enseñar computación a los niños

Diez plataformas innovadoras para aprender programación

 

16 de diciembre de 2012

Hawking pide el indulto para Alan Turing, condenado por homosexualidad en 1952

Alan Turing. | EM

Alan Turing. | EM
En 1952 el matemático Alan Turing, que descifró códigos nazis durante la II Guerra Mundial, fue condenado y castrado químicamente por ser homosexual. 60 años después Stephen Hawking y otros diez científicos se han dirigido al Gobierno británico para pedir su indulto póstumo.

En una carta publicada este viernes por el diario 'Daily Telegraph', el grupo de científicos insta al primer ministro conservador, David Cameron, a que "perdone formalmente" al matemático, que ayudó a descifrar el código alemán Enigma.

Con 43 años, Turing se suicidó en 1954 envenenándose con cianuro tras su condena por homosexualidad, entonces ilegal en el Reino Unido.

Además de la carta -firmada por científicos como el astrónomo real Martin Rees o Paul Nurse, responsable de la Royal Society-, se ha presentado una moción en la Cámara de los Lores para que Turing sea perdonado antes de que acabe el curso político.

En opinión de los firmantes, Turing fue "uno de los matemáticos más brillantes de la era moderna", que protagonizó el "extraordinario logro" de descifrar los códigos generados por la máquina Enigma, con la que los nazis enviaban sus mensajes secretos durante la contienda mundial.

Michael Grade, que preparó la carta, expresó su deseo de que Cameron use su autoridad para perdonar a Turing, teniendo en cuenta el "brutal" tratamiento que recibió: "Es algo de lo que nosotros, como país, debemos avergonzarnos", señaló en declaraciones a "The Telegraph".

Perdón sin indulto

En 2009, el primer ministro Gordon Brown pidió perdón al matemático que, según sus palabras, fue tratado de forma "horrible", pero no lo perdonó oficialmente.

Otro intento de indulto fue frustrado el pasado febrero por la coalición gubernamental de conservadores y liberaldemócratas. Tom McNally, del ministerio de Justicia, admitió que la decisión era "chocante" pero que el perdón "no se consideró apropiado ya que Turing fue propiamente condenado por lo que en esa época era un delito criminal".

"Tenemos el caso de alguien del que estamos muy orgullosos de llamar genio pero que no somos capaces de perdonar por tener la orientación sexual 'equivocada' en la década de los 60", lamentó Grade.


Fuente:

El Mundo Ciencia

4 de noviembre de 2012

Criptografía: Matemática para guardar secretos


No soy una persona que tenga mucho que esconder, pero hay cosas que más vale mantener en secreto. Por mi parte, lo típico: el pin del móvil y el de la tarjeta de crédito, las claves del banco, de las cuentas de correo, del ordenador, y poco más. Si alguien llegara a acceder a mi cuenta bancaria, dependiendo del día del mes, igual hasta le tocaba pagar, y en mi cuenta de correo tampoco hay ningún secreto de estado.

Sin embargo, hay secretos de los que dependen cosas mucho más importantes. A nadie se le escapa que la clave del correo de un presidente de gobierno o de un empresario importante es harina de otro costal. Con un poco de información privilegiada, ganar en la bolsa puede llegar a ser un juego de niños (está claro que no hay otra forma de acceder a esa información privilegiada que accediendo ilegalmente a sus correos, porque nadie duda de la integridad de los que manejan esa información ¿verdad?).

El caso es que aquella mañana de Lunes, durante el desayuno, alguien sacó el tema -creo que el sr. Lego- y, por supuesto, a pesar de mis intentos por desviar la conversación a ámbitos más mundanos, Sofía no podía resistir la tentación de enfrascarse en cualquier conversación que oliera a seguridad informática.

Ya, de perdidos al río -pensé- así que traté de volver a entrar en la conversación:

- ¿Os imagináis tener que mantener en secreto algo como los códigos de lanzamiento de unos misiles nucleares?

¡Vaya! Ya está Alberto con sus paranoias -pude leer en la expresión de el Sr. Lego.

Sofía, sin embargo, fue mucho más directa y menos sutil:

- ¡No digas tonterías! ¿tu te fiarías de alguien tanto como para darle las claves de lanzamiento de un misil nuclear? ¿Y si se vuelve loco y le da por desatar la tercera guerra mundial?

- Quizás se podría dividir la clave en varios fragmentos y repartirlos entre varias personas, así nadie sabe la clave completa y nadie puede lanzar los misiles por su cuenta -dije tratando de impresionar a Sofía.

- Entonces, si fuera un país enemigo sólo tendría que matar a uno de los que tienen la clave para evitar que pudiera lanzar los misiles... o bastaría esperar a que a alguno le de un infarto... ¡jaque mate!

- A ver -continuó el Sr. Lego- necesitamos una forma de repartir fragmentos de la clave entre varias personas de forma que ninguna conozca la clave completa, y además, queremos ser capaces de reconstruir la clave si falla una o más de una de las personas que tienen los fragmentos. Me parece que no es posible.

- Pues siento decir que te equivocas -sonrió Sofía.


En criptografía -continuó Sofía- para resolver este tipo de asuntos se utilizan los llamados esquemas de compartición de secretos. Para este caso concreto se utilizan los esquemas de umbral. Por ejemplo, si queremos repartir un secreto entre m personas y que el secreto pueda recuperarse con n personas, hablamos de un esquema de umbral (m,n), donde n es el umbral.

Parar a Sofía a estas alturas, estaba ya fuera del alcance de cualquier mortal, así que mi única salida fue preguntar, no sin cierta resignación:

Vale, pero ¿cómo funcionan esos esquemas?

Sofía apuró el café que le quedaba en el vaso, se detuvo unos instantes como para componer en su cabeza lo que iba a decir, y continuó:

Hay varios métodos, el más sencillo, quizás, es usar el esquema vectorial, introducido por el matemático George Blakley de la universidad A&M de Texas: Si queremos compartir un secreto con un esquema de umbral (m,n) hacemos corresponder el secreto con un punto P del espacio m-dimensional, y los fragmentos serán hiperplanos de dimensión m-1 que tienen a P como punto de intersección. De esta forma, con m hiperplanos, podemos reconstruir el secreto.

- Por la cara del Sr. Lego, hacía rato que ya no seguía a Sofía. Yo, por mi parte tampoco, pero creía que estaba controlando mejor mi expresión facial hasta que Sofía me miró y sonrió con esa sonrisa piedosa del que se sabe muy por encima de su interlocutor.

Está bien -dijo Sofía tratando de simplificar un poco el asunto- imaginemos que quiero compartir en secreto las tres siguientes cifras: 3,10,5. Y lo quiero hacer entre 4 personas, de forma que sólo con 3 pueda recuperar la clave. Como son tres cifras, podemos pensar en ellas como en un punto P(x,y,z) del espacio de 3 dimensiones. Sólo tendríamos que crear 4 ecuaciones como las siguientes.



Si damos una ecuación a cada una de las cuatro personas, ninguna de ellas podrá conocer el valor del punto P(x,y,z). Sin embargo, si cualquiera de ellas tres se reúnen y resuelven el sistema que forman sus tres ecuaciones, habrán conseguido descifrar el secreto P(3,10,5), aunque no esté una de las personas.

Bastante ingenioso -pensé- no se me hubiera ocurrido, y eso que una vez que conoces el sistema, es bastante obvio.

Otro esquema, algo más elaborado -continuó Sofía- es el esquema de Shamir, que inventó el matemático Adi Shamir. Este esquema es conceptualmente bastante simple, aunque su uso implica algo más que resolver un simple sistema de ecuaciones.

Sofía paró un momento como tratando de ordenar toda la información que tenía en la cabeza y seguidamente preguntó:

- Si dibujo dos puntos en un papel, ¿cuantas líneas rectas existen que pasen exactamente por esos dos puntos?

El Sr. Lego y yo nos miramos unos instantes antes de responder al unisono: una.

- Bien -continuó Sofía- del mismo modo que sólo necesito dos puntos para definir una recta, sólo necesito tres para definir una parábola ¿verdad?

Esto ya no era tan obvio, pero haciendo un acto de fe el Sr. Lego y yo asentimos con la cabeza.

En general, necesitamos n+1 puntos en el plano para definir una curva (polinomio) de grado n ¿os lo demuestro? -preguntó Sofía.

Me apresuré a decir que no era necesario antes de que se lanzara a hacer la demostración matemática.

En general -siguió Sofía- si quiero compartir un secreto repartiéndolos en m fragmentos y con un umbral de n fragmentos, tengo que construir un polinomio de grado n-1.

Imaginemos entonces que quiero compartir en secreto el pin de mi tarjeta de crédito que, digamos, es 3254. Y lo quiero hacer entre 4 personas con un umbral de 3. Necesito, por lo tanto, un polinomio de grado 2 (es decir n-1) que tendrá la forma siguiente:



A los términos a0, a1 y a2 los llamamos coeficientes del polinomio. A a0, que es el término independiente, le asignamos el valor del secreto: en este caso a0=3254. Al resto de coeficientes le asignamos valores aleatorios.

Por ejemplo: a1=12 y a2=25. Una vez definido nuestro polinomio, como quiero repartir el secreto entre 4 personas, necesito el valor de cuatro puntos cualesquiera de la función. Por ejemplo:



En este caso hemos escogido los puntos 1, 2, 3 y 4, pero podrían ser cualesquiera.

A cada una de las personas les damos un par con uno de los puntos y el valor que toma la función en dicho punto. Es decir tendríamos los siguientes cuatro fragmentos:

(1, 3291)
(2, 3378)
(3, 3515)
(4, 3702)

Pero según hemos dicho antes, un polinomio de grado n está definido de forma inequívoca por por n+1 puntos, así que como nuestro polinomio era de grado 2, sólo necesitamos 3 de los puntos (fragmentos) para poder reconstruirlo.

La idea está clara -respondí- pero ¿cómo se reconstruye un polinomio a partir de unos puntos?

No te preocupes, Alberto, eso lo resolvió Lagrange hace ya algunos añitos. Podemos usar el polinomio interpolador de Lagrange para obtener el polinomio original, pero ¿realmente necesitamos todo el polinomio original? -nos desafió Sofía.

No, sólo el término independiente del polinomio, que es el que contiene el secreto -respondió el Sr. Lego sorprendiendo a propios y a extraños.

Efectivamente Sr. lego. No voy a entrar en detalles matemáticos, que son un poco aburridos, pero tras jugar un poco con el polinomio de Lagrange, podemos llegar a la siguiente formulita que nos devuelve el término independiente del polinomio.



Siendo las x los puntos y las y los valores que toma la función en dichos puntos.

Como véis, la formulita de marras se puede modelar muy bien con un par de bucles así que es fácil hacer un programa para generar y develar secretos con el esquema de Shamir.

A la vuelta del desayuno, ya en la oficina, Sofía nos envió las siguientes dos funciones para generar secretos y para desvelarlos. Eso sí -nos advirtió- ningún secreto está a salvo para siempre.


  1. from math import ceil
  2. from random import random
  3. def gen_secret(secret, users, threshold):
  4.     out = []
  5.     max_value=100   # valor maximo factores
  6.     n=threshold     # grado del polinomio
  7.     # generar polinomio grado n
  8.     factores=[]
  9.     fragmentos=[]
  10.     factores.append(secret)
  11.     for i in range (1,n):
  12.         t=ceil(random()*max_value)
  13.         factores.append(t)
  14.    
  15.     # generar n fragmentos
  16.     for i in range(users):
  17.         # escogemos punto t de la funcion aleatorio
  18.         t=int(ceil(random()*max_value))
  19.         # calcular valor de f(t)
  20.         v=factores[0]
  21.         for j in range(1,n):
  22.           v=v+factores[j]*(t**j)
  23.      
  24.         fragmentos.append([t, int(v)])
  25.     out=fragmentos
  26.     return out
  27. def recover_secret(fragments, threshold):
  28.     out = 0
  29.     if len(fragments)<threshold:
  30.         print "faltan fragmentos"
  31.     else:
  32.         for i in range(threshold):
  33.             tmp_j=1
  34.             for j in range(threshold):
  35.                 if j!=i:
  36.                     tmp_j=tmp_j*(fragments[j][0]/float((fragments[j][0]-fragments[i][0])))
  37.             out=out+(fragments[i][1]*tmp_j)
  38.     return int(out)
  39. # calculamos 4 fragmentos para secreto 1234 con umbral 3
  40. s=gen_secret(1234,4,3)
  41. # recuperamos el secreto con 3 fragmentos
  42. print recover_secret(s, 3)

Fuente:

google.com, pub-7451761037085740, DIRECT, f08c47fec0942fa0