Algoritmos en Casa de las Estrategias

La programación[1] se utiliza comúnmente para solucionar un problema o automatizar un proceso. En el desarrollo de la solución, es normal adoptar un paradigma de programación[2] (incluyendo aquellos que son multiparadigmas). La computación en la nube[3], por ejemplo, es uno de los últimos paradigmas que se han impuesto en la ingeniería de software.

Bajo el mismo objetivo de automatizar procesos, los últimos desarrollos en programación se han centrado en imitar tanto el comportamiento como el procesamiento humano. Aunque no se ha impuesto como paradigma, el aprendizaje automático o aprendizaje de máquinas comprende las técnicas más usadas de los últimos años para la automatización de muchas tareas que solo pueden ser desarrolladas con cierto tipo de inteligencia. Junto a estas aparecen muchas veces la estadística computacional y la computación evolutiva posibilitando la creación de diversos algoritmos híbridos.

El reconocimiento de imágenes, los vehículos autodirigidos o la detección bajo ciertos criterios de una enfermedad, son algunos de los problemas que requieren este tipo de inteligencia. Para su solución, el aprendizaje de máquinas ha recolectado información de lo que hemos aprendido del ser humano biológicamente, su expresión formal (en términos matemáticos) y su aplicación.

La tarea principal para el programador (a diferencia de muchas otras técnicas), no es decirle al computador cómo solucionar el problema paso a paso, sino cómo aprender.

El reto, y una de las mayores contradicciones sobre la inteligencia artificial, es romper una barrera que ni siquiera una persona puede pasar. Por ejemplo, si un carro autodirigido se encuentra bajo un accidente inminente e inevitablemente va a hacer daño a alguien, ¿con qué criterios elige a quién hacerle daño?, ¿cómo puede medir el impacto de las consecuencias?

Aún con su expansión y su capacidad, las nuevas técnicas de programación no han logrado llegar completamente a problemas sociales. Esto se debe en parte a la dificultad presentada con anterioridad y la poco capacidad, incluso humana, de generar una solución técnica, y en parte también a los pocos esfuerzos que se han hecho para unificar ambas áreas.

¿ Por qué programamos?

David Hume pensaba que las ciencias humanas no tenían porque ser inexactas, sino que requerían trabajar con muchas más variables que las ciencias naturales. Hoy con la computación podemos impulsar que todas esas variables sean captadas, almacenadas y procesadas, detectando problemas emergentes, diagnosticando problemas viejos y comprendiendo mejor su anatomía y pudiendo controlar por completo el desempeño de un piloto social y luego medir rigurosamente un programa.

Llevar la programación al terreno del comportamiento humano, de la calidad y las percepciones es cambiar hábitos de pensamiento, hacer instituciones más sensibles y empresas más éticas (en tanto conscientes de su potencial daño y su impacto en la calidad de vida).

Primero, usamos la programación en la investigación con modelos de series, análisis de bases de datos y minería de textos para el análisis de datos, luego para recoger y construir datos -principalmente- con técnicas de Web Scraping. Poco a poco fuimos automatizando procesos de construcción de bases de datos y que estas mismas generaran productos de de visualización.

Nos hemos visto en la necesidad de desarrollar nuestros propios espacios virtuales y los de nuestros aliados –www.morada.co, www.nocopio.com www.casadelasestrategias.com y www.narcorama.com-, para suplir necesidades de almacenamiento, difusión, gestión de bases de datos, construcción de foros, visualización de la información y recolección de datos por formularios y encuestas.

Finalmente, llegamos a desarrollar, en medio de esta investigación, diferentes tipos de software por el afán de darle una aplicación concreta a nuestra investigación o generar una solución a partir de la misma:

  1. Fonoteca de Música Alternativa de Medellín (2013)

Sistema georeferenciado para visualizar las bandas de música alternativa en la ciudad. Permite ver una foto, escuchar una canción y clasificar la banda por género e influencias.

 

 

 

  1. OEPI (Observatorio para Escuelas Protectoras e Inspiradoras – 2016)

Es un software muy liviano para llamar a lista de forma rápida y además darle un reconocimiento a cada estudiante con la pregunta “¿cómo se siente hoy?”. Los resultados de asistencia pueden mostrar patrones, incluso espaciales con los datos adecuados, de inasistencia.

  1.  SAT (Sistema de Alertas Tempranas para prevenir la deserción escolar – 2014)

Es un sistema donde cada estudiante completa una encuesta periódica con preguntas sencillas sobre su vida, por ejemplo, qué hace en su tiempo libre, cuánto tiempo comparte con sus seres queridos ó si tiene un mejor amigo en el colegio. A partir de estas respuestas, el software calcula un indicador que alerta a profesores y directivos sobre el riesgo de deserción del estudiante.

  1. Mapa de vida (2017)

El mapa de vida es una herramienta virtual -que en su versión beta- que las personas ingresen el nombre y la fotografía de una persona asesinada en los últimos meses en nuestras ciudades y de ahí son invitados a georeferenciar distintos puntos ligados a un relato sobre todo lo que hacía vivir a esa persona y el territorio.

Impulsando una forma de expresarse y de compartir datos de forma colaborativa, al final se verá un mapa de cientos de puntos verdes (de historias de vida) y el punto rojo del lugar donde fue asesinado (el absurdo).


[1] Crear código fuente para que un programa se comporte de una manera deseada. (https://es.wikipedia.org/wiki/Programaci%C3%B3n)

[2] Es una propuesta tecnológica adoptada por una comunidad de programadores y desarrolladores cuyo núcleo central es incuestionable (únicamente trata de resolver uno o varios problemas claramente delimitados). La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Un paradigma de programación representa un enfoque particular o filosofía para diseñar soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los elementos involucrados en un problema, así como en los pasos que integran su solución del problema. (https://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n)

[3] Permite ofrecer servicios de computación a través de una red, que usualmente es Internet. (https://es.wikipedia.org/wiki/Computaci%C3%B3n_en_la_nube)

Deja un comentario