Latest Posts:

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

19 de abril de 2014

El País: "Programar para aprender"

Clases de robótica o para aprender a programar. Ya lo están haciendo en algunos centros. Pocos, pero son la punta de lanza que acerca a los escolares el mundo 2.0

En su edición de 2014, la londinense Bett, la feria sobre tecnología educativa más importante del mundo, ha consagrado a la programación como la gran herramienta del futuro. En Estados Unidos, la Fundación Code.org, apoyada entre otros por Bill Gates y Mark Zuckerberg, pretende que los niños y niñas aprendan código desde edad temprana. No para convertirse en unos genios de la computación, de la misma manera que el objetivo de aprender a leer y a escribir no es ganar el Premio Nobel de Literatura, sino para que pasen de meros consumidores a creadores en la Red. “Programar implica definir un problema, estructurar información y seguir una estrategia para resolverlo”, describe sus bondades educativas Lourdes Barroso, presidenta de Aulablog. Y si a la programación se le suma la robótica, el ejercicio se traslada al terreno de lo físico, de lo que se puede manipular y construir.

“Programación, robótica, impresoras 3D, etcétera. Tenemos que ir hacia eso”, zanja Javier Palazón, director de la revista Educación 3.0. La cuestión es, ¿estamos yendo? Desde la Consejería de Educación de la Comunidad de Madrid el mensaje es “estamos en ello”. Se organizan cursos y seminarios formativos. “Estamos desarrollando los nuevos currículos de las asignaturas de enseñanzas obligatorias que introduce la LOMCE, y una de las prioridades en las asignaturas de tecnología es, sin duda, la incorporación y desarrollo de la programación en las aulas”, enfatiza un portavoz. Mientras tanto, y tirando del hilo, aparecen experiencias interesantes, como la que ha auspiciado la propia Barroso en su IES, Laguna de Joatzel, de Getafe: sus alumnos del ciclo formativo de desarrollo de aplicaciones web imparten una extraescolar de programación de videojuegos a compañeros de Educación Secundaria Obligatoria (ESO) y Bachillerato.

Las hermanas Sara y Marta Reina han introducido la robótica educativa en sus clases de Infantil del CEIP Antonio Machado de Collado Villalba. Antonio Ruiz, maestro del colegio público Miguel de Cervantes de Leganés, utiliza, para el tercer ciclo de Primaria, y “de forma básica”, el lenguaje de programación scratch, “que tiene una orientación constructivista”. Scratch es un entorno de programación infantil ideado por el MIT (Instituto Tecnológico de Massachusetts) en el que, mediante órdenes muy sencillas, los pequeños logran que sus dibujos se muevan y progresen en la pantalla del ordenador, con sonidos incluidos. Quizá sea el programa más conocido, pero hay más, y robots, a disposición de la educación: Small basic, de Microsoft, que enseña a programar mediante código simplificado; Arduino para robots (placas para construir máquinas con sistemas y programarlas); Lego WeDo, para montar modelos con sensores y un motor.

Lea el artículo completo en:

El País (España)

17 de febrero de 2014

De esta manera los informàticos de la India han conquistado Silicon Valley

Emprendedores de India crearon un 32% de las compañías fundadas por inmigrantes en Silicon Valley entre 2006 y 2012
Inventores del cero, los indios destacan por sus conocimientos matemáticos y su pensamiento abstracto, unas habilidades que les han llevado a despuntar en las nuevas tecnologías, con Satya Nadella como nuevo ejemplo.

El CEO de Microsoft se une a otros ingenieros indios que han triunfado en EE.UU.: Vinod Dham creó el procesador Pentium, Sabeer Bhatia es el padre de Hotmail, Vinod Khosla fundó Sun Microsystems y Padmasree Warrior ocupa uno de los puestos más altos de Cisco. Son los casos más conocidos, pero en Silicon Valley trabaja un gran número de informáticos indios que se abren paso con éxito.

De acuerdo con un estudio de las universidades de Duke, Berkeley y Stanford, emprendedores indios crearon un 32% de las compañías fundadas por inmigrantes en Silicon Valley entre 2006 y 2012, más que los chinos, británicos, japoneses y canadienses juntos. No siempre fue así: en la década de los 40 y 50, los indios ocupaban puestos bajos en las jerarquías de las compañías tecnológicas.

Desembarcar en EE.UU.

Pero en los 70 y 80 comenzaron a desembarcar en Estados Unidos licenciados de los prestigiosos centros del Instituto de Tecnología de India (IIT), creados a partir de 1950 e impulsados posteriormente por el primer mandatario indio, Jawaharlal Nehru. La intención de Nehru era minimizar la dependencia india de la tecnología y la ciencia de los países occidentales, en especial de Estados Unidos, de acuerdo con el historiador Ramachandra Guha.

