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.
Andrés Abeliuk
Profesor Asistente c7001facdc1011ec8ca30242ac130004@dcc.uchile.cl aabeliuk@dcc.uchile.cl
Jérémy Barbay
Profesor Asistente c7008d66dc1011ec8ca30242ac130004@dcc.uchile.cl jbarbay@dcc.uchile.cl
Benjamín Bustos
Profesor Titular c700f0e4dc1011ec8ca30242ac130004@dcc.uchile.cl bebustos@dcc.uchile.cl
Aidan Hogan
Profesor Asociado c7015b2edc1011ec8ca30242ac130004@dcc.uchile.cl ahogan@dcc.uchile.cl
Gonzalo Navarro
Profesor Titular c701bf42dc1011ec8ca30242ac130004@dcc.uchile.cl gnavarro@dcc.uchile.cl
Federico Olmedo
Profesor Asistente c7022482dc1011ec8ca30242ac130004@dcc.uchile.cl folmedo@dcc.uchile.cl
Patricio Poblete
Profesor Titular c7028ec2dc1011ec8ca30242ac130004@dcc.uchile.cl
Éric Tanter
Profesor Titular c702f9c0dc1011ec8ca30242ac130004@dcc.uchile.cl etanter@dcc.uchile.cl
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.
Andrés Abeliuk
Profesor Asistente c703d818dc1011ec8ca30242ac130004@dcc.uchile.cl aabeliuk@dcc.uchile.cl
Felipe Bravo Márquez
Profesor Asistente c7044730dc1011ec8ca30242ac130004@dcc.uchile.cl fbravo@dcc.uchile.cl
Benjamín Bustos
Profesor Titular c704a900dc1011ec8ca30242ac130004@dcc.uchile.cl bebustos@dcc.uchile.cl
Claudio Gutiérrez
Profesor Titular c7050cc4dc1011ec8ca30242ac130004@dcc.uchile.cl cgutierr@dcc.uchile.cl
Aidan Hogan
Profesor Asociado c70574b6dc1011ec8ca30242ac130004@dcc.uchile.cl ahogan@dcc.uchile.cl
Gonzalo Navarro
Profesor Titular c705d816dc1011ec8ca30242ac130004@dcc.uchile.cl gnavarro@dcc.uchile.cl
Bárbara Poblete
Profesora Asociada c7063e32dc1011ec8ca30242ac130004@dcc.uchile.cl bpoblete@dcc.uchile.cl
Iván Sipirán
Profesor Asistente c706a3b8dc1011ec8ca30242ac130004@dcc.uchile.cl isipiran@dcc.uchile.cl
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).
Alejandro Hevia
Profesor Asociado c7077248dc1011ec8ca30242ac130004@dcc.uchile.cl ahevia@dcc.uchile.cl
Federico Olmedo
Profesor Asistente c707d422dc1011ec8ca30242ac130004@dcc.uchile.cl folmedo@dcc.uchile.cl
Bárbara Poblete
Profesora Asociada c7083a16dc1011ec8ca30242ac130004@dcc.uchile.cl bpoblete@dcc.uchile.cl
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.
Andrés Abeliuk
Profesor Asistente c7090a90dc1011ec8ca30242ac130004@dcc.uchile.cl aabeliuk@dcc.uchile.cl
Nelson Baloian
Profesor Asociado c70987d6dc1011ec8ca30242ac130004@dcc.uchile.cl nbaloian@dcc.uchile.cl
Francisco J. Gutiérrez
Profesor Asistente c709f036dc1011ec8ca30242ac130004@dcc.uchile.cl frgutier@dcc.uchile.cl
Sergio Ochoa
Profesor Asociado c70a5bc0dc1011ec8ca30242ac130004@dcc.uchile.cl sochoa@dcc.uchile.cl
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.
María Cecilia Bastarrica
Profesora Asociada c70b28a2dc1011ec8ca30242ac130004@dcc.uchile.cl cecilia@dcc.uchile.cl
Francisco J. Gutiérrez
Profesor Asistente c70b9206dc1011ec8ca30242ac130004@dcc.uchile.cl frgutier@dcc.uchile.cl
Sergio Ochoa
Profesor Asociado c70c02c2dc1011ec8ca30242ac130004@dcc.uchile.cl sochoa@dcc.uchile.cl
Federico Olmedo
Profesor Asistente c70c6cd0dc1011ec8ca30242ac130004@dcc.uchile.cl folmedo@dcc.uchile.cl
Jocelyn Simmonds
Profesora Asistente c70cdb34dc1011ec8ca30242ac130004@dcc.uchile.cl jsimmond@dcc.uchile.cl
Éric Tanter
Profesor Titular c70d495cdc1011ec8ca30242ac130004@dcc.uchile.cl etanter@dcc.uchile.cl
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.
Andrés Abeliuk
Profesor Asistente c70e2624dc1011ec8ca30242ac130004@dcc.uchile.cl aabeliuk@dcc.uchile.cl
Felipe Bravo Márquez
Profesor Asistente c70e9a50dc1011ec8ca30242ac130004@dcc.uchile.cl fbravo@dcc.uchile.cl
Benjamín Bustos
Profesor Titular c70efeaadc1011ec8ca30242ac130004@dcc.uchile.cl bebustos@dcc.uchile.cl
Claudio Gutiérrez
Profesor Titular c70f68d6dc1011ec8ca30242ac130004@dcc.uchile.cl cgutierr@dcc.uchile.cl
Aidan Hogan
Profesor Asociado c70fd366dc1011ec8ca30242ac130004@dcc.uchile.cl ahogan@dcc.uchile.cl
Bárbara Poblete
Profesora Asociada c7103a0edc1011ec8ca30242ac130004@dcc.uchile.cl bpoblete@dcc.uchile.cl
Iván Sipirán
Profesor Asistente c710a1a6dc1011ec8ca30242ac130004@dcc.uchile.cl isipiran@dcc.uchile.cl
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.
Federico Olmedo
Profesor Asistente c7116622dc1011ec8ca30242ac130004@dcc.uchile.cl folmedo@dcc.uchile.cl
Éric Tanter
Profesor Titular c711d864dc1011ec8ca30242ac130004@dcc.uchile.cl etanter@dcc.uchile.cl
Nancy Hitschfeld
Profesora Titular c7129dc6dc1011ec8ca30242ac130004@dcc.uchile.cl nancy@dcc.uchile.cl
María Cecilia Rivara
Profesora Titular c713041edc1011ec8ca30242ac130004@dcc.uchile.cl mcrivara@dcc.uchile.cl
Iván Sipirán
Profesor Asistente c7136d0adc1011ec8ca30242ac130004@dcc.uchile.cl isipiran@dcc.uchile.cl
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.
María Cecilia Bastarrica
Profesora Asociada c7144022dc1011ec8ca30242ac130004@dcc.uchile.cl cecilia@dcc.uchile.cl
Francisco J. Gutiérrez
Profesor Asistente c714a4fedc1011ec8ca30242ac130004@dcc.uchile.cl frgutier@dcc.uchile.cl
Nancy Hitschfeld
Profesora Titular c7150ca0dc1011ec8ca30242ac130004@dcc.uchile.cl nancy@dcc.uchile.cl
Jocelyn Simmonds
Profesora Asistente c71580f4dc1011ec8ca30242ac130004@dcc.uchile.cl jsimmond@dcc.uchile.cl
Beauchef #851, Edificio Poniente, segundo piso, oficina 219. Santiago