Jornadas de Ciencias de la Computación
Luego de dos ediciones virtuales, las Jornadas de Ciencias de la Computación vuelven a su formato presencial los días 26, 27 y 28 de octubre. Contaremos con la presencia de destacados expositores de distintas localidades argentinas, que están radicados en diferentes partes del mundo. Las charlas se realizarán en el salón de actos de la Facultad de Ciencias Exactas, Ingeniería y Agrimensura, además de actividades y talleres abiertos para todos los asistentes. También estaremos difundiendo más información en la cuenta de Instagram de las JCC.
Sobre las jornadas
Las Jornadas de Ciencias de la Computación son una iniciativa del Departamento de Ciencias de la Computación de la Facultad de Ciencias Exactas, Ingeniería y Agrimensura de la Universidad Nacional de Rosario, de carácter abierto y gratuito. El objetivo de las mismas es promover el contacto de los alumnos de la Facultad con investigadores y profesionales en temas relacionados con el ámbito de las ciencias de la computación. Al mismo tiempo, nos permite mantenernos actualizados sobre las tendencias en investigación y desarrollo de la región.
Las JCC se llevaron a cabo por primera vez en noviembre del año 2000. Año tras año han participado decenas de personas provenientes de empresas de desarrollo de software local, estudiantes e investigadores de esta casa de estudios y de universidades destacadas de la zona, entre las cuales podemos mencionar a la Universidad Nacional de La Plata, la Universidad de Buenos Aires, la Universidad Nacional de Córdoba, la Universidad Nacional de Río Cuarto y la Universidad de la República (Montevideo-Uruguay). La realización de las JCC es un proceso que continúa año a año y constituye un logro significativo del cuerpo docente y estudiantil de la carrera Licenciatura en Ciencias de la Computación.
Cronograma
Día 1 - 26 de octubre
En este panel recorreremos la historia de nuestra carrera, de la JCC y del DCC, contando anécdotas para que charlemos y hagamos un viaje al pasado.
En esta charla comenzaré con los conceptos básicos de la computación cuántica, explicando la diferencia entre los paradigmas de control clásico y cuánticos en los lenguajes de programación. Luego haré un pantallazo de la línea de investigación en control cuántico, desde los cálculos no tipados hasta sus modelos categóricos. Esta charla pretende ser un resumen de más de diez años de investigación en el área, desde los trabajos fundacionales de Altenkirch y Grattaga, y de Arrrighi y Dowek, hasta los trabajos más recientes.
Recorreremos varias paradojas inquietantes lógicas y probabilísticas sobre asuntos que nos afectan a diario, y veremos que varias pueden ser estudiadas y resueltas a la luz de la teoría de juegos.
Esta es una charla sobre métodos formales, o sea sobre la aplicación de matemática al desarrollo de software. En particular voy a comentarles una serie de procedimientos de decisión sobre la teoría de conjuntos finitos que nos permitirían razonar formal y mecánicamente sobre programas con arreglos. En este caso, los procedimientos de decisión son algoritmos capaces de determinar si una fórmula escrita en un determinado lenguaje es satisfacible o no. El lenguaje es el de la teoría de conjuntos finitos. Este lenguaje permite especificar programas y sistemas complejos. En consecuencia los procedimientos de decisión permiten razonar de forma automática sobre esos programas y sistemas.
También voy a mostrar la implementación de todo esto en {log} (setlog).
En los últimos años los avances en diversos campos como la electrónica, la inteligencia artificial, los sistemas de posicionamiento global y la ingeniería en materiales han impulsado el desarrollo de vehículos autónomos que operan en distintos entornos. En esta charla nos enfocaremos en los vehículos autónomos aéreos no tripulados, en particular helicópteros multi-rotores. Estos vehículos, tanto aquellos tele-operados, como los más avanzados de navegación autónoma, están empezando a reemplazarlos sistemas tripulados en diversos ambientes de operación, teniendo beneficios en lo que respecta a la capacidad de repetición de tareas, reducción de los riesgos para los pilotos u operación en entornos peligrosos como incendios, desastres naturales o industriales.
A medida que las aplicaciones crecen, garantizar la seguridad de los vehículos se vuelve un tema de gran importancia. En esta charla se darán algunos resultados relacionados con el diseño de controles tolerantes a fallas.
Día 2 - 27 de octubre
Vamos a dar dos clases muy entretenidas de algoritmia y estructuras de datos:
• Clase de Grafos: DFS, BFS, Algoritmo de Tarjan para encontrar las componentes fuertemente conexas en un grafo dirigido.
Luego de esta clase van a estar en condiciones de atacar el problema H del Torneo Argentino de Programación 2022: click aqui
• Clase de Strings: Hashing, Z Algorithm, KMP.
Luego de esta clase van a estar en condiciones de atacar (por ejemplo) el problema de contar la cantidad de subcadenas que sean palíndromo en una cadena de caracteres dada: click aqui
El taller se realiza en el Laboratorio 1er piso
Las mónadas son una estructura popular en la programación funcional, utilizada para representar la secuenciación de computaciones con efectos: "programmable semicolons". ¿Pero qué pasa cuando queremos expresar que dos computaciones pueden ejecutar "al mismo tiempo"; de manera no secuencial? ¿Podemos extender las mónadas para expresar esta clase de computaciones? Esta charla presentará una introducción al problema y explorará posibles soluciones.
La teoría estructural de grafos consiste en la caracterización de distintas clases de grafos por medio de subgrafos inducidos prohibidos, propiedades de desmantelamiento o descomposición, propiedades de orden de vértices o aristas, propiedades de las matrices asociadas al grafo (matriz de adyacencia, matriz clique), modelos de intersección, comportamiento de ciertos parámetros y operadores de grafos sobre ellas, y, en particular, aquellos que se conocen como parámetros de ancho.
Ese tipo de caracterizaciones o propiedades son habitualmente aprovechadas para el desarrollo de algoritmos eficientes (para clases de grafos que satisfacen la propiedad) para problemas de ptimización combinatoria que son NP-completos en general. Algunos ejemplos de ese tipo de problemas son coloreo y dominación o, más en general, problemas de cubrimiento. Más aún, para el caso de clases definidas por parámetros de ancho acotado, se conocen algunos metateoremas, que abstraen algoritmos eficientes para una gran variedad de problemas clásicos en grafos.
En esta charla presentaremos resultados estructurales y algorítmicos sobre parámetros de ancho en grafos, algunos clásicos y otros muy recientes.
Presentaremos dos soluciones de ciencia de datos enmarcadas en los proyectos de Costos y Comportamiento del cliente. Recorreremos las distintas etapas de los proyectos comenzando por el planteo del problema y su solución, y continuando luego con su implementación, puesta en producción y seguimiento y monitoreo, compartiendo los múltiples y complejos desafíos que se encuentran en el desarrollo de software dentro de una empresa transnacional como es Grupo San Cristóbal.
Volvimos a la presencialidad y los proyectos del redictado de programación a las JCC. Lxs estudiantes expondrán parte del trabajo que realizan en la cátedra como primer proyecto de programación grupal bajo el paradigma de enseñanza y aprendizaje denominado: Aprendizaje Basado en Proyectos y Problemas. El mismo es implementado en la cátedra del redictado desde el año 2017 contando ya con seis años de experiencia en su aplicación.
Este año la temática es: "Frankensteins+Racket: Programamos figuras compuestas con partes de otras". Cada figura que se presentará ha sido programada usando el lenguaje de programación Racket y cada uno de los Frankesteins+Rackets han sido reanimados usando la técnica de fotogramas. Cada grupo de estudiantes presentarán sus programas, a ¡código abierto!, contando mediante sus experiencias cómo diseñaron cada una de sus figuras, qué dificultades tuvieron, qué vivencias recolectaron, etc.
Bajo la consigna de ¡Aprender a Programar Programando por Proyectos! los trabajos que se expondrán muestran cómo los estudiantes de formar grupal y bajo el seguimiento docente durante todo el desarrollo del proyecto, lograron incorporar conceptos básicos de programación: definición de funciones, parametrización, aplicación y composición de funciones, modularización y abstracción. Junto con la construcción y el diseño formal de programas siguiendo los pasos de diseño de la "Receta Infalible" de la programación.
Los esperamos en el Coffe-Racket-Break para charlar de programación. Este años la charla se centrará en
• "Los monstruos de la programación: aquello que nos da temor cuando nos sentamos a programar"
• "Mi programa se transformó en un monstruo: un programa que se tornó inmanejable"
• "Frankie-programa: saqué muchas partes de internet para armar mi programa. No toco nada porque parece que funciona."
• "Perlas de las Ciencias de la Computación en la historia de Frankensteins de Mary Shelley"
y muchos debates más que charlaremos.
En este panel se expondrá por qué se considera importante incorporar la enseñanza de CC en todos los niveles educativos, qué contenidos dar y qué didáctica utilizar. Dos ejes fundamentales para su incorporación en el sistema educativo son la formación docente y la reforma curricular. Se compartirán iniciativas que lleva adelante la Fundación Sadosky a través de Program.Ar en esta dirección: experiencias locales de formación docente y una propuesta curricular para nivel primario y secundario.
Día 3 - 28 de octubre
Competencia Post TAP!! Vamos a hacer un pequeño contest donde podrán practicar los temas que se dieron y poner a pruebo su habilidad de resolver problemas en general!
El taller se realiza en el Laboratorio 1er piso
La acelerada digitalización del mundo es interpretada y reinterpretada en los más diversos ámbitos, dando cuenta de una dislocación sin precedentes, en palabras de Stiegler un "estado de shock", pero cuyos alcances y límites son aún difusos y cambiantes. Incluso las experiencias del tiempo y del espacio se han modificado significativamente, por la ubicuidad y conectividad de la tecnología y por las velocidades inéditas de los procesos computacionales. La revolución conceptual iniciada por Alan Turing en 1936 cimentó un cambio tecnológico a escala planetaria que alteró todas las formas de la vida y la cultura, poniendo en cuestión las prácticas humanas establecidas, las formas de conocer y la constitución de vínculos colectivos que articulan la constitución misma de la subjetividad.
Para comprender y dimensionar el alcance de estos desacoplamientos abordaremos en esta charla algunas de las características de la noción misma de computación, interrogada en clave filosófica, política y cultural, tanto en sus realizaciones actuales como en sus múltiples posibilidades.
En las últimas décadas se ha experimentado un gran crecimiento en el desarrollo de sistemas embebidos para diversas áreas de aplicación, muchas de las cuales involucran sistemas críticos donde resulta imprescindible proveer garantías de correctitud.
Las técnicas de verificación formal clásicas, que permiten demostrar matemáticamente propiedades de correctitud de un modelo, si bien proveen garantías fuertes, pueden resultar imprácticas o incluso imposibles de aplicar en sistemas completos de escala industrial.
Como respuesta a este problema, el área de Runtime Verification estudia cómo generar monitores a partir de especificaciones declarativas, con el objetivo de analizar la traza de una (única) ejecución para verificar su correctitud. Con el tiempo, fueron surgiendo enfoques más expresivos que permiten realizar análisis más complejos, como es el caso de Lola, un lenguaje de especificación junto con algoritmos para el monitoreo de sistemas síncronos. Desde su publicación en 2005, han surgido numerosos trabajos basados en este lenguaje. Uno de los más recientes es hLola, un lenguaje de dominio específico embebido en Haskell para escribir especificaciones junto con un motor para ejecutar los monitores. Esta implementación presenta varias características atractivas, entre las que se destaca la extensibilidad del lenguaje a nuevos tipos de datos, algo no muy habitual en la mayoría de los lenguajes de Runtime Verification.
En esta charla voy a presentar MCLola, un lenguaje de dominio específico embebido en Haskell para la síntesis de monitores C a partir de especificaciones de alto nivel basadas en el lenguaje Lola, desarrollado a partir de estos antecedentes.
En el contexto actual, la información es de los activos más importantes de las empresas, por lo tanto en este tipo de sistemas debemos garantizar el acceso a la misma el 100% del tiempo.
En esta charla, contaremos nuestra experiencia acerca de cómo logramos garantizar la disponibilidad del Software en tipo de sistemas desde la integración con la Infraestructura teniendo logros como los siguientes:
• Despliegue de recursos automatizado, ya no se necesita intervención humana para ampliar los recursos que el software necesita.
• Tiempo 0 de caídas por actualizaciones, sean de hardware o de software, gracias a la redundancia de todos los componentes de la plataforma.
• Monitoreo y control centralizado de todos los componentes sin necesidades de software de terceros.
Hoy en día las redes sociales juegan un papel fundamental en la interacción entre personas y la propagación de información y noticias. Por lo tanto, resulta de interés poder caracterizar tanto el comportamiento de los usuarios como también el contenido que generan y consumen. Debido al gran volumen de datos, es necesario en estos contextos aplicar herramientas de machine learning y minería de datos.
En esta charla se verán distintas metodologías específicas para el análisis de datos de redes sociales. En particular, repasaremos técnicas de procesamiento del lenguaje natural (NLP) y modelos de Graph Learning. Luego, mostraremos las conclusiones que se pueden sacar cuando se aplican dichas metodologías a datasets de redes sociales en contextos electorales y políticos.
Actividades
Día 1 - 26 de octubre
Vuelve el clásico futbol 5 de la LCC
Ubicación: Instituto Politécnico Superior Gral. San Martín
Club de Juegos Rosario invita a toda la comunidad de Ciencias Exactas a participar de una noche de juegos de mesa
Hay un cupo limitado así que no cuelgues en completar este Formulario para inscribirte
Ubicación: "La Fortaleza", Salta 2845
Día 2 - 27 de octubre
Cerveza entre compañeros
Ubicación: "Beer Bros", Pellegrini 388
Día 3 - 28 de octubre
Para cerrar las Jornadas, joda/cachengue/Party. Entradas hasta jueves al mediodia.
Para realizar la compra de la entrada completar el formulario y seguir sus instrucciones
Ubicación: "Complejo Forest", Brown 3198