Terminaron las jornadas. ¡Gracias a todos por venir!

Sobre las jornadas

Las Jornadas de Ciencias de la Computación (JCC) se presentan como 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 con el objetivo de 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 que nos permite mantenernos actualizados sobre las tendencias en investigación y desarrollo que se realizan en la región.

La edición 2013 de las JCC se llevará a cabo los días 16, 17 y 18 de Octubre en el salón de actos de la Facultad de Ciencias Exactas, Ingeniería y Agrimensura de Rosario, en el horario de 9:00 a 18:00 (con descansos para el almuerzo y un coffee break) incluyendo una cena de camaradería en la noche del Viernes.

Las JCC se llevaron a cabo por primera vez en noviembre del año 2000. Desde esa fecha, se han realizado jornadas durante los años 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 y 2012. En la exposiciones de todas estas jornadas 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, Universidad Nacional de Córdoba, 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 de docentes y de estudiantes de la carrera Licenciatura en Ciencias de la Computación.

Análisis Binario para Todos

"Symbolic Exploit Assistant" o SEA, es una herramienta para detectar vulnerabilidades de manera asistida en archivos binarios ejecutables (cuyo código fuente no está disponible). A grandes rasgos, SEA funciona analizando la propagación de los datos provisto de entrada y puede identificar potenciales problemas de seguridad directamente en el archivo ejecutable, permitiendo a un analista, determinar bajo que condiciones se podrían aprovechar errores del programa. Una abstract extendido aceptado en CSTVA 2013 con detalles técnicos sobre el funcionamiento de la herramienta está disponible aquí

Esta herramienta se está desarrollando íntegramente en Python y apunta a tener una arquitectura modular de manera de permitir el agregado de nuevas funcionalidades, en forma de tipos de vulnerabilidades comunes. Este proyecto se realiza de manera conjunta entre el instituto argentino CIFASIS (Universidad Nacional de Rosario) y el instituto francés VERIMAG (Universidad de Grenoble).

por Gustavo Grieco (FCEIA, UNR)

BLISS: Bounded Lazy Initialization with SAT-Support

En esta charla introduciré el estado del arte en los temas de análisis automático de código con contratos, tanto secuencial como paralelo, y presentaré la investigación que mi grupo realiza en el área. Para los intresados habrá también demos de las herramientas desarrolladas. Finalmente, presentaré temas que pueden ser de interés para quienes tengan interés en iniciarse en la investigación en esta disciplina.

por Marcelo Frías (ITBA)

FUN: una herramienta didáctica para la derivación de programas funcionales

En su artículo “Sobre la crueldad de verdaderamente enseñar ciencias de la computación”, Edsger W. Dijkstra nos invita a pensar una forma de enseñar programación en un curso introductorio: "Desde el comienzo, y a través de todo el curso, enfatizamos que la tarea del programador no es sólo escribir un programa, sino que su tarea principal es dar una prueba formal de que el programa que propone cumple la especificación funcional (igualmente formal). Mientras se diseñan demostraciones y programas conjuntamente, el estudiante adquiere una amplia oportunidad de perfeccionar su destreza manipulativa con el cálculo de predicados".

Persiguiendo la filosofía de enseñanza de Dijkstra, un grupo de docentes y estudiantes de FaMAF de la Universidad Nacional de Córdoba desarrollamos FUN con el objetivo de hacer una herramienta que acompañe al estudiante en el aprendizaje de la programación. Esta herramienta consiste en un IDE (entorno de desarrollo integrado) para escribir programas y pruebas en un lenguaje que permite definir programas funcionales, u su especificación, además de realizar pruebas matemáticas utilizando lógica proposicional y de predicados, y realizar derivaciones; las pruebas y derivaciones son verificadas automáticamente por el software.

por Araceli Acosta (FaMAF, UNC)

Breve Introducción a Semánticas de Procesos

Un proceso es una representación abstracta de una entidad que interactúa con otras entidades. La semántica de procesos es la rama de la ciencia de la computación que se encarga de definir el comportamiento observable de estos objetos. De esta forma es posible decidir cuando dos procesos son iguales. En esta charla explicaremos cómo se definen estas igualdades. Además presentaremos cómo se define un lenguaje para especificar procesos utilizando semántica operacional estructurada.

por Matias Lee (FaMAF, UNC)

Introducción al Análisis de Lenguaje Natural basado en Corpus

El Procesamiento de Lenguaje Natural (PLN) es el área que estudia algoritmos que procesan lenguaje humano. Las tareas de PLN van desde el reconocimiento del habla hasta la extracción de información semántica, pasando por la segmentación de palabras y oraciones, y el análisis sintáctico, entre otras. A mediados de los 90, la introducción del uso de corpus anotados y de modelos estadísticos produjo una revolución en la performance de los sistemas de PLN.

En esta charla daré una introducción al PLN basado en corpus, con especial énfasis en la tarea de análisis sintáctico. Para ello introduciré conceptos de gramáticas probabilísticas, algoritmos de estimación basada en corpus, y algoritmos de análisis sintáctico (parsing) de oraciones.

por Franco Luque (FaMAF, UNC)

Linux Device Driver for Dummies (L-D3)

HORARIO: Jueves 10:00-12:00, Viernes 9:00-12:00

Un primer acercamiento al desarrollo de drivers para el kernel Linux. El curso consiste en dos jornadas de dos y tres horas respectivamente.