Pero los ingenieros e informáticos de los IIT huían de una India empobrecida con pocas oportunidades económicas y el país estadounidense era un Dorado donde podían desplegar sus conocimientos y sus habilidades mercantiles. Y progresaron: se estima que una de cada seis «startups» de Silicon Valley fueron creadas por indios y que 30.000 licenciados de IIT trabajan en Estados Unidos, según Patrick French en su libro «India: A portrait».

Bill Gates y el Congreso estadounidense han reconocido los IIT por su «contribución a la innovación en Estados Unidos». Las pruebas de admisión en uno de estos 16 centros es una de las más difíciles del mundo con un millón de estudiantes para 10.000 plazas, lo que supone que solo un 1% consigue un puesto. Esto supone nueve veces más personas por plaza que en el Instituto de Tecnología de Massachusetts, una de las universidades más prestigiosas del mundo.

Hinduismo, raíz de la abstracción

Pero el romance de los indios con los números precede los modernos centros educativos tecnológicos con la invención del cero -la nada, un concepto muy indio- y el sistema métrico decimal, consecuencia de la larga tradición matemática en el país asiático.

Algunos expertos creen que la capacidad de abstracción de los indios se debe al hinduismo, la religión del 80% de las personas del país, y su carácter simbólico que obliga al pensamiento conceptual. A finales del siglo XIX y principios del XX, el matemático Ramanujan indio sorprendió al mundo con su capacidad con los números a pesar de no tener formación educativa y desarrollar su trabajo en solitario en el sur de la India sin contacto con otros científicos.

Cuando fue «descubierto», Ramanujan fue invitado a estudiar en Cambridge, donde le consideraban un genio y hoy es reconocido como uno de los grandes matemáticos de todos los tiempos. Los informáticos e ingenieros indios no solo han contribuido a la innovación en suelo extranjero, sino que su trabajo es una de las principales exportaciones del gigante asiático.

La industria india de las tecnologías de la información comenzó a fines de los 80, y el llamado efecto 2000 del cambio de siglo acabó por impulsar un sector que hoy se estima que supone un 7,5% del PIB del país asiático y un 25% de sus exportaciones. A pesar del brillante pasado de los informáticos indios, los expertos alertan de que la calidad de la educación técnica está decayendo.

Nuevos alumnos de «calidad inferior»

Un informe de la consultora india Knowledgefaber sostiene que de los 356.000 ingenieros que se licenciaron en la India en 2012 solo un 45% estaba capacitado para trabajar en una empresa india del sector tecnológico. Apenas un 4,5% del total de los licenciados, o uno de cada 20, contaba con la cualificación para trabajar en compañías internacionales como Google, Yahoo o Microsoft.

Narayana Murthy, cofundador de Infosys, una de las mayores compañías indias de tecnologías de la información, afirmó que incluso los nuevos alumnos de los IIT son «de calidad inferior». De momento los ingenieros indios continúan triunfando en Silicon Valley y con Nadella al frente de Microsoft quizás el personal de la multinacional comience a jugar al criquet, el deporte favorito del CEO.
Fuente:

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:

10 de abril de 2013

¿Recuerdas a los los monjes copistas de los 80s?


Surgió toda una industria en torno a los micro ordenadores
 
Surgió toda una industria en torno a los micro ordenadores


Hace mucho tiempo, cuando internet era de uso militar y el Muro de Berlín dividía Alemania, podían adquirirse en los kioskos una serie de revistas para los usuarios de micro ordenadores (ZX81, Spectrum, Commodore64, Amstrad, MSX, etc.) dónde venían listas de código en BASIC que el usuario podía escribir en su casa. Era la época de los monjes copistas informáticos, y fue la primera toma de contacto con el mundo de la programación para muchos de nosotros.


Ejemplo de un listado de BASIC
 
Ejemplo de un listado de BASIC
 

El éxito de este tipo de códigos era bien simple. Un videojuego de la época, en cassette, podía costar 1.800 pesetas de la época, algo así como 30€ de nuestros días y, por supuesto, eran juegos muy limitados en los que el único contacto previo era muchas veces una foto mal hecha en la caja. Demasiado caro para el bolsillo medio. Existía la piratería, la segunda profesión más antigua de la Historia, pero otra opción más lúdica era escribir línea a línea en tu ordenador el código de un juego ya terminado. Además, el hecho de escribir tú el código hacía que el programa tuviese algo tuyo, lo hacía más especial y te hacía sentir como un genio de la programación. Algunos aficionados quedaban con un amigo por las tardes, y mientras uno leía el otro escribía. Hoy día parece una diversión absurda, y no parece que los niños de ahora estén por la labor, pero a principios y mediados de los 80 hubo una pequeña fiebre por la programación.

Ejemplo de un juego hecho en BASIC
 
Ejemplo de un juego hecho en BASIC


