Close
Twitter Instagram LinkedIn Facebook YouTube Spotify
DCC | Líneas/Áreas de Investigación

Líneas/Áreas de Investigación

Teoría de la Computación

La Teoría de la Computación comprende varias áreas, de las cuales la investigación en el DCC se centra principalmente en dos subáreas: algoritmos y estructuras de datos, y lógica.

Los algoritmos y estructuras de datos (algoritmos de aquí en más) están en la base misma de la Ciencia de la Computación y la acompañan desde su origen. Su estudio se centra en la búsqueda de mecanismos eficientes (en tiempo de CPU, espacio, uso de red, acceso al disco, etc.) de llevar a cabo tareas computacionales. Asociado al diseño de algoritmos está su análisis; una disciplina cercana a las matemáticas que busca establecer el desempeño de estos. Asimismo debe considerarse la experimentación para completar un análisis adecuado del desempeño.

Algunas áreas en las que se trabaja en el Departamento son análisis de algoritmos, algoritmos geométricos, algoritmos y estructuras de datos para búsqueda en texto y en la Web, estructuras de datos comprimidas, algoritmos adaptativos, índices en bases de datos multimediales, multidimensionales y métricas.

La lógica y la computación se nutren una de la otra: por un lado, la lógica siempre ha sido un elemento central de muchas técnicas de análisis y verificación de programas; por otro lado, en las últimas décadas se han desarrollado considerablemente los asistentes de pruebas (/proof assistants/ y /theorem provers/) que tienen impacto tanto en computación como en matemáticas. En particular, en el DCC se investigan distintos aspectos y variaciones de teorías de tipos dependientes, incluyendo su impacto sobre asistentes de pruebas.

Ciencia e Ingeniería de Datos

El diluvio de datos o explosión de la información es el fenómeno actual producido por el dramático incremento en la cantidad de datos generados y publicados por humanos, dispositivos, sensores, etc. La ciencia e ingeniería de los datos (CID) es el área que se encarga de lidiar con este problema, diseñando herramientas para extraer información relevante desde aquellas fuentes de datos voluminosos, heterogéneos, y/o complejos. Debido a la transversalidad del fenómeno del diluvio de datos la CID tiene hoy en día aplicaciones en muchas áreas del conocimiento, incluyendo, por ejemplo, astronomía, finanzas, geología, medicina, transportes, etc.

Nuestro objetivo es formar en las y los estudiantes la capacidad de analizar y representar grandes volúmenes de datos complejos, tales como: imágenes, video, redes sociales, sensores, series temporales, entre otros, utilizando técnicas de áreas como bases de datos, minería de datos, machine learning, cloud computing, multimedia, representación del conocimiento, social analytics, crowdsourcing e inteligencia artificial, para detectar patrones significativos en los datos, además de deducir y generar conocimiento a partir de estos.

Seguridad y Privacidad

Este área se desarrolla alrededor de los procesos que manipulan datos y, de manera general, su objetivo es diseñar y analizar técnicas para garantizar diversas propiedades de dichos procesos, como son la integridad, autenticidad o privacidad de los datos. En el DCC nos enfocamos, en particular, en las siguientes tres líneas. 

Criptografía aplicada. En primer lugar, estudiamos problemas de sistemas distribuidos donde debemos combinar privacidad con integridad y robustez, de manera verificable. Ejemplo de ellos son los sistemas de votación electrónica, de denuncia anónima de acoso sexual, de aleatoriedad verificable para la selección de vocales de mesa, o de coordinación segura en intersecciones para redes vehiculares. En esta línea, diseñamos y desarrollamos soluciones a partir de técnicas criptográficas, lo cual permite especificar y demostrar formalmente su seguridad.

Privacidad de datos. Otro problema que abordamos está relacionado a la privacidad de datos: ¿cómo podemos publicar, analizar y/o consultar datos sensibles de individuos, sin comprometer su privacidad? Estudiamos cómo aplicar técnicas del estado del estado del arte—por ejemplo, privacidad diferencial—a casos de usos reales, así como también desarrollamos los propios fundamentos de dichas técnicas, diseñando nuevos análisis de datos diferencialmente privados.   

