Se invita a la Comunidad Educativa de la FaI a presenciar la defensa de Tesis de Licenciatura titulada "Análisis Comparativo de Ambientes de Programación Multiparadigma"

Dia y lugar: Lunes 21 de diciembre a las 10:00 hs en el Consejo Directivo FAI

Alumna: Yanina Paola Pérez

Directora: Lic. Silvia Amaro

Resumen

Los lenguajes de programación pueden ser clasificados en paradigmas que se diferencian por la forma en que sus construcciones ayudan al programador en la solución de problemas en un cierto dominio de aplicación. Un paradigma de programación es un enfoque general que el programador puede tomar para describir y resolver un problema. Ese enfoque es soportado por los lenguajes de programación que es reflejado por los conceptos del lenguaje (las construcciones y los mecanismos de evaluación).

Para encontrar un buen estilo de programación se requiere utilizar conceptos de programación que generalmente están asociados a diferentes paradigmas de programación. Esta tarea se dificulta con lenguajes de programación que implementan un único paradigma. Un paradigma particular genera un tipo específico de estilo de implementación y se adapta mejor a cierto tipo de aplicaciones. En la actualidad, las aplicaciones son heterogéneas, son sistemas complejos que requieren una mezcla de metodologías; por ejemplo, las aplicaciones de Internet combinan múltiples lenguajes, y también múltiples paradigmas; ya que deben tener un balance entre varias incumbencias, ser implementadas de forma rápida y confiable, proveer acceso seguro, soportar concurrencia y distribución. En este escenario los desarrolladores requieren mejorar su productividad, y para ello posibles opciones son el desarrollo basado en programación multiparadigma y programación políglota.

La noción de lenguaje de programación multiparadigma se refiere a la integración de conceptos y construcciones de dos o más paradigmas, de forma que el programador pueda describir problemas y sus soluciones en un estilo mixto utilizando una vista apropiada en cada momento. La programación multiparadigma es una práctica que emerge como resultado de la coexistencia de los paradigmas orientado a objetos, procedural y declarativo, buscando mejorar la producción en el desarrollo de proyectos. Esta provee las herramientas para afrontar aplicaciones heterogéneas y trabajar cada componente de la aplicación con un paradigma apropiado, logrando eficiencia en el modelado, programación y resolución de problemas.

En este trabajo se presenta una clasificación de paradigmas de programación basada en conceptos y se desarrollan los considerados paradigmas básicos y las características de los lenguajes de programación que los soportan. Se expone la importancia del análisis y diseño del dominio de los problemas que dan origen a la programación multiparadigma, Se estudian los lenguajes multiparadigmas Oz y Ciao Prolog que corresponden a los diferentes enfoques multiparadigma: del lenguaje y por librerías. Esta diferencia se puede observar en el análisis comparativo que se realiza entre ambos: Mozart-Oz permite la programación con distintos paradigmas por medio de construcciones nativas del lenguaje, mientras que Ciao Prolog utiliza extensiones del lenguaje para incluir los diferentes paradigmas. Se concluye con la importancia de poder utilizar conceptos y construcciones de diferentes paradigmas en forma conjunta para una representación integral.

 

Encuestas sobre materias del 2do cuatrimestre 2015

Están disponibles las encuestas a los alumnos de todas las materias dictadas en la FaI durante el segundo cuatrimestre 2015. Cada alumno puede responder una encuesta por cada materia en la que haya estado inscripto dicho cuatrimestre.

Las encuestas son anónimas: Al momento de loguearse se pide el DNI para verificar que un alumno no complete la encuesta más de una vez por materia, pero luego las opiniones se almacenan por separado, sin referencia al autor

Las encuestas tienen como objetivo saber lo que opinan los estudiantes del cursado de cada materia (contenido, docentes, dictado, etc). La información recolectada será muy útil para mejorar el dictado de las materias a futuro.

Para acceder al sistema, el nombre de usuario es el número de DNI (la contraseña también lo es la primera vez que se ingresa y luego se puede cambiar).

encuestas

[Responder las encuestas]

 

Se invita a la Comunidad Educativa de la FaI a presenciar la defensa de Tesis de Licenciatura titulada "Implementación de Variabilidad dentro de una Línea de Productos de Software aplicada al Subdominio de Ecología Marina"

 

Dia y lugar: Viernes 11 de diciembre a las 10:00 hs en el Consejo Directivo FAI

Alumno: Victor Pincheira

Directora: Dra. Agustina Buccella

Resumen:
La Ingeniería de Líneas de Productos de Software (ILPS) tiene como objetivo la construcción de una arquitectura de productos que incorpore componentes comunes y variables, definidos dentro de un dominio particular. Esto beneficia el desarrollo de nuevos productos, dado que en lugar de hacerlos desde el principio, se reutilizan los componentes comunes de la plataforma definida y adaptan aquellos componentes variantes según las necesidades funcionales y de calidad requeridas por la nueva aplicación, beneficiando en general al desarrollo de aplicaciones de diferentes dominios.