Otro punto positivo era el hecho de poder modificar el juego a tu antojo. Cambiar colores, textos y gráficos era relativamente sencillo, creando los primeros MODs de la época. Donde antes había una pelota ahora podía haber un muñeco u otros cambios. Lo normal era guardar el juego en una cinta o disco una vez acabada la sesión copista, pero había jóvenes sádicos que no les importaba reescribir otra vez el código cada vez que querían volver a jugar al mismo juego. A ritmo normal se podía tardar casi una hora en escribir algunos programas.

La revista mas popular de la epoca
 
La revista más popular de la época


La revista más famosa en España por aquellos tiempos era MicroHobby, donde además de analizar juegos también venían algunos listados con los que dar uso al teclado de tu pequeño ordenador a un precio asequible. La mayoría eran cortos, pero otros era tan largos que incluso los dividían por capítulos entre varios números de la revista. Una pequeña foto y un párrafo con un texto sugerente era el único aliciente mientras escribías letra a letra. A veces el resultado final era una desilusión, pero en otras te encontrabas con juegos muy bien acabados.

El LOGO tambien era popular y se ensenaba en algunas escuelas
 
El LOGO también era popular y se enseñaba en algunas escuelas.

Pero había muchas más revistas, muchísimas más, la mayoría ya olvidadas. Incluso era posible adquirir libros en los que únicamente venían listados de BASIC. Normalmente cada modelo de micro ordenador tenía su revista popular, con sus análisis de juegos y códigos. Algunos nombres de revistas eran MSX Magazine, Input Commodore, Amstrad Acción, ZX, Amstrad Sinclair Ocio, Software Accion, etc. Hay que recordar que cada máquina tenía un BASIC diferente, por lo que no eran compatibles. Algunas revistas solventaron este problema escribiendo el código de la versión Spectrum como base y luego detallando para cada modelo las líneas que había que cambiar. 

El manejo de sprites en el Commodore64 era superior al de otras m†quinas
 
El manejo de sprites en el Commodore 64 era superior al de otras máquinas


BASIC se convirtió en el lenguaje de programación más popular, dada su sencillez y el gran parecido entre diferentes máquinas. Sin embargo tenía una gran limitación, y era la potencia. Los juegos hechos en BASIC eran más rudimentarios y lentos que los que se podían adquirir en las tiendas. Los juegos profesionales usaban Código Máquina, un lenguaje único para cada ordenador y muy complejo, pero que otorga un control total sobre el hardware y que permitía hacer juegos más potentes. Hacer un scroll decente en BASIC era casi imposible. A finales de los 80 algunas revistas ya traían listados y tutoriales en Código Máquina para los más avezados.

La comunidad MSX era minor°a, pero muy activa
 
La comunidad MSX era minoría, pero muy activa.


Pero todo tiene un final. Con la llegada de las videoconsolas ya no tenía sentido programar, más que nada porque estas máquinas ni siquiera tenían teclado. Y en los PC, si bien muchos siguieron programando en otros lenguajes como QBasic, GWBasic o Turbo C, ya no era tan habitual copiar códigos de un listado. El abaratamiento y rapidez de los discos hizo que no fuera necesario pasar largas sesiones pinchando código para poder disfrutar de un juego simple, económico pero divertido. Comenzaba la guerra de los gráficos. 

Fuente:

PixFans

28 de marzo de 2013

La computación evolutiva

En 1859, Charles Darwin publicó un polémico libro, “El origen de las especies”, que sentó las bases de la teoría de la evolución. Según Darwin, los individuos de una especie cambian lentamente de una generación a otra. Estos cambios se producen como resultado del cruce de los mismos y la aparición de mutaciones aleatorias. Los nuevos individuos pueden desenvolverse peor que el resto de los de su especie, pereciendo con una alta probabilidad. Pero también pueden resultar ser mejores, más aptos para sobrevivir en su hábitat, en cuyo caso prosperarán, tendrán descendencia que posiblemente tenga las mismas características diferenciadoras que ellos, y acabarán por reemplazar a los antiguos individuos, menos aptos. Estas son, en esencia, las ideas de Darwin sobre la evolución de las especies, hoy mayoritariamente aceptadas en el ámbito científico. Más de 150 años después de la publicación de Darwin estas mismas ideas se usan como inspiración para crear algoritmos dentro de un computador: los algoritmos evolutivos.


Portada original de la primera edición de “El origen de las especies”. Fuente: Wikimedia commons.

Hoy sabemos que el código genético de un individuo, el genotipo, formado por largas moléculas de ADN, contiene toda la información acerca de las características del individuo: función de las células, morfología, metabolismo, etc. Cuando dos individuos se cruzan, la descendencia de ambos tendrá como ADN una mezcla del ADN de ambos padres. Las mutaciones son el resultado de una copia imperfecta en una de las cadenas de ADN del hijo. De forma análoga, los algoritmos genéticos, que son un tipo de algoritmo evolutivo, usan cadenas de 0s y 1s, habitualmente llamadas cromosomas por analogía con el caso natural, que representan algún tipo de objeto dentro de un ordenador: la solución a un problema, un conjunto de valores numéricos, una imagen, un sonido o incluso una partitura, por poner algunos ejemplos.