Seguridad basada en lenguajes. Un problema complementario es cómo garantizar que los propios sistemas de software establezcan correctamente esta clase de requisitos. En este sentido, diseñamos mecanismos para lenguajes de programación—por ejemplo, sistemas de tipos avanzados—que permiten al programador establecer propiedades formales de seguridad y privacidad sobre los sistemas desarrollados, además de guiarlos en el propio proceso de desarrollo.

Computación Centrada en las Personas

Esta área estudia, de manera holística, los procesos de diseño, desarrollo y evaluación de sistemas computacionales interactivos con un enfoque particular en los usuarios, incluyendo factores humanos y sociales derivados del uso y del impacto de la tecnología en la vida de las personas. En este contexto, en esta área se busca diseñar, desarrollar y evaluar empíricamente interfaces multimodales centradas en el usuario, siguiendo modelos y metodologías centradas en las personas, considerando explícitamente sus valores, expectativas, actitudes, intereses y puntos de vista.

Dentro de las áreas de aplicación investigadas en el DCC, un interés particular está puesto en el impacto de las tecnologías computacionales en los procesos de enseñanza y aprendizaje. En esta línea, se estudia de manera particular el uso, efectos y consecuencias del diseño, uso e integración de las tecnologías de la información en el proceso educativo. Así, se busca acercar al aprendiz al conocimiento y manejo de las últimas tecnologías digitales, como computadores de última generación, dispositivos móviles e interfaces touch, para fines de enseñanza y aprendizaje. De igual manera, se estudia cómo estas tecnologías pueden contribuir a potenciar y expandir la mente de los aprendices, de manera que sus aprendizajes sean más significativos y creativos.

Asimismo, el DCC tiene una amplia trayectoria histórica en el estudio, diseño y desarrollo de sistemas socio-técnicos, los cuales buscan asistir a un grupo de personas a realizar tareas específicas con un objetivo común de manera colaborativa. Estos sistemas típicamente proveen una interfaz a un ambiente compartido y mecanismos de percepción de trabajo en equipo. Esta área es un paraguas que ha dado lugar al desarrollo de diversas subáreas de estudio, como por ejemplo: el Aprendizaje Colaborativo soportado por Computador, la Computación Social, la Computación Móvil y los Sistemas Ubicuos y Pervasivos.

Ingeniería de Software

Dentro de la Ciencia de la Computación es el área encargada de construir software de calidad en presencia de recursos limitados, considerando tanto los aspectos relativos al producto de software como el proceso a través del cual éste se construye.

Se entiende como producto de software toda una serie de artefactos entre los cuales se encuentran el código fuente, datos, archivos de configuración, especificaciones de requisitos, casos de prueba, arquitectura del software y código ejecutable, entre otros. Todos y cada uno de estos elementos presenta sus propios desafíos en lo referente a su especificación, contenido y notación o lenguaje adecuado en cada caso.

Todo proceso se define como una serie de tareas desarrolladas por un conjunto de roles para producir ciertos artefactos. En el caso de la Ingeniería de Software, los artefactos son los antes mencionados. Sin embargo, existen múltiples y variadas propuestas acerca de cuál es la mejor forma de construirlos, quién debe tomar parte en este proceso y cuál es el orden de las tareas en el proceso de desarrollo. El proceso más apropiado depende de las características de la organización que llevará a cabo el desarrollo, y del contexto específico del proyecto a abordar. Entre las variables de contexto a considerar está la naturaleza del software a construir y los recursos disponibles para hacerlo.

Inteligencia Artificial

La inteligencia artificial (IA) comprende a una familia de modelos y algoritmos que emulan alguna forma de razonamiento humano, como la comprensión de una imagen, o del habla, o la traducción de un texto de un idioma a otro.

