Close
Twitter Instagram LinkedIn Facebook YouTube Spotify
DCC | Áreas de Investigación

Á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

La Criptografía busca definir y analizar lo que entendemos por seguridad computacional, estudiando los algoritmos, técnicas y protocolos para garantizarla. Los objetivos usuales en esta área son la privacidad de los datos transmitidos electrónicamente así como su integridad y autenticidad. Por ejemplo, la encriptación de datos permite garantizar que sólo el destinatario del mensaje pueda comprender su significado, mientras las firmas digitales permiten asegurar que el mensaje provenga de un remitente específico y que su contenido no haya sido modificado. La criptografía también estudia cómo llevar a cabo, en forma segura, procesos (protocolos) más complejos donde varios elementos interactúan remotamente. Votación electrónica segura, canales de comunicación que preserven el anonimato de los participantes o mecanismos de consulta de bases de datos en forma privada (que no revelan la información buscada a la base de datos) son ejemplos de protocolos criptográficos. El área de la criptografía también estudia los fundamentos teóricos (matemáticos) de dichas técnicas y protocolos, así como sus aplicaciones a otras áreas a fin de mantener privacidad, autenticidad y tolerancia a fallas.

El área de la seguridad computacional está estrechamente ligada a la criptografía pues estudia las técnicas y requerimientos prácticos para implementar sistemas seguros. En ella se incluyen temas como análisis de amenazas y objetivos (costo/beneficio), análisis y prevención de intrusión, prevención y detección de vulnerabilidades en la programación de software, técnicas de prevención y análisis de malware, y análisis de componentes no computacionales de seguridad (ingeniería social y metodologías de uso correcto de los mecanismos de seguridad).

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 Departamento de Ciencias de la Computación, Universidad de Chile
🔐