Un algoritmo genético está formado por un conjunto de cadenas binarias (individuos) al cual se le llama población. Inicialmente la población está formada por cadenas binarias aleatorias. Seguidamente, algunas de estas cadenas son seleccionadas para realizar la operación de cruce, en la que dos cadenas intercambian parte de sus valores (también llamados genes). Después, un cambio aleatorio en algunos genes simula una mutación y, tras esto, el individuo es evaluado para comprobar si es apto en su hábitat. ¿Qué significa ser apto en este caso? Normalmente se asigna un valor numérico al individuo usando alguna función matemática y este valor representa la aptitud del individuo. Cuanto mayor es el valor mayores son las probabilidades de sobrevivir e incorporarse en la siguiente generación de la población. Este proceso se repite continuamente hasta el momento en que el usuario del algoritmo decida parar.



Ejemplos de operadores de cruce y mutación para el caso de individuos binarios. Fuente: el autor.

¿Por qué podríamos estar interesados en simular dentro de un ordenador la evolución de especies? Una interesante característica de los algoritmos evolutivos es que, debido a su naturaleza aleatoria, el resultado que se obtiene tras cada ejecución del mismo puede ser diferente. El algoritmo puede sorprender al usuario con distintas poblaciones de individuos al final. Imaginemos que los individuos representan una imagen. En ese caso, obtendremos distintas imágenes cada vez que ejecutemos el algoritmo y si la función que calcula la aptitud del individuo está especialmente diseñada para puntuar más alto imágenes con gran valor estético para un humano podríamos conseguir que el algoritmo ofrezca bellas imágenes tras su ejecución.


 

Imagen generada con un algoritmo evolutivo. Fuente: Wikipedia.

El uso de los algoritmos evolutivos para crear obras de arte se conoce con el nombre de arte evolutivo y existen congresos internacionales especializados en esta forma de arte [1]. Un caso particular, es el de la música compuesta por ordenador usando algoritmos evolutivos. Aunque este tópico no es nuevo, recientemente ha llamado especialmente la atención de los músicos el sistema Iamus [2], desarrollado en el departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga con Francisco J. Vico a la cabeza. La función de aptitud de Iamus tiene en cuenta aspectos formales de la partitura y es capaz de generar una composición completa en cuestión de minutos. Para conseguir una partitura en tan poco tiempo es necesario diseñar muy bien los operadores de cruce y mutación, uno de los secretos mejor guardados de Iamus. El sistema ha merecido un artículo en la prestigiosa revista Nature [3] y la revista norteamericana Discover lo ha incluido en el TOP 100 de novedades científicas del año 2012. Se ha comercializado un CD con 10 composiciones de Iamus, donde participa la Orquesta Sinfónica de Londres, y, recientemente, una de sus obras fue estrenada por la Orquesta Filarmónica de Málaga en el XIX Ciclo de Música Contemporánea de la ciudad.

La creación artística no es la única aplicación de los algoritmos evolutivos. Éstos pueden utilizarse para resolver problemas de optimización, es decir, encontrar soluciones de muy buena calidad para problemas difíciles de resolver. Un ejemplo de problema de optimización es el de colocar paquetes en un camión de forma que quepa el mayor número posible. No se conoce ningún algoritmo que sea capaz de dar la mejor solución en un tiempo razonable. Los algoritmos conocidos que dan la mejor solución requieren, en el peor de los casos, un tiempo que crece exponencialmente con el tamaño del problema (número de paquetes a colocar). Para resolver un problema como este usando algoritmo evolutivos, tan solo es necesario codificar las soluciones de manera que el ordenador las entienda y programar la función de aptitud, que en este caso podría ser el número de paquetes que caben en la forma indicada por la solución. La principal ventaja del uso de estos algoritmos en optimización es la facilidad con la que pueden aplicarse a la resolución del problema. No es necesario tener un conocimiento profundo del problema para resolverlo, basta con saber evaluar la calidad de las soluciones. Por otro lado, los resultados experimentales con algoritmos evolutivos ponen de manifiesto que las soluciones obtenidas por éstos son, en muchos casos de relevancia práctica, óptimas o se encuentran cercanas al óptimo, mientras que el tiempo requerido para obtener dichas soluciones es reducido (del orden de minutos o segundos).

El uso de algoritmos evolutivos para resolver problemas de optimización ha recibido una importante atención en las últimas décadas y actualmente se pueden contar por decenas los congresos especializados en este tema y las revistas que publican artículos relacionados. En el mencionado departamento de la UMA, profesores como Enrique Alba y Carlos Cotta llevan investigando desde hace casi 20 años el potencial de los algoritmos evolutivos para resolver problemas de optimización. Entre los problemas resueltos por estos investigadores encontramos la optimización de los semáforos para reducir el tiempo de espera de los conductores en una ciudad, la asignación de frecuencias de radio a antenas en una red de telefonía celular, la generación automática de casos de prueba para programas de ordenador, etc [4]. Todos ellos problemas complejos en los que, generalmente, es difícil predecir la influencia de un cambio de la solución en su calidad.

 