En sus orígenes, la IA se basaba en el uso de métodos lógicos y la construcción de sistemas expertos para resolver estos problemas. En los tiempos actuales, la IA se encuentra estrechamente relacionada con los datos, esto se debe a que los sistemas de IA modernos se construyen en gran medida mediante algoritmos de aprendizaje automático entrenados sobre grandes volúmenes de datos.

Las subáreas de la IA que se desarrollan en el DCC incluyen el aprendizaje automático, el aprendizaje profundo, el procesamiento de lenguaje natural, la visión computacional, los algoritmos genéticos y la neuroevolución.

Lenguajes de Programación

Los lenguajes de programación son el medio con el cual los programadores construyen sistemas computacionales. Su rol central en el desarrollo de software hace que los lenguajes tienen que soportar varias aristas importantes, a veces contradictorias entre si, como correctitud, robustez, eficiencia, modularidad, adaptabilidad, legibilidad, y mantenibilidad. Por ende, existen muchísimos lenguajes de programación hoy en día, la mayoría en evolución constante, y siguen surgiendo nuevos lenguajes regularmente, para así adaptarse a los nuevos desafíos tecnológicos que enfrentan los sistemas de software.

En este contexto, investigamos múltiples facetas de los lenguajes de programación, y de la programación en general, tanto teóricas como aplicadas: diseño de mecanismos más convenientes para realizar ciertas tareas, formalización de lenguajes y estudio de sus propiedades semánticas, técnicas de implementación y optimización, análisis estático y dinámico de programas, estudios empíricos de la programación en la práctica, ambientes de desarrollo, etc.

Computación para Ciencia e Ingeniería

Esta área comprende el desarrollo de algoritmos, técnicas computacionales y software para problemas aplicados complejos en ciencia e ingeniería, medicina, videojuegos  y otras aplicaciones del mundo real. En el DCC se trabaja en especial en el desarrollo de algoritmos, tanto secuenciales como paralelos, y software geométricos, para la discretización de dominios en dos (2D) y tres dimensiones (3D). En particular, las discretizaciones consisten en triangulaciones o mallas de polígonos(convexos o no), en 2D, y en mallas de tetraedros o poliedros generales en 3D. Esto da soporte a la computación gráfica, la visualización científica, la visualización realista, el diseño de las arquitecturas de hardware gráficas, la solución de problemas numéricos sobre superficies y todas las aplicaciones de estos temas. Se refiere a la necesidad de modelar objetos geométricos continuos en base a una cantidad finita y adecuada de información para los fines requeridos por una aplicación específica.

El grupo de investigadoras e investigadores de esta área realiza investigación en métodos para la modelación geométrica discreta de objetos, principalmente en algoritmos para triangulaciones y para mallas de polígonos y poliedros, tanto secuenciales como paralelos, y en sus aplicaciones a ingeniería, medicina, astronomía, arqueología y herencia cultural, computación gráfica y visualización científica. Además, se abordan problemas relacionados al análisis y reconocimiento de imágenes.

Educación en Computación

Hasta muy recientemente, las ciencias de la computación han sido abordadas como una disciplina de estudio únicamente a nivel universitario. Sin embargo, cada vez es más frecuente acercar la computación como un dominio curricular a poblaciones más diversas, cubriendo desde la educación a nivel escolar a la educación continua en entornos profesionales.

En este contexto, realizamos investigación con una alta componente empírica sobre métodos, técnicas y perspectivas modernas de educación en ciencias de la computación. Las principales sub-líneas desarrolladas actualmente son: el desarrollo del pensamiento computacional y el estudio empírico de factores humanos y sociales en la enseñanza y aprendizaje de la programación e ingeniería de software, tanto a nivel universitario como profesional.

Contacto

Ubicación

Departamento de Ciencias de la Computación
FCFM, Universidad de Chile

Beauchef #851, Edificio Poniente, segundo piso, oficina 219. Santiago

© 2022 - 2024 Departamento de Ciencias de la Computación, Universidad de Chile