Por otro lado, los Sistemas de Información Geográficos (GIS, por su siglas en inglés), los cuales contienen un conjunto de requerimientos y herramientas especiales ampliamente usados en cartografía, recursos naturales, arqueología, transporte y logística, entre otras disciplinas, automatizan las tareas de manipulación de datos a gran escala cuyo procesamiento manual sería imposible. La demanda de estos sistemas cada vez más complejos bajo restricciones de tiempo, costo, esfuerzo y calidad hicieron del reuso una necesidad significativa dentro del proceso de desarrollo de software.

La aplicación de las ILPS para el dominio de los GIS permite el reuso de las funcionalidades y requerimientos comunes de los productos desarrollados, y al mismo tiempo aporta flexibilidad para adaptar la Línea de Productos de Software (LPS) a las necesidades específicas de cada producto. Esto se logra a través de la identificación, modelado y realización tanto de los componentes variantes de los servicios geográficos estandarizados como así también de las  funcionalidades variantes obtenidas desde el dominio geográfico. Todos estos componentes se incluyen en una plataforma para la generación de nuevos productos, permitiendo a los desarrolladores reutilizar implementaciones de servicios comunes, instanciar servicios variables e implementar servicios específicos de cada producto.

El objetivo principal de esta tesis consiste en continuar con el enfoque definido en los trabajos previos mediante la utilización de una LPS basada en componentes para la creación de productos en el dominio de los GIS dentro de la disciplina de la ecología marina. Se hace especial hincapié en la investigación para la representación e implementación de la variabilidad definida en los componentes reusables tanto a nivel de diseño como de implementación dentro de la línea. Además, se definen nuevas funcionalidades no implementadas en los trabajos previos para mejorar la visualización de la información y permitir la navegación histórica de los usuarios, analizando, evaluando e implementando una manera de implementar las variabilidades definidas en las mismas.

 

La comunidad educativa de la FaI anuncia con sumo placer que el alumno Diego Giuliani presentó y aprobó su Tesis de Grado titulada "Aprendizaje por refuerzo aplicado a un agente arquero", obteniendo el título de Licenciado en Ciencias de la Computación.

¡Felicitaciones Licenciado!

Foto de la defensa

 

Se invita a la Comunidad Educativa de la FaI a presenciar la defensa de Tesis de Licenciatura titulada "Aprendizaje por refuerzo aplicado a un agente arquero"

Día y lugar: Jueves 26 de noviembre de 2015 a las 10:00 hs en CD FaI

Alumno: Diego Giuliani

Directora: Dra. Laura Cecchi

Resumen

En las últimas décadas, el aprendizaje automático ha evolucionado a pasos agigantados. Se han desarrollado algoritmos eficientes para ciertos tipos de aprendizaje, como por ejemplo sistemas de reconocimiento facial, automóviles que conducen en forma autónoma y sistemas de detección de fraude electrónico. Una de las áreas que ha despertado en los investigadores mayor interés en los últimos años dentro del aprendizaje automático es el aprendizaje por refuerzo. El aprendizaje por refuerzo estudia cómo un agente es capaz de aprender a partir de la experiencia obtenida por la interacción con su ambiente, sin la intervención de un supervisor externo. 
En el campo de la robótica, el aprendizaje por refuerzo tiene particular importancia debido a las características inherentes del entorno en que se desarrollan los agentes. Dichos entornos se caracterizan por ser continuos, dinámicos y estocásticos. Esto diculta la creación de modelos del ambiente necesarios para el entrenamiento del agente.
En este trabajo se presenta una arquitectura de un agente arquero que aprende a atajar pelotas a través del entrenamiento utilizando una técnica de aprendizaje por refuerzo: Diferencia Temporal. En particular, el agente aprende a través del algoritmo Q-learning ya que esta técnica no requiere conocer previamente un modelo del entorno.  A fin de definir los estados, se discretizó el ambiente dividiendo a la cancha en regiones imaginarias y al movimiento de la pelota en secciones fijas. En base a esta discretización del ambiente, se observó que existía una simetría de estados respecto al centro de la cancha y se definió una relación de equivalencia entre los estados. Esta relación de equivalencia permitió aumentar la exploración del espacio de estados y reducir la complejidad espacial del algoritmo. El framework desarrollado en este trabajo puede ser extendido y aplicado en otro ambiente siempre y cuando se respete la relación de equivalencia entre los estados opuestos. 
Por otra parte, se presenta la implementación de un simulador que controla tanto el aprendizaje del agente como los movimientos de la pelota y del arquero. Gracias su diseño modular, este puede ser fácilmente modificado para incorporar variables físicas presentes en el mundo real, como por ejemplo la velocidad variable de la pelota o casos en los que la pelota rebota en un objeto.

Página 104 de 158