Haciendo uso de algoritmos evolutivos es posible reducir el tráfico de una ciudad. Fuente: wikimedia commons.

La computación evolutiva no es el único dominio de la Informática que se ha nutrido de ideas de la naturaleza. En 1983, Kirkpatrick, Gelatt y Vecchi propusieron un algoritmo para resolver problemas de optimización que se basa en el enfriamiento de un metal [5]. Más tarde, en 1992, Dorigo describía en su tesis doctoral una familia de algoritmos que se inspiraba en la forma en que las hormigas buscan comida [6]. Kennedy y Eberhart desarrollaron en 1995 un algoritmo que basaba su funcionamiento en el comportamiento de los pájaros y los peces [7]. Estos dos últimos algoritmos se integran en la actualidad dentro de la línea de investigación conocida como Inteligencia de Enjambre (Swarm Intelligence) que ha servido de inspiración para crear novelas como “Presa”, de Michael Crichton.



El proyecto swarmanoid, coordinado por Marco Dorigo, explora el uso de la inteligencia de enjambre para coordinar un conjunto de robots heterogéneos. Fuente: www.swarmanoid.com

Difícilmente podía Darwin imaginar que sus ideas, con las que pretendía explicar la evolución de las especies, servirían, siglo y medio más tarde, para deleitar al público que acude a un concierto o agilizar el tráfico de una ciudad.

Referencias:
[1] Página Web de la edición de 2013 de EvoMUSART, congreso centrado en la música y el arte evolutivo. http://www.kevinsim.co.uk/evostar2013/cfpEvoMUSART.html
[2] Página Web de Iamus. http://melomics.com/iamus
[3] Artículo de Philipp Ball en Nature sobre Iamus. http://www.nature.com/nature/journal/v488/n7412/full/488458a.html?WT.ec_id=NATURE-20120823
[4] Páginas Web del grupo NEO. http://neo.lcc.uma.es
[5] S. Kirkpatrick, C. D. Gelatt y M. P. Vecchi. 1983. Optimization by simulated annealing. Science, 13 May 1983 220, 4598, 671–680.
[6] M. Dorigo. 1992. Optimization, learning and natural algorithms. Ph.D. thesis, DEI, Politecnico di Milano, Italy.
[7] J. Kennedy y R. Eberhart. 1995. Particle swarm optimization, Proceedings of the IEEE International Conference on Neural Networks, vol.4, pp. 1942-1948.

Tomado de:

Año Turing

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

 

27 de febrero de 2013

Video: Creadores de Microsoft, Facebook, Twitter, etc. llaman a jóvenes a aprender a programar

En Conocer Ciencia abogamos por la enseñanza de la programación de computadoras y el desarrollo del pensamiento sistémico. Más detalles sobre nuestra concepción del pensamiento sistémico AQUÍ.

code
 
Bajo la frase “aprende un nuevo ‘superpoder’ que no se enseña en el 90% de las escuelas de Estados Unidos“, la nueva fundación sin fin de lucro de los hermanos Ali y Hadi Partovi, Code.org, lanzó un video donde intentan estimular la educación de las ciencias de la computación en los jóvenes.

En el video –que también cuenta con una versión extendida de nueve minutos– se presentan muchos pesos pesados de la industria tecnológica, como Bill Gates, Mark Zuckerberg, Jack Dorsey, Drew Houston, Gabe Newell, etcétera, quienes recuerdan cuando aprendieron a programar, y hacen un llamado a los jóvenes a que se interesen por las ciencias de la computación.

El video también presenta a personas reconocidas en otros ámbitos, como el basquetbolista de la NBA, Chris Bosh, quien recuerda cómo aprendió a programar en la universidad; o el rapero de Black Eyed Peas, will.i.am, quien recientemente comprendió la importancia de saber programar y decidió comenzar a tomar clases para aprender.


 
Fuente:
 
FayerWayer

Lea en los archivos de "Conocer Ciencia":

Ni word ni excel, niños ingleses aprenderán programación

Colombia: Se iniciará plan piloto para enseñar programación en las aulas

Diez plataformas innovadoras para aprender programación

Códigos de programación: el lenguaje que nos enseña una nueva forma de pensar

2008: Los robots irrumpen en las escuelas de Buenos Aires

21 de febrero de 2013

Máquinas que aprenden

Como dirían los entrevistados de Punset: "No es tan sencillo"

Esta semana vamos a darle un rápido repaso a cómo las máquinas, ordenadores, son capaces de aprender. Había pensado ponerle de título a la entrada "Ordenadores que aprenden", pero, seamos sinceros, la palabra ordenador suena fatal, mientras que máquina aporta al título un aspecto duro y, sobre todo, sexy.

