Cursos ECI 2011
Para ver un resumen breve de los contenidos de cada curso y su
programa tentativo, seguir el link de cada título.
Todos los cursos durarán 5 días (desde el lunes 25 de julio hasta el viernes 29 inclusive). El programa definitivo con horarios y aulas será publicado a la brevedad, como así también la mecánica de evaluación prevista para cada curso.
Profesor: Miroslav Kulich (Czech Technical University in Prague, República Checa). En inglés.
El objetivo de este curso es introducir los desafíos principales que presenta la programación de robots móviles con capacidades cognitivas y cuáles son las técnicas fundamentales para encararlos. Se presentarán técnicas para tratar con el procesamiento y la fusión de los datos proporcionados por los sensores del robot, así como también el modelado del ambiente, la localización del robot en el mismo y el planeamiento de caminos. Durante el curso se utilizará un simulador, para implementar algunas de las técnicas presentadas.
Día 1: Introducción. Aplicaciones de la robótica móvil. Arquitecturas de robots móviles cognitivos. Sensores y actuadores para robots móviles. Día 2: Modelos del ambiente y su construcción. Representaciones geométrias, topológicas, simbólicas y por grillas de ocupación. Técnicas para detectar y evitar obstáculos. Día 3: Localización. Taxonomía, localización continua, Iterative Closes Point y sus derivados, métodos probabilísticos, filtros bayesianos, filtro de partículas, filtro de Kalman, modelo de sensores, modelo de acción. Día 4: Planeamiento de caminos. Espacio de configuración, planeamiento de movimiento combinatorio, planeamiento basado en muestreo, incertezas. Día 5: Laboratorio, El sistema Player/Stage, trabajo con el simulador; implementación de un sistema simple para detectar y evitar obstáculos.
Profesor: François E. Cellier (ETH Zürich, Zürich, Suiza). En castellano.
Los sistemas de la ingeniería con los cuales interaccionamos diariamente son cada vez mas complejos. Para entender como funcionan tales sistemas se necesitan conocimientos diferentes. El modelado matemático de un sistema físico trata con la organización de dichos conocimientos. A su vez, la simulación utiliza al modelo para generar comportamientos compatibles con lo que se sabe del sistema. En este curso se presentara una metodología sistemática para capturar la dinámica de un sistema físico a través del modelado de sus flujos de energía internos.
Para ello se usarán gráficos de ligadura y se presentara el lenguaje de modelado Modelica, la herramienta mas avanzada que existe para el modelado orientado a objetos de sistemas fisicos con capacidad de convertir los modelos en código simulable. Se presentaran aplicaciones a sistemas complejos disimiles y multidisciplinarios: un modelo del sistema cardiovascular humano, un modelo de un sistema ecológico cerrado y un modelo de dinámicas mundiales.
Día 1: Introducción a la teoría de modelado de sistemas físicos; ecuaciones diferenciales y algebraicas; conversión a ODEs, singularidades estructurales, algoritmos de rasgadura. Día 2: Introducción a gráficos de ligaduras y a la herramienta Modelica; modelado gráfico de sistemas físicos orientado a objetos; gráficos de ligaduras envasados en modelos de abstracción mas alta. Día 3: Introducción a los algoritmos de simulación de sistemas físicos; precisión y estabilidad numérica; errores; orden de aproximación; control del paso y del orden; discontinuidades; métodos explícitos e implícitos; sistemas rígidos y marginalmente estables; algoritmos DASSL y Radau IIA. Día cuatro: Aplicaciones: gráficos de ligaduras de flujos hidráulicos; un modelo orientado a objetos del sistema cardiovascular humano; gráficos de ligaduras termodinámicos; un modelo termodinámico de un sistema ecológico cerrado construido en el desierto de Sonora de Arizona. Día 5: Aplicaciones a sistemas débilmente definidos: la dinámica de poblaciones; modelado usando System Dynamics; modelos de dinámicas mundiales; modelado de la energía, la exergía y la emergía de sistemas grandes.
Profesor: Gregory Chaitin (IBM Watson Research Center, NY, USA). En castellano.
Metabiología es un campo de investigación muy reciente que intenta combinar computación teórica con biología y su objetivo es intentar probar matemáticamente que la teoría Darwiniana de la evolución funciona. La analogía principal que sostiene este área es pensarse a uno mismo como una pieza de software que ha sido modificada una y otra vez durante millones de años. De esta manera puede trazarse un paralelo entre la evolución al azar de "software natural" (ADN) y la del software artificial (programas de computadora).
Día 1: Introducción conceptual a la metabiología. Teoría algorítmica de la información. Día 2 a 4: Trabajaremos con el paper "To a mathematical theory of evolution and biological creativity" en http://www.cs.umaine.edu/~chaitin/darwin.pdf. Vamos a estudiar tres modelos distintos de evolución, presentando las pruebas en detalle y discutiendo las preguntas abiertas asociadas. Día 5: Posibles líneas de investigación. Poblaciones, cómputos acotados por tiempo, experimentos computacionales, etc.
Profesor: Stéphane Canu (Laboratoire LITIS, Mont Saint Aigant, Francia). En castellano.
Las Kernel Machines son parte del área Aprendizaje Automático (machine learning) e incluyen a una gran familia de algoritmos de aprendizaje. Últimamente este área ha tenido mucha actividad y recientemente se han obtenido resultados muy destacados en competencias sobre reconocimiento de patrones. El curso será introductorio al tema, explicando las ideas fundamentales detrás de estos algoritmos y las razones de su funcionamiento. Las clases estarán divididas en dos partes, la primera teórica y la segunda práctica (utilizando Matlab o algún software equivalente).
Día 1: Kernels y aprendizaje. Día 2: Herramientas: kernels funciones, costos y optimización. Día 3: Algoritmos para kernel machines dispersas y no dispersas. Día 4: Recientes avances en kernel machines, incluyendo aprendizaje con kernels múltiples. Día 5: Aplicaciones a interfaces cerebro-computadora y otros tipos de interfaces.
Code Contracts es una manera de expresar pre y post-condiciones e invariantes de clase para la plataforma .NET. Este tipos de contratos sirven de documentación y para implementar aserciones de correctitud en tiempo de ejecución, pero también permiten la utilización de técnicas de verificación estática. Estas últimas convierten los contratos en especificaciones certificadas. Clousot es un verificador estático de Code Contracts basado en la técnica de interpretación abstracta. En este curso se introducirán y discutirán las decisiones de diseño y detalles formales de Code Contracts y Clousot.
Día 1: Anotaciones en Code Contracts (contratos, invariantes, aserciones). Verificación en tiempo de ejecución. Día 2: Generación automática de anotaciones. Día 3: Introducción al análisis estático: interpretación abstracta. Día 4: Introducción al análisis estático: análisis del flujo de datos. Día 5: Verificación de contratos usando Clousot.
Profesor: Alejandro Russo (Chalmers University of Technology, Suecia). En castellano.
A lo largo de los años se han desarrollado varios lenguajes especialmente diseñados para garantizar la confidencialidad o la integridad de la información. El problema de estos lenguajes es que no tuvieron un impacto demasiado amplio en el proceso de desarrollo de software. Por otro lado, se ha demostrado que es posible garantizar un conjunto de políticas de seguridad simplemente usando bibliotecas sobre lenguajes ya conocidos. Este enfoque tiene la ventaja de motivar una adopción más rápida y menos problemática por parte de los programadores. El objetivo del curso es describir los principios detrás de las librerías que proveen seguridad en el flujo de la información (IFS). El curso va a centrarnos en Haskell y en cómo las monadas pueden garantizarnos que las políticas de seguridad son cumplidas, esto es, lograr que nuestros secretos no sean revelados o que inputs no confiables produzcan inseguridades en el sistema. También mostraremos cómo en Python pueden usarse despachos dinámicos y decoradores para implementar una biblioteca que nos provea la capacidad de realizar "taint-analysis", una forma especial de IFS. El único prerequisito para los estudiantes son nociones básicas de programación funcional.
Día 1: Principales funciones en Haskell y mónadas. Día 2: Mónadas para seguridad. Día 3: Correctitud de las mónadas Sec e IO. Día 4: Políticas de integridad. Día 5: Otras para seguridad.
Profesor: Diego M. Romero (Schneider Electric, Buenos Aires, Argentina). En castellano.
Las tecnologías de la información y las comunicaciones son ampliamente aplicadas en el ámbito empresarial. Esta situación se ha extendido también en los últimos años a aplicaciones conocidas como de “piso de planta”. Si bien los conceptos y metodologías de trabajo son comunes al resto del mundo informático, existen particularidades que exigen un tratamiento diferente. Este curso presenta los conceptos básicos y las tecnologías específicas de las aplicaciones industriales de redes Ethernet y de los sistemas de interfaz humano-máquina en los sistemas de automatización y control.
Día 1: Repaso de algunos conceptos sobre redes. Requerimientos de las redes Ethernet para aplicaciones industriales. Switches Ethernet para aplicaciones de piso de planta. Día 2: Protocolos de capa de aplicación sobre Ethernet de uso industrial. Conectividad inalámbrica en ámbitos industriales. Conversores Serie a Ethernet. Conversores de medio físico. Día 3: Generalidades de un sistema de Interfaz Humano-Máquina (HMI). La Base de Datos de Tiempo Real. Interfaz de Operador. Comunicaciones con equipos de campo. Día 4: Servidores de datos y registros Entrada/Salida. Servidores de datos remotos. Programación de Scripts, distintas alternativas. Registros de Alarmas y Eventos. Registros Históricos. Módulos Complementarios. Día 5: Conectividad con bases de datos relacionales. Acceso por WEB. Criterios para la selección del sistema HMI. Demostraciones prácticas
Profesores: Alberto Marchetti-Spaccamela y Leen Stougie (Sapienza University of Rome, Italia y VU University Amsterdam, Holanda). En inglés.
La optimización combinatoria es una disciplina que combina matemática aplicada y computación teórica. Su objetivo es encontrar la mejor solución entre una cantidad numerable de soluciones posibles. En las técnicas estándar se asume que toda información relevante para el problema es conocida. Sin embargo, esta suposición no siempre es realista: en muchos escenarios se necesita optimizar incluso cuando algunos valores no están completamente determinados; lo cual lleva a que se deban tomar decisiones con datos incompletos. Esta observación ha llevado a la formulación de varios modelos de incertidumbre en optimización. En este curso haremos un repaso de las diversas formas en que la incertidumbre interviene en la optimización.
Día 1: Introducción y motivación. Programación estocástica. Modelos y complejidad. Programación lineal estocástica. Día 2: Resultados de aproximación para problemas de optimización estocástica. Versiones estocásticas para el problema de la mochila y para el del conjunto de cobertura. Día 3: Optimización robusta. Modelos y complejidad. Problemas planificación y ruteo. Día 4: Optimización on-line. Día 5: Modelos híbridos.
Profesor: Arzhan Kinzhalin (Intel Software, Córdoba, Argentina). En castellano.
Docentes de prácticas: Víctor Rosales y Facundo Ferrer
(Intel Software, Córdoba, Argentina)
El curso introduce los conceptos de programación distribuida y modelos de computación actuales: Message Passing Interface, MapReduce y PGAS entre otros. MPI, el modelo más popular para modelar los problemas en física, biología e ingeniería, se utilizará durante el curso como la plataforma para desarrollar los ejemplos prácticos. Los alumnos interesados deben contar con conocimientos de lenguaje de programación C y conceptos de compilación utilizando las herramientas GNU, ya que el curso será evaluado por un trabajo práctico.
Día 1: Sistemas paralelos. Para esta parte llevaremos un cluster portátil de 4 nodos para que los alumnos puedan armar un cluster incluido los diferentes componentes de HW. Día 2: Programación Básica MPI. Día 3: Tópicos más avanzados de MPI. Día 4: Programación avanzada: Deadlocks, MPI_Barrier, topologías virtuales, etc. Día 5: Trabajo práctico.
Profesor: Daniel A. Grenón (Universidad Nacional del Litoral, Santa Fe, Argentina). En castellano.
La Agromática es el punto de contacto entre la Agricultura, una de las actividades productivas más antigua del hombre, y la Informática. Por sus características y necesidades, el productor agropecuario requiere herramientas que combinan conceptos de bases de datos, modelos de simulación y sistemas de soporte de decisiones con telemática. El objetivo de este curso es poner en contacto a estudiantes y profesionales de la informática con las especificidades del sector agropecuario, discutir la problemática en términos de sistemas de información, presentar un panorama de las herramientas informáticas actuales e identificar sectores de vacancia en el desarrollo de software agromático y posibilidades de aplicación de nuevas tecnologías.
Día 1: Agromática, definición y descripción. Agrosistemas, niveles de organización. La empresa agropecuaria y el diseño de agrosistemas viables. Datos y modelos que representan a los agrosistemas. El proceso administrativo en la empresa agropecuaria. Día 2: Modelos de simulación agropecuarios. Informática al servicio de la producción vegetal: simulación de procesos edáficos, atmosféricos, biológicos y tecnológicos, y su integración en modelos de simulación de cultivos; servicios de alarma; evaluación de la sustentabilidad productiva; estimación de impactos ambientales. Día 3: Informática al servicio de la producción animal: modelos de producción forrajera y de pastoreo; modelos de crecimiento y producción animal; modelos de dinámica poblacional de rodeos; simulación de la dinámica reproductiva. Día 4: Sistema de información técnica-económica de la empresa. Día 5: Sistema de soporte de decisiones: análisis de series históricas; margen bruto probabilístico; riesgo ambiental derivado del proceso productivo. Ordenamiento territorial: aplicaciones de sistemas de información geográfica a nivel de empresa y de región agropecuarias; Integración con modelos de simulación. Agromática y su relación con las AgroTICs: prospectiva de la relación de las telecomunicaciones y de la electrónica con el sector agropecuario. Nuevos desafíos y posibilidades que generan las TICs.