Requisitos:

  • Manejo fluído oral y escrito de lenguaje C
  • Manejo fluído del shell típico en entornos UNIX
  • Carencia de miedo a ejercer el pensamiento crítico
  • Sentido del humor y la ironía :-)
  • Programa tentativo:

    Día 1:

  • Introducción al kernel, source tree, repositorio git
  • Concepto de device, files y llamadas de sistema. Strace.
  • Mi primer módulo de kernel: Hello world!
  • Char device vs. Block device. Implementación de un device char.
  • Día 2:

  • API interna. El concepto de API inestable.
  • Estructura de datos. Listas enlazadas.
  • Implementación de módulo "blackhole".
  • Usamos el driver blackhole para comer toda la RAM y nos sentamos a ver como el kernel se muere.
  • Bonus track #1: un diseño controvertido: el OOM killer.
  • Bonus track #2: kmemleak: un recolector de basura, que no recolecta nada.
  • Bibliografía:
    [1] "Linux Device Drivers" 3rd edition.
    Jonathan Corbet, Alessandro Rubini and Greg Kroah-Hartman

    [2] "When Linux Runs Out of Memory"
    Mulyadi Santosa

    [3] "Detecting kernel memory leaks"
    Jonathan Corbet

    Repositorio Git:

    https://github.com/ezequielgarcia/lddfd/

    Nota: este taller se desarrollará en el Laboratorio del segundo piso de la facultad, a diferencia de todas las demas charlas que se harán en el Salón de Actos.

    por Ezequiel García (VanguardiaSur)

    Introducción a los sistemas embebidos

    En la actualidad los sistemas embebidos han cobrado una importante relevancia no sólo en un conjunto muy amplio de industrias (militar, automotriz, espacial, robotica, etc) sino que también lo ha hecho en la vida cotidiana de las personas. Basta con imaginar un día típico y los objetos con los que interactuamos para darnos cuenta de esto : Microondas, DVD, reproductores de música, celulares, automoviles, decodificadores, etc.

    Vamos a introducir los conceptos básicos del desarrollo de software embebido, sus ventajas, limitantes, tecnología disponible y las principales características que lo diferencian de un desarrollo para un sistema no embebido.

    por Gonzalo Raposo (GlobalLogic)

    Introducción a los sistemas de tiempo real

    Producto del avance del software embebido y las aplicaciones mas y mas complejas, se hace necesario contar con un marco de trabajo que le permita al usuario manejar de una forma medianamente transparente y eficiente decenas de tareas en forma concurrente, cada una con deadlines de tiempo y penalidades de distinta escala al hecho de no cumplir el requisito temporal, desde una llamada perdida hasta el hundimiento de un barco de decenas de millones de dolares.

    Nota: se recomienda asistir a la charla de sistemas embebidos previamente a esta charla.

    por Lucía Ginart & Daniel Corbatta (GlobalLogic)

    Heurísticas para la obtención de un modelo de datos en sistemas estructurados

    Durante el proceso de mantenimiento de un sistema heredado, la obtención de la arquitectura del mismo es una tarea relevante ya que aporta información acerca de su diseño. La necesidad de mantenimiento de estos sistemas surge porque los mismos evolucionan por diferentes tecnologías, nuevas plataformas o requerimientos cambiantes. Sin embargo, este proceso no se realiza en forma rigurosa, y el impacto se ve en una documentación parcial o incompleta. La documentación es vital pues permite comprender cuál es el diseño del sistema analizado y de esta manera, planificar posibles modificaciones o actualización del mismo. Las metodologías actuales en la recuperación del diseño no son adecuadas para los sistemas existentes. La disertación tendrá el objetivo de mostrar los estudios relacionados al desarrollo de una herramienta que ayude a analizar y comprender el código heredado. El resultado esperado consiste en una modelo gráfico de datos bajo el paradigma de Orientación a Objetos. Esta instancia del proyecto aborda código en lenguaje Ansi C y proyecta generar un conjunto de clases que resultarán de utilidad para construir un modelo de datos.

    por Ignacio Cassol (Ingeniería, Universidad Austral)

    ¿Para qué estudiar ciencias de la computación?

    Docentes, egresados y alumnos de la carrera nos cuentan un poco sobre las ciencias de la computación y de nuestra carrera en particular.

    por Federico Bergero, Rafael Namías y Pablo Racca

    Fundación Sadosky: ¿Por qué estudiar computación?

  • Fundación Sadosky
  • Un poco de historia de la computación
  • Un poco de historia en la FCEIA
  • Empleo y egresados
  • Algunos prejuicios de la profesión
  • Cómo es en realidad
  • El software hoy
  • ¿Por qué?
  • Qué estamos haciendo en la Fundación Sadosky
  • por Álvaro Ruiz de Mendarozqueta

    ¿Cómo producir un cambio tecnológico a nivel mundial?

    La empresa NeuralSoft trae esta charla, dada por su CEO.

    por Gustavo Viceconti (CEO de NeuralSoft)

    Contacto

    Si querés asistir y no sos de Rosario, ¡avisanos!. Estamos viendo de organizar un hospedaje para los alumnos de otras facultades interesados en asistir.

    • Dirección: Pellegrini 250 - Rosario, Santa Fe, Argentina
    • Teléfono: 0341-48026 49 al 59 int 231 (de 8 a 14hs)
    • Fax: 0341-4802654
    • E-mail: jcc (arroba) fceia (punto) unr (punto) edu (punto) ar

    E-Mail

    Patrocinan

    Auspiciantes