Para entender como un ordenador aprende algo, es necesario saber su funcionamiento básico. Una computadora ejecuta programas, que son secuencias de instrucciones previamente programadas. Estas instrucciones no son muy distintas a las de una calculadora programable. Básicamente, a una velocidad increíble,  el ordenador está leyendo números de memoria, operando con ellos y almacenándolos de nuevo para un uso posterior. La pregunta que planteo es ¿qué grado de aprendizaje puede asumir un ordenador, si su comportamiento viene definido por una secuencia de instrucciones de este estilo? 

Bien, para un programa dado, sus instrucciones no se ejecutan siempre de la misma manera porque existe un elemento variable: los parámetros. Día a día, a veces sin darnos cuenta, comunicamos parámetros al ordenador. La dirección de una web, a la hora de introducirla en la barra del navegador, es un parámetro, y en función de su valor, la respuesta del programa será distinta. Nada más lejos de la realidad, este texto que escribo es un parámetro que estoy variando, luego el sistema de gestión de contenidos del blog, dependiendo de su contenido, lo transformará a un formato presentable (y si, esta vez con los párrafos justificados). La gracia de estos parámetros es que un cambio en sus valores pueden producir una respuesta diferente, sin necesidad de cambiar el programa subyacente.

Vale, ha quedado claro que los ordenadores pueden actuar de una manera u otra según los parámetros que se le introducen, pero no he dicho qué puede aprender un ordenador. Está claro que introducir la URL en el navegador no se presta a mucho aprendizaje (¿seguro?) y el texto que escribo es un simple bulto que se arrastra a lo largo de Internet (repito, ¿seguro?). Dar una definición de aprendizaje es compleja, incluso para seres humanos, y su generalización al ámbito computacional también lo es.
A grosso modo, se denomina aprendizaje automático (machine learning) al campo de la computación que se encarga de dar a los ordenadores la capacidad de aprender sin ser explícitamente programados para ello. Veamos algunos ejemplos de lo que puede aprender a hacer un ordenador:
  • Reconocer texto en general, ya sea manuscrito o tipografiado.
  • Reconocer caras.
  • Diagnóstico de enfermedades.
  • Selección de perfiles de personal.
  • Determinar si una transacción bancaria es fraudulenta.
  • Corregir el texto que escribimos en la pantalla táctil de un móvil (dios, esta si que me gusta)
  • ...
A las tareas anteriores podemos añadir conducir, andar o incluso componer música (si, si Conde Chócula me lo permite, algún día haré una entrada sobre música generativa). En general un ordenador es capaz de aprender cualquier tarea cuyo conocimiento pueda verse de manera formal. Ahora bien, no podemos programar, es decir cambiar explícitamente las instrucciones que sigue el programa, pero sí podemos modificar los parámetros de un programa ya escrito. Pero claro, entonces necesitaría un programa para cada tarea de la lista anterior, es decir no puede usarse la misma técnica para reconocer texto que para reconocer caras o corregir texto mal escrito.

MENTIRA

Imaginaos la situación. Una letra, al igual que un texto escaneado, es una imagen. Una imagen es algo que está escrito en el idioma del ordenador. Por simplicidad, centrémonos en el reconocimiento de caracteres manuscritos. Si cada carácter esta contenido en una imagen en blanco y negro, existen ciertos píxeles que están en blanco y otros que estan en negro, lo cual puede verse como una matriz cuyas celdas pueden tomar valores de 0 para el negro o 1 para el blanco (o al revés, como más os plazca).
Una vez formalizada la entrada, vosotros, lectores míos, ¿que más hace falta para que el ordenador sea capaz de, a partir de la imagen, averiguar el carácter que representa?. Pensad como aprenderíais vosotros  las letras del abecedario (¡dejadlo en los comentarios!), yo os voy a contar cómo lo haría el ordenador.

En primer lugar  se construye un conjunto de entrenamiento, que se caracteriza porque para cada imagen se dispone del resultado, es decir del carácter que representa la letra contenida en la imagen. Una vez establecido, se procede a mostrar una y otra vez estos ejemplos al ordenador, el cual produce un resultado. La dinámica es la siguiente: si el programa se equivoca, modifica sus parámetros para evitar volver a cometer el error en un futuro.

Después de varias pasadas, cuyo número, entre otros factores, depende del número de ejemplos, el programa ha aprendido con más o menos "nota" los ejemplos. Si os dais cuenta, este procedimiento se asemeja bastante a los malvados ejercicios que mandan antes de hacer un examen. Genial, sois un ordenador y os sabéis de puta madre los ejercicios que habéis memorizado una y otra vez, pero ha llegado la hora del examen. El examen se realiza con otros ejercicios diferentes, el conjunto de test. Estos ejemplos no han sido vistos nunca por parte del programa y sirven únicamente para ver cuantos aciertos se tienen con datos desconocidos, lo cual da una medida de lo bien que nuestro programa ha aprendido lo que queríamos enseñarle.

Bueno señores, el problema del reconocimiento de caracteres es un problema de aprendizaje supervisado, porque se indica al método cuales han sido sus errores diciéndole la respuesta cada vez que intenta adivinar el resultado. Además se trata de un problema de clasificación, porque se trata de averiguar a que clase pertenecen las distintas imágenes, que en este caso son las letras del abecedario. La clave es que existen técnicas (de aprendizaje automático) que resuelven problemas de este tipo, las cuales de manera transparente al usuario (no hay que cambiar el comportamiento del método), dada una base de ejemplos y una representación adecuada de la entrada (en el caso anterior una matriz) y una salida (la clase, cualquiera de las letras del abecedario) son capaces de ajustar los parámetros para que en el futuro clasifique datos que no ha visto nunca. 

En cuanto a las técnicas empleadas para este tipo de problema, podemos hablar de redes neuronales. En este caso los parámetros a ajustar son los potenciales de activación entre las neuronas, recordando un poco el funcionamiento de éstas en el sistema nervioso.

Otra técnica interesante son los árboles de clasificación...


Lea el artículo completo en:

Mente Enjambre

17 de febrero de 2013

Investigadores trabajan en una computadora que nunca se cuelga

Un equipo de investigadores de la Escuela Universitaria de Londres trabaja en el desarrollo de una computadora que nunca se cuelga y podría ser capaz de reprogramarse automáticamente en caso de error.


Si hay algo que nos puede fastidiar bastante es que nuestro smartphone o nuestro ordenador personal se queden colgados, por ejemplo, por un fallo en una aplicación que estamos ejecutando. Quizás a nivel personal es algo que, aunque molesta, no tiene demasiada importancia pero una situación de bloqueo en un sistema crítico es algo que puede tener un gran impacto. Basándose en un esquema que intenta emular la aleatoriedad de la propia naturaleza, un equipo de investigación de la Escuela Universitaria de Londres está trabajando en una computadora que nunca se quedaría colgada puesto que sería capaz de reprogramarse y auto-repararse para evitar una situación de bloqueo.

La idea es que ante una inminente situación de bloqueo, por ejemplo, ante unos datos que se han corrompido, el sistema sea capaz de recuperarse por sí mismo y reparar los datos dañados para prevenir el fallo; un hecho de especial importancia para sistemas de gran criticidad como los que forman parte de un avión o sistemas de control más críticos, por ejemplo, en una central nuclear o, incluso, que un avión no tripulado que ha sido dañado en combate sea capaz de reprogramar sus sistemas y adaptarse a la nueva situación.

¿Cómo puede reprogramarse un computador?

El modelo que está siguiendo el equipo de la Escuela Universitaria de Londres es el del gran computador que encontramos en la naturaleza: el cerebro. La base de este trabajo de investigación es modelar el proceso natural que siguen las neuronas para establecer conexiones y activarse; un proceso que, a nivel macroscópico, también vemos en el comportamiento de los enjambres de insectos que funcionan, prácticamente, como si fuesen una unidad.

Según comentaba Peter Bentley, uno de los responsables del proyecto, la gran diferencia entre una computadora y un ser vivo es cómo se ejecutan los procesos. Las computadoras trabajan de manera secuencial, es decir, ejecutan una instrucción tras otra (y aumentan este ratio con la computación en paralelo); sin embargo, en la naturaleza el funcionamiento es descentralizado y sigue una distribución aleatoria con tolerancia a fallos y capacidad de adaptación a los cambios.

¿Cómo adaptar un computador a los cambios?

El computador en el que trabajan mantiene una memoria que contiene datos e instrucciones sensibles al contexto en el que se encuentra, es decir, tiene instrucciones con lo que debe hacer si la temperatura aumenta o si baja demasiado, por citar un ejemplo. Cada uno de estos contextos se ejecuta en paralelo y, en vez de seguir un contador de programa secuencial (como se haría en un computador), la ejecución de estos contextos está sujeta a un proceso pseudoaleatorio que imita la aleatoriedad de la naturaleza.

Como fruto de este proceso, en cada momento, se evaluarán una serie de condiciones de contorno dentro de una combinación que servirá para obtener una acción como suma de todas estas "acciones en paralelo". Si en cada uno de estos sistemas almacenamos la misma copia de código, nos encontramos con un sistema ultra-redundado en el que la activación de las condiciones de contorno servirá para ejecutar el programa original, aunque se haya dañado alguna parte del sistema.

Precisamente, este el punto en el que se encuentra esta investigación puesto que pretenden que el sistema sea capaz de reescribir el código a ejecutar en respuesta a los cambios del entorno, usando para ello un aprendizaje previo que lo vuelva inmune a fallos si, por ejemplo, una zona de la memoria está dañada (lo cual, en un computador convencional, nos provocaría un error, por ejemplo, un kernel panic).
Una investigación, sin duda alguna, fascinante.

Fuente:

ALT1040

8 de enero de 2013

Iamus: El competidor informático de Mozart


Partitura del proyecto Iamus

La computadora Iamus funciona como los procesos biológicos evolutivos para componer su música.

El sonido musical de un teclado flota sobre los modernos edificios del Parque Tecnológico de Andalucía, en Málaga, conocido como el Silicon Valley de España.

Pero este no es un ensayo, aunque el músico que interpreta es un artista internacional.
"Hemos enseñado a una computadora a escribir notas musicales", dice Gustavo Díaz-Jerez, consultor informático y pianista.

"Ahora podemos producir música clásica moderna con sólo pulsar un botón".

El equipo que desarrolla este proyecto musical –llamado Iamus en honor al semidiós de la mitología griega capaz de hablar con los pájaros– sólo le provee información básica.

"Sólo le indicamos al ordenador algunas cosas técnicas generales", cuenta Díaz-Jerez.

"Le informamos que es imposible para un pianista tocar un acorde de 10 notas con una sola mano. Sólo tenemos cinco dedos en cada mano".

Mapa musical

Proyecto Iamus

El pianista Gustavo Díaz-Jerez trabaja en el proyecto e interpreta las creacionas de la computadora Iamus.

Instruir a una computadora para que escriba notas musicales es un gran paso en la relación entre la música y la tecnología.

Iamus se originó a partir de una investigación sobre vida artificial y utiliza la evolución como base, según explica Francisco Vico, profesor de Inteligencia Artificial (IA) de la universidad de Málaga.

"Algunas personas no creen que sea posible", dice Vico, en conversación con la BBC.

"Cada composición tiene un núcleo musical que se hace más complejo y evoluciona automáticamente".

El programa informático permite a Iamus escribir innumerables notas sin ayuda humana.

"Empieza con estructuras muy complejas dentro de la computadora", explica Díaz-Jerez.

"Es muy distinto a otras músicas generadas por ordenador. Cuando la gente escucha esta frase imagina que se puede escuchar a la computadora interpretando música".

"Pero Iamus hace algo diferente, proyecta esa complejidad que evoluciona en el ordenador en estructuras musicales".

Inspirada por la evolución

Iamus se alimenta con información específica que dispone, por ejemplo, la duración y los instrumentos para los que compone.

La actividad se controla a través de un algoritmo inspirado en procesos biológicos.

Igual que el genoma humano ha mutado para crear una multitud de personas únicas, Iamus altera y reordena el material inicial para crear piezas de música compleja. La única restricción es que pueda ser interpretada por un músico y su instrumento.

"La composición evoluciona dentro de la máquina", dice Francisco Vico.

"Y un humano selecciona entre el conjunto de composiciones que provee Iamus".

Orquesta Sinfónica de Londres

La Orquesta Sinfónica de Londres interpretó obras compuestas por Iamus.

Algunas de estas piezas han sido interpretadas por la Orquesta Sinfónica de Londres. El violinista y director Lennox McKenzie cuenta que fue la primera vez que tocaban música creada por ordenador.

"No es el tipo de música que escuchas y te vas silbando una melodía", cuenta McKenzie, consultado por la BBC.

"Es realmente amplio en términos de sonido. Me recuerda un poco a Varese o a Frank Zappa".

En una prueba, el musicólogo aficionado Peter Russel escuchó la música y la definió como "artística y encantadora" antes de saber cómo había sido creada.

Compositor prodigioso

Retrato de Mozart

Iamus puede ser tan prodigioso como Mozart.

Iamus tiene el potencial para componer otros géneros además del clásico contemporáneo y para instrumentos que aún no han sido introducidos en su sistema.

Díaz-Jerez explica que utiliza la escala templada occidental, en la que una octava tiene doce notas.

"Pero si le damos las instrucciones para que utilice más notas, como por ejemplo en la música árabe o hindú, Iamus será capaz de componer piezas que se relacionen con estas culturas".

"Es sólo cuestión de extender el conocimiento de la computadora".

La idea de que un ordenador pueda convertirse en un compositor más prodigioso que Mozart, Haydn, Brahms y Beethoven combinados es quizás inquietante.

Por ahora los músicos pueden consolarse sabiendo que aún hacen falta sus sentimientos y talentos personales para interpretar esta música y darle vida.

Entre tanto, la innovación ha abierto la puerta para una nueva forma de venta de música.

El desprendimiento comercial del proyecto Iamus, la compañía Melomics Media con base en Estados Unidos, ofrece las composiciones musicales creadas por esta computadora a un precio similar a lo que cuesta descargar un tema de iTunes o Google Play.

Pero la gran diferencia es que quienes compran las composiciones de Iamus también obtienen los derechos de autor.

Y con una cantidad ilimitada de piezas –ya hay miles en su discoteca– no hay riesgo de quedarse sin material.

Fuente:

BBC Ciencia
google.com, pub-7451761037085740, DIRECT, f08c47fec0942fa0