====== Temas Previos ====== El semestre indica el semestre del 'F' (del trabajo de memoria en sí). ===== Primavera 2022 ====== * **Objetivo**: //Autocompletando preguntas sobre Wikidata// * **Profesor Guía**: [[ahogan@dcc.uchile.cl|Aidan Hogan]] * **Descripción**: [[https://www.wikidata.org/wiki/Wikidata:Main_Page|Wikidata]] es una gran fuente de información que permite contestar muchos tipos de preguntas. Pero para hacer consultar complejas sobre Wikidata, hay que ser experto en SPARQL, algo que limita su alcance. El objetivo de este trabajo es desarrollar un sistema de "question answering" (QA) sobre Wikidata. La tarea QA asume una pregunta en lenguaje natural como por ejemplo "¿Cuándo fue estrenada la película Sharknado?", y debería dar una respuesta directa como "2013". La tarea general es compleja, pero este tema de memoria tiene que ver con desarrollar una versión más simple de QA basada en autocompletar preguntas sobre un catálogo existente de preguntas y consultas. Por ejemplo, al teclar "cuando fue", se generan sugerencias de preguntas que empiezan así, y si se selecciona "¿Cuándo fue estrenada la película [PELÍCULA]?", se permite también buscar una película para reemplazar "[PELÍCULA]" usando autocomplete. Basado en las selecciones del usuario, se genera una consulta SPARQL que se evalúa sobre el servicio de consulta de Wikidata, generando los resultados finales. [Todavía disponible: 2022-03-22] * **Objetive**: //Perma-Simulation//: An HTML5 simulation of Andrew Millison's sandbox for teaching Permaculture online {{ :populous.png?200|}} * **Memorista:** Cristian Bustos * **Client**: [[millisan@hort.oregonstate.edu|Andrew Millison]] https://horticulture.oregonstate.edu/users/andrew-millison * **Guiding Profesor**: [[jeremy@barbay.cl|Jeremy Barbay]] https://barbay.cl * **Code Available**: https://github.com/msakuta/WebPopulous [2014], running on http://msakuta.github.io/WebPopulous/populous.html * **Description**: (//Memoria//) In his videos for the Permaculture course at Oregon State University (e.g. https://www.youtube.com/watch?v=V3tpaIf6Jcc), Andrew Millison uses a sandbox combined with a webcam and data projector to illustrate visually various interactions between water, land and cultures, showing the passing of years in a matter of minutes. Currently, the next step for his students is to move to the real world and slow time, where mistakes are discovered years later. Could current web technology, such as demonstrated in the remake of the Populous game http://msakuta.github.io/WebPopulous/populous.html allowing to raise and lower lands while independant agents react to the changing state of the terrain, be used to procure students a cheap (i.e. running into any modern browser) interactive (more than watching a video) experience in a virtual world where they can put in practice Andrew Millison's lessons in accelerated time? We propose to develop a simplistic simulator video game in Javascript and HTML5 which can be parameterized to complement each video of Andrew Millison's course with a practical exercise where the student can put into practice the concepts described in the video, in their own virtual sandbox. The success of the project will be evaluated in terms of usability and extendibility 1) by Andrew Millison himself on three exercises, based on three selected videos from his course, 2) by a set of volunteer students from his course on such exercises, and 3) by a web developper from Oregon State University charged to configure the simulator to create additional exercises for other videos of the course, if time allows. The student must be comfortable having meetings and writing their report in English, as the project will be in collaboration with Andrew Millison. [Last Revision: [2022-03-28 Mon]] * **Objetivo**: Generación de software web para visualización interactiva de mallas geométricas Lepp. * **Profesor Guía**: María Cecilia Rivara (mcrivara@dcc.uchile.cl). * **Memorista:** Benjamin Mellado Canihuante * **Descripción**: (//**Memoria** o **Doble Titulación**//) Este trabajo consiste en generar una aplicación web de uso público para estudiantes e investigadores que busquen interactuar, entender y generar sus propias mallas de triangulaciones en dos dimensiones basadas en algoritmos Lepp. El software debe permitir la visualización de estructuras de mallas permitiendo recibir y modificar parámetros como su topología (vertices y aristas) y tambien escoger entre distintos algoritmos de refinamiento Lepp de Rivara y su ángulo de tolerancia. El trabajo involucra el uso de Python o C++ para el software de generación de mallas y un framework como React o Vue para la construcción de la app web. * **Objetivo**: //El Atlas de Wikidata// * **Profesor Guía**: [[ahogan@dcc.uchile.cl|Aidan Hogan]] * **Descripción**: En [[https://www.wikidata.org/wiki/Wikidata:Main_Page|Wikidata]], se pueden buscar entidades por keyword, se pueden hacer consultas para encontrar entidades que satisfagan algunas condiciones, etc. Pero es difícil navegar Wikidata geográficamente, por ejemplo, para ver las entidades locales en una ciudad. El objetivo de este trabajo es desarrollar una interfaz que permite navegar [[https://www.wikidata.org/wiki/Wikidata:Main_Page|Wikidata]] mediante un mapa interactivo. En un primer modo, se puede seleccionar un tipo de entidad en Wikidata, como "faro", usando autocomplete. Para las instancias de ese tipo de entidad, se generará un mapa del mundo desplegando clusters de faros (registrados en Wikidata con geocoordenadas). Al hacer zoom, se pueden ver las ubicaciones de faros individuales, y sus datos detallados en Wikidata. En un segundo modo, se pueden ver todas las entidades en Wikidata en una región más pequeña, como por ejemplo, las entidades registradas por Wikidata en la ciudad de Santiago. El sistema permitiría explorar el dataset geográficamente, y puede ser usando también para entender sesgos regionales en términos de qué tan completo es Wikidata en diferentes partes del mundo. ===== Otoño 2022 ====== * **Objetivo**: Estructura de datos eficiente para indexar colecciones genómicas a partir de su descripción en VCF * **Profesores Guías**: Gonzalo Navarro (gnavarro@dcc.uchile.cl) * **Descripción**: VCF es un formato utilizado para varias aplicaciones bioinformáticas, ver https://en.wikipedia.org/wiki/Variant_Call_Format. La que nos interesa en este caso es describir los genomas de una población como edits de un genoma de referencia. Eso permite una representación muy compacta porque las diferencias suelen ser muy pocas, y a la vez es fácil reconstruir un genoma cualquiera del conjunto. En esta memoria queremos ir más allá y permitir buscar patrones en todos los genomas de la población, usando un índice que ocupe espacio cercano al del archivo VCF. La idea es utilizar un índice basado en la tecnología de Relative Lempel-Ziv (https://users.dcc.uchile.cl/~gnavarro/ps/dcc19.1.pdf), que es compatible con el formato VCF, formando ambos una combinación muy conveniente. Se espera que la memoria provea una interfaz simple que permita crear el índice a partir del archivo VCF (soportando un subconjunto razonable del estándar), hacer búsquedas en el índice, reportar snippets de los resultados, y extraer las partes deseadas de cualquier genoma. * **Objetivo**: Cargar datos grandes en Wikibase * **Profesor Guía**: Aidan Hogan: ahogan@dcc.uchile.cl * **Descripción**: [[https://wikiba.se/|Wikibase]] es la plataforma open source usada por [[https://www.wikidata.org/wiki/Wikidata:Main_Page|Wikidata]] que permite editar datos estructurados de manera colaborativa, buscar datos, consultar datos, etc. Provee muchas funcionalidades para manejar datos diversos y ha sido usada en varias aplicaciones, pero una limitación actual es que demora mucho tiempo para cargar datos grandes porque su proceso de ingestión genera muchas transacciones. Wikibase usa MariaDB, Elasticsearch y BlazeGraph para manejar sus datos. El propósito de este tema es diseñar una mejor solución para cargar datos grandes usando Apache Spark. El primer objetivo será entender bien el modelo de datos actual usado por Wikibase. Luego se usará Spark para traducir un archivo grande de JSON (los datos de entrada) en instrucciones para cargar los datos en Wikibase de una forma más eficiente. Se podrá comparar la solución con los scripts oficiales de Wikibase en términos de la escala y eficiencia del proceso de carga. * **Objetivo**: //Cross-matching de un stream de alertas astronómicas con catálogos externos// * **Profesores Guias**: [[ahogan@dcc.uchile.cl|Aidan Hogan]], Franciso Förster * **Descripción**: ALeRCE es un broker astronómico que procesa streams de observaciones de cuerpos astronómicos, e intenta clasificar los objetos (en clases como estrellas, supernovae, galaxias, etc., por ejemplo, usando métodos de aprendizaje de máquina), generando otro stream enriquecido con meta-datos sobre los objectos. Como parte del proceso de clasificación, se hacen "cross-match" de las observaciones en la entrada con catálogos astronómicos existentes, que permite encontrar más información sobre los cuerpos (si es que están en los catálogos). Actualmente se usa un servicio externo ([[http://cdsxmatch.u-strasbg.fr/xmatch/doc/|CDS]]) que permite hace consultas tipo "cone search" para encontrar objetos en la misma región del cielo en un catálogo externo ([[https://wise2.ipac.caltech.edu/docs/release/allsky/|WISE]]), pero a veces el servicio no está disponible, y el proceso de cross-match se pueden generar muchas peticiones al servicio. Este tema de memoria tiene dos objetivos: replicar el servicio de CDS localmente en un ambiente Amazon EC2 (permitiendo //cone-search// eficiente sobre los datos de WISE), y buscar mejoras (por ejemplo, la inclusión de otros catálogos). * **Objetivo**: Integración de Criptomonedas como medio de pago para una sistema PoS basado en Moqui * **Profesor Guía**: Andrés Muñoz Órdenes (andmunoz@dcc.uchile.cl) * **Descripción**: Las criptomonedas se han convertido en el nuevo medio de pago para algunos servicios. El framework de Moqui ([[http://www.moqui.org|http://www.moqui.org]]), por su parte, ya posee un módulo de PoS que permite realizar la transacción de venta y registrar los pagos por los medios tradicionales (incluido Transbank). Lo que se busca es que el alumno incorpore a este módulo la posibilidad de utilización de criptomonedas para el pago en el PoS, de manera de generar este nuevo medio de pago como parte del pool de posibilidades que tiene hoy en día el framework. De esta manera, deberá desarrollar la integración y el manejo de un monedero electrónico para un usuario utilizando criptomonedas. * **Objetivo**: Desarrollo e integración de chatbots con Moqui * **Profesor Guía**: Andrés Muñoz Órdenes (andmunoz@dcc.uchile.cl) * **Descripción**: Un tema muy de moda en la comunicación digital son los chatbots. El chatbot es un programa informático con el que es posible mantener una conversación en lenguaje natural, tanto si queremos pedirle algún tipo de información o que lleve a cabo una acción, ya que lo hacen a través de análisis semántico. Hoy en día tienen múltiples usos: responder preguntas básicas desde un sitio web, tomar un requerimiento de atención y hasta orientar con información programada dependiendo de ciertas frases o palabras. Lo que se espera es que el alumno sea capaz de incorporar un chatbot al framework de Moqui ([[http://www.moqui.org|http://www.moqui.org]]) para la gestión de requerimientos. Esto quiere decir que el chatbot pueda realizar acciones como: tomar un requerimiento y entregar un ticket de atención, entregar información de avance del requerimiento, incorporar, preguntar o complementar a un requerimiento existente. ===== Primavera 2021 ====== * **Objetivo**: //Sistema para buscar y visualizar extractos de constituciones// * **Profesor Guia**: [[ahogan@dcc.uchile.cl|Aidan Hogan]] * **Descripción**: En el contexto del proceso constituyente, será importante poder encontrar extractos relevantes de constituciones existentes sobre temas particulares, como por ejemplo los derechos particulares de los ciudadanos, los procesos para modificar la constitución, las garantías de igualdad, las protecciones ambientales, etc. En el sitio web https://www.constituteproject.org/, existe una colección de las constituciones del mundo en inglés, con traducciones disponibles para un subconjunto de estas constituciones al castellano. Los pasajes relevantes también han sido clasificados según su tema, y hay muchos metadatos disponibles sobre las constituciones del mundo. El objetivo de este trabajo será desarrollar un sitio web más simple, más usable, y más específico, diseñado para apoyar el proceso constituyente en Chile, que permita buscar y visualizar extractos de constituciones en castellano (con traducciones automáticas, debidamente marcadas, de ser necesario), sobre temas particulares. [//Este tema de memoria es flexible según el interés de la memorista; se pueden discutir otras funcionalidades o ideas adaptadas para el contexto chileno. La idea general sería aprovechar los datos del sitio “Constitute Proyect” para apoyar el proceso constituyente en Chile.//] * **Objetivo**: //Sistema para recomendar referencias en Wikidata// * **Profesor Guia**: [[ahogan@dcc.uchile.cl|Aidan Hogan]] * **Descripción**: Wikidata es una versión estructurada de Wikipedia que tiene como objetivo la centralización y la organización del manejo de los datos estructurados de Wikipedia. Como Wikipedia, cualquier usuario puede editar información sobre una variedad enorme de entidades en Wikidata. A diferencia de Wikipedia, la información en Wikidata es estructurada: los usuarios editan datos en la forma de hechos simples en vez de texto (ver ejemplo: Hayao Miyazaki: https://www.wikidata.org/wiki/Q55400). Wikidata -como Wikipedia-, es una fuente secundaria de información, lo cual significa que la información en Wikidata debería tener una referencia externa asociada. El objetivo de este trabajo es encontrar y sugerir una lista de referencias (enlaces a páginas externas) que respaldan un hecho; un usuario que está editando Wikidata podría usar esa herramienta para facilitar encontrar buenas referencias. Más específicamente, el trabajo involucra tres etapas: (1) identificar los sitios webs “confiables” que se usan en muchas referencias en Wikipedia y extraer el texto de las páginas webs de estos sitios desde en Common Crawl (https://commoncrawl.org/); (2) indexar el texto (usando Lucene, Solr, ElasticSearch, o algo parecido) y crear un sistema de búsqueda, en línea (con una API), que permite sugerir documentos asociados con un hecho en Wikidata; (3) implementar y evaluar diferentes formas de búsqueda en el sistema según la calidad de las referencias sugeridas. [//El tema será una extensión del trabajo de Paolo Curotto, descrito acá: http://aidanhogan.com/docs/wikidata-references.pdf; en este caso, se usará Common Crawl para recolectar más documentos candidatos.//] * **Objetivo**: Clasificadores basados en Deep Learning para identificar imágenes de memes * **Profesor Guía**: Benjamin Bustos ([[bebustos@dcc.uchile.cl]]) * **Descripción**: (//Memoria//) El objetivo es implementar clasificadores basado en Deep Learning que detectan imágenes con memes. Actualmente los mejores clasificadores tienen una precisión de 0.75, pero la mayoría son clasificadores que ocupan técnicas clásicas. En esta memoria el objetivo es utilizar técnicas de Deep Learning para proponer soluciones alternativas a este problema y evaluar su eficacia. ===== Otoño 2021 ====== * **Objetivo**: //Conformación de Equipos de Proyecto de software// * **Profesor Guia**: [[cecilia@dcc.uchile.cl|Cecilia Bastarrica]] * **Descripcion**: La apropiada conformación de equipos de trabajo es un factor determinante en el éxito de un proyecto de software. El trabajo simultáneo, ya sea colocalizado o remoto, potencia la colaboración y la productividad. En el curso Proyecto de Software los equipos se configuran tomando en cuenta la disponibilidad horaria de modo que ningún alumno trabaje solo. En una memoria anterior se ha desarrollado una aplicación que optimiza la conformación de equipos maximizando la simultaneidad potencial de sus miembros, aunque manteniendo la equidad entre los distintos equipos del curso. Sin embargo, esta aplicación aún no se ha integrado a las otras fuentes y destinos de datos. En esta memoria se busca construir un pipeline de aplicaciones que incluya: - Desarrollar una aplicación para que los alumnos del curso proporcionen su disponibilidad horaria (la lista de alumnos y su email debe obtenerse de UCursos) - Adaptar la aplicación de optimización para que tome los datos obtenidos de la aplicación anterior. Su salida debe quedar disponible para poder generar las agrupaciones en UCursos. * **Objetivo**: Desarrollo de una aplicación para visualización, creación y modificación de mapas paleogeográficos. * **Profesor Guía**: Nancy Hitschfeld (DCC; nancy@dcc.uchile.cl) / Fernando Poblete (DGL; ferpoble@uchile.cl) * **Descripción**: Los mapas paleogeográficos nos muestran cómo era la tierra en diferentes períodos geológicos y constituyen herramientas esenciales para entender la dinámica del sistema terrestre. Los mapas son las condiciones de borde necesarias para analizar procesos superficiales, interacción de la biota y para modelar el clima y la geodinámica terrestre, entre otros. Uno de los períodos más enigmáticos en la evolución terrestre es entre el Neoproterozoico tardío y el Cámbrico (720-500 Ma aprox) cuando la tierra estuvo completamente cubierta de hielo para después dar paso a la Explosión Cámbrica, momento en que la vida comienza a florecer. El proyecto INACH RT_44-18, donde se enmarca esta memoria, tiene como objetivo constreñir la evolución paleogeográfica de las Montañas Ellsworth, Antártica, entre el Neoproterozoico tardío y el Cámbrico Inferior y comprender posibles relaciones temporales entre paleoclima, paleogeografía y evolución de la vida. Para esto es necesario contar con herramientas computacionales que nos permitan modificar el relieve terrestre de forma óptima. La memoria que estamos proponiendo, y que busca llenar este vacío, consiste en el desarrollo de una aplicación que permita la visualización, creación y modificación de mapas paleogeográficos a partir de una topografía. * **Objetivo**: Herramienta Educativa para la Web de Datos * **Profesor Guía**: [[aidhog@gmail.com|Aidan Hogan]] * **Descripción**: En el DCC dicto el curso CC7220: la Web de Datos. Dado que sea un curso de postgrado sobre un tema de investigación, no existen tantas herramientas para practicantes como existen en los otros cursos más tradicionales. En este contexto, un alumno de memoria ha generado una herramienta que se llama [[http://rdfplayground.dcc.uchile.cl/|RDF Playground]] para mejorar la enseñanza en el contexto de los labs del curso. Se está usando la herramienta para realizar los labs del curso este semestre. El objetivo del tema sería mejorar y extender la herramienta actual. Con respecto a mejorar la herramienta, involucrará la revisión de algunas encuestas de usuarios (estudiantes del curso) para seleccionar algunas de las mejoras más importantes, diseñando soluciones. Con respecto a la extensión, una prioridad sería implementar un Linked Data Browser ([[http://graphite.ecs.soton.ac.uk/browser/?uri=http%3A%2F%2Fdbpedia.org%2Fresource%2FUniversity_of_Chile|ver aquí un ejemplo de la herramienta actual que se usa en el curso]]) para explorar los datos RDF de la Web, interactivamente, como un grafo. * **Objetivo**: Linked Tweets * **Profesor Guía**: [[aidhog@gmail.com|Aidan Hogan]] * **Descripción**: Twitter provee una API en la cual uno puede recibir un stream de una [[https://developer.twitter.com/en/docs/twitter-api/tweets/sampled-stream/introduction|muestra de 1% de los tweets]]. También provee la posibilidad de recibir [[https://developer.twitter.com/en/docs/twitter-api/tweets/filtered-stream/introduction|un stream filtrado según algunas reglas]]. Los streams proveen algunos datos básicos, como el texto del tweet, su id, el id del autor, etc. El objetivo de este trabajo es generar un sistema que recibe, guarda y enriquece los tweets de los streams, para poder hacer consultas más avanzadas sobre el repositorio histórico que se va aumentando con el tiempo. En particular, se enlazarán los datos de los tweets con [[http://wikidata.org|Wikidata]]: una base de conocimiento abierta y amplia. Wikidata ya provee información de las cuentas de Twitter de muchas personas ([[https://query.wikidata.org/#SELECT%20%2a%20WHERE%20%7B%20%3Fpolitician%20wdt%3AP106%20wd%3AQ82955%20.%20%3Fpolitician%20wdt%3AP27%20wd%3AQ298%20.%20%3Fpolitician%20wdt%3AP2002%20%3Ftwitter%20.%20%3Fpolitician%20rdfs%3Alabel%20%3Fname%20.%20FILTER%28lang%28%3Fname%29%20%3D%20%22en%22%29%20%7D|por ejemplo, ver los políticos de Chile haciendo clic en el buton azúl]]), facilitando la conexión de los tweets que mencionan o han sido publicados por una persona con su perfil en Wikidata. También existen herramientas de Entity Linking que pueden enlazar las entidades (personas, lugares, etc.) mencionadas en el texto del tweet con Wikidata. Se generará un grafo de RDF que estructura la información de los tweets y contiene enlaces a Wikidata. De esa forma se podrá hacer consultas usando SPARQL como, por ejemplo, para encontrar los tweets del último mes publicados por políticos de Chile. Finalmente, se explorará una forma de publicar los datos que sea compatible con los términos de uso de la API. * **Objetivo**: //Jitsi Flipped Classroom//: {{ :jitsiflippedclassroom-studentview.png?nolink&200|}} A web platform integrating video conference (e.g. Jitsi-meet) with online polls (e.g. PollEverywhere style), focused on the online implementation of the Flipped Classroom methodology (e.g. assigning breakout rooms according to poll's answers). * **Profesor Guía**: [[jeremy@barbay.cl|Jérémy Barbay]] * **Repository**: https://gitlab.com/GuidingLearning/jitsi-room-class * **Descripción**: A website where any professor can go to setup a video chat room (e.g. https://meet.jit.si/Chile-Santiago-UChile-CC4102) for him and his students, and implement the part of the online flipped classroom method where students are asked concept questions and made to discuss their answers between themselves. ===== Primavera 2020 ====== * **Objetivo**: Búsqueda de texto en un nuevo base de datos de grafo * **Profesor Guía**: Aidan Hogan [[ahogan@dcc.uchile.cl]] * **Descripción**: En el contexto del Instituto Milenio de los Fundamentos de los Datos (IMFD) (http://imfd.cl), estamos en el proceso de desarrollar un nuevo sistema de base de datos de grafo. El objetivo de este sistema es superar el rendimiento de otros sistemas, como Neo4j, usando técnicas del estado del arte. Ya existe un prototipo del sistema implementado en C++ por gente de la PUC. El objetivo de esta memoria es extender el sistema con funcionalidad de "keyword search", y de "autocomplete" para ayudar a los usuarios encontrar los elementos del grafo relevantes. Ya existen implementaciones de índices invertidos en C++ (como, por ejemplo, CLucene http://clucene.sourceforge.net/) que pueden ser utilizado para indexar y buscar texto. El trabajo involucrará una encuesta breve de las implementaciones de índices invertidos implementados en C++, la integración de la implementación seleccionada con el sistema de base de datos de grafo, y su evaluación posterior. La encuesta debería tener en cuenta factores como si es de open source, qué tan eficiente es, cuáles features tiene, etc. La integración implica: el diseño de los índices invertidos (qué van a indexar, qué campos tendrán, etc.), el código para indexar el texto del grafo, la extensión del lenguaje de consulta para poder expresar keyword searches, y su evaluación sobre los índices invertidos. La evaluación tendrá en cuenta los tiempos necesarios para indexar los datos y para hacer búsquedas. * **Objetivo**: Sistema de Visualización de Datos Astronómicos usando Spark * **Profesores-Guía**: Aidan Hogan (DCC)/Francisco Forster (Astronomía)/Ernesto Castillo (CMM) * **Contacto**: Ernesto Castillo (ernesto.cast.nav@gmail.com) * **Descripción**: Dentro de la exploración y análisis de datos astronómicos, la visualización agregada de los mismos constituye una herramienta muy útil para su interpretación. Actualmente existen algunas librerías de visualización de datos masivos, pero presentan la dificultad de interoperar fácilmente con bases de datos. Proponemos desarrollar un de sistema de visualización de datos astronómicos utilizando Apache Spark empleando alguno de los algoritmos según el estado del arte. El sistema sería de mucha utilidad para la exploración de los catálogos astronómicos existentes y al implementarse con Spark permitirían la conexión a una serie de base de datos y fuentes asociadas. * **Referencia**: (https://doi.org/10.1109/TVCG.2016.2598694) * **Objetivo**: Índice Espacial Astronómico para Base de Datos NoSQL Cassandra * **Profesores-Guía**: Aidan Hogan(DCC)/Francisco Forster (Astronomía)/Ernesto Castillo (CMM) * **Contacto**: Ernesto Castillo (ernesto.cast.nav@gmail.com) * **Descripción**: Los índices espaciales son ampliamente utilizados para agilizar las consultas en las bases de datos SQL tradicionales. Para el caso de bases de datos NoSQL (e.g. Cassandra) estos índices son escasos, o tratan sólo el caso de un sistema de coordenadas georeferenciados. Proponemos desarrollar un índice espacial para la base de datos NoSQL Cassandra enfocado en datos astronómicos con un sistema de coordenadas celestes. Lo anterior permitiría el acceso rápido a catálogos astronómicos del orden de miles de millones de objetos extendiendo la funcionalidad de una de las principales bases de datos NoSQL. * **Referencia**: (https://doi.org/10.1186/s40537-016-0045-4) * **Objetivo**: Sistema en línea para entender el coronavirus * **Profesor Guía**: Aidan Hogan (ahogan@dcc.uchile.cl) * **Descripción**: Aunque hay muchos sitios web que dan estadísticas sobre el coronavirus, casi siempre presentan "vistas fijas" que no son exactamente lo que uno quería ver (por ejemplo, comparar las curvas de los países, ver la densidad de poblaciones, etc.). El tema tiene como objetivo recolectar datos públicos disponible sobre el virus, y ofrecer un sitio web tal que el usuario (un "power user") puede definir consultas personalizadas, bajar plantillas, hacer visualizaciones, cruzar los datos con otras fuentes, etc. * **Objetivo**: Desarrollo de mecanismos de interacción basados en controles de entrada no convencionales para adquirir habilidades de pensamiento computacional * **Profesor Guía**: Francisco Gutiérrez (frgutier@dcc.uchile.cl) * **Descripción**: Hoy en día existen varias herramientas que apoyan el desarrollo del pensamiento computacional. Un conjunto significativo de ellas están basadas en lenguajes de programación basados en bloques –como Scratch– donde la complejidad sintáctica del código está oculta detrás de paradigmas de interacción simples (p.ej., arrastrar bloques de instrucciones y encadenarlos como si fueran piezas de puzzle). Esto ha permitido que niñas y niños puedan desarrollar aplicaciones de software en edades cada vez más tempranas. En este escenario, la interacción con el ambiente de programación está basada en mecanismos tradicionales (teclado y mouse). Por otro lado, videojuegos como Minecraft –muy populares en este segmento de población– también permiten indirectamente la adquisición de habilidades de pensamiento computacional. Luego, surge entonces la pregunta acerca de si es posible utilizar controles de videojuegos no convencionales (p.ej., Playstation Move, Wiimote, Joy-Con) para establecer mecanismos de interacción que permitan la adquisición de conceptos básicos de pensamiento computacional y programación en niñas y niños de entre 10 a 12 años. En este tema de memoria buscamos proponer y desarrollar una colección de mecanismos de interacción que, usando como instrumento de entrada principal un control de videojuegos no convencional, permita a un usuario programar una pequeña aplicación de software. Como primera aproximación al problema, restringimos el dominio de estudio a tres componentes: (1) instrucciones de secuencialidad (movimiento en una grilla 2D 4-conexa), (2) de bifurcación (if-else), y (3) de iteración (while). * **Objetivo**: Poner Ciencia de la Computación en el Mapa * **Profesor Guía**: Aidan Hogan (ahogan@dcc.uchile.cl) * **Descripción**: En este momento, es más o menos fácil encontrar individuos que están haciendo investigación en un tema particular, pero es difícil entender cómo se distribuyen los investigadores geográficamente en el mundo, o encontrar investigadores cercanos trabajando en temas particulares. Existen varias colecciones de datos sobre publicaciones en el área de ciencias de computación, pero no cuentan con información geográfica (pero sí, contienen información de las universidades o empresas de los autores, que pueden ser geolocalizados). El objeto del trabajo es (1) tomar una colección de publicaciones (específicamente [[https://dblp.uni-trier.de/pers/k/Knuth:Donald_E=.html|DBLP]]), y enriquecer los datos con información sobre la ubicación de los autores y los temas asociados con los papers; (2) generar una interfaz para visualizar, navegar y consultar los datos. * **Objetivo**: Game Engine básico para fines pedagógicos * **Profesor Guía**: Daniel Calderón (daniel.calderon@dcc.uchile.cl) * **Descripción**: Si bien existen sofisticados motores de juego como Unreal Engine, Unity o Godot, existe una importante barrera de entrada al momento de entender funcionalmente cada componente de estas plataformas de software. En este trabajo de implementará un motor de juego básico que permita ilustrar de manera simple el funcionamiento interno de los subsistemas más importantes. Se debe incluir al menos: sistema de rendering 3D, sistema de detección de colisiones, sistema de animación, sistema de sonido, sistema de manejo de eventos, y acceso a funcionalidades básicas vía scripting. El entregable es un Game Engine básico en formato de API multiplataforma en C++20. Se debe implementar además uno o varios juegos/aplicaciones minimalistas que ejemplifiquen su uso. ===== Otoño 2020 ===== * **Objetivo**: Testing aleatorio de eficiencia de programas * **Profesor Guía**: Federico Olmedo (folmedo@dcc.uchile.cl), Alexandre Bergel (abergel@dcc.uchile.cl) * **Descripción**: Entender y poder caracterizar las propiedades de eficiencia de un sistema de software es una herramienta fundamental para evaluar sus cualidades y atributos. En particular, el análisis del tiempo de ejecución es de vital importancia en esta labor. El objetivo de esta memoria es extender las técnicas de testing actuales para poder validar propiedades sobre el tiempo de ejecución de programas. Al finalizar el trabajo de memoria se espera que el estudiante haya construído un prototipo completamente funcional para testear aleatoriamente propiedades de tiempo de ejecución de programas y que haya demostrado la utilidad del mismo a través de un conjunto de estudio de casos. Este trabajo involucra el uso de técnicas de búsqueda frecuentemente usadas en inteligencia artificial. * **Objetivo**: Extracción semi-automática de triples de tablas de Wikipedia * **Profesor Guía**: Aidan Hogan (aidhog@gmail.com) * **Descripción**: Miles de usuarios han empleado 18 años generando la versión actual de Wikipedia que damos por hecho cada día. Lamentablemente, muchos de esos usuarios han estado perdiendo su tiempo editando datos en listas, tablas y cuadros que son poco legibles por máquina y, por ende, que son poco reutilizables. Es una lástima. Pero ahora se ha propuesto Wikidata -una versión estructurada de Wikipedia-, como una forma de evitar que pase esto en el futuro. El problema es que hay 18 años de trabajo invertidos en crear Wikipedia ... ¿podríamos rescatar algunos datos legados de sus artículos? El tema tiene que ver con agrupar tablas de Wikipedia según sus cabeceras, y de esta forma unificar miles de tablas; después, usar un lenguaje declarativo para mapear el contenido de las tablas unificadas para rescatar los datos, es decir, mapear los datos desde HTML a un formato estructurado (RDF) que permite la integración, consulta y reutilización de los mismos. * **Objetivo**: Entrenamiento de modelos de lenguaje natural español basados en redes neuronales de atención * **Profesor Guía**: Jorge Pérez (jorge.perez.rojas@gmail.com) * **Descripción**: El proyecto contempla entrenar y validar el modelo BERT (https://arxiv.org/abs/1810.04805) sobre un corpus masivo de texto en español. BERT genera representaciones de propósito general para oraciones, que pueden luego utilizarse para tareas específica que requieran el entendimiento semántico del texto. La implementación del modelo estará basada en implementaciones existentes en Pytorch y Tensorflow. El modelo construido deberá validarse contra varias lineas base en tareas estándares de clasificación de texto. **Requisitos**: haber cursado o estar cursando CC6204 (Deep Learning), o tener intención de aprender los conceptos fundamentales del area de manera autodidacta al inicio del proyecto. **Financiamiento**: Existe la posibilidad de financiamiento para el o la estudiante durante la duración del trabajo de memoria. * **Objetivo**: Predicción de pacientes GES desde diagnósticos en lenguaje natural en listas de espera * **Profesor Guía**: Jorge Pérez (jorge.perez.rojas@gmail.com) * **Profesora Co-Guía**: Jocelyn Dunstan, CMM y Facultad de Medicina (jdunstan@uchile.cl) * **Descripción**: En el sistema público de salud en Chile, para ser atendido por un especialista se debe ingresar a una lista de espera. Hay ciertas patologías cubiertas por el programa de Garantías Explícitas de Salud (GES), que reciben atención prioritaria. Dada la dramática diferencia entre los tiempos de espera en ambos casos, es de vital importancia evitar la mala clasificación de pacientes GES en la lista no-GES. Esta clasificación es manualmente chequeada en cada hospital a partir de la sospecha diagnóstica escrita por el médico de atención primaria (texto libre) y la edad del paciente. En este proyecto se requiere que el/la estudiante desarrolle un modelo de predicción que permita, a partir de la sospecha diagnóstica y la edad, determinar si el paciente está cubierto por el GES o no. Para el desarrollo del modelo se cuenta con 2 millones de diagnósticos etiquetados por el profesional de atención primaria con las clases GES y no-GES, y 1500 pacientes clasificados entre GES y no-GES por un experto en GES. **Requisitos**: no es imprescindible, pero se recomienda haber cursado uno o más cursos de Minería de Datos o Aprendizaje de Máquinas durante la carrera. **Financiamiento**: Existe la posibilidad de financiamiento para el o la estudiante durante la duración del trabajo de memoria. * **Objetivo**: Comparación de descriptores para clasificación de memes * **Profesor Guía**: Benjamin Bustos (bebustos@dcc.uchile.cl) * **Descripción**: El estudio de los denominados "memes" que se publican en las redes sociales puede ser útil para analizar tendencias de los usuarios de estas redes. Para este fin, sería útil poder contar con herramientas automáticas que permitieran clasificar los diferentes memes que existen y que se van creando en el tiempo. El objetivo de este estudio es comparar distintos descriptores visuales y compara su eficacia para clasificar los memes. Esto requiere: implementar o buscar descriptores visuales del estado del arte; crear un dataset de memes; probar los distintos descriptores en tareas de clasificación y comparar su eficacia. ===== Primavera 2019 ===== * **Objetivo**: Workflow para manejo de pedidos bibliográficos * **Profesor Guía**: Éric Tanter (etanter@dcc.uchile.cl) * **Descripción**: El objetivo de esta memoria es sistematizar el workflow entre el DCC y la Facultad respecto de pedidos de libros y demás recursos bibliográficos. Luego de un análisis de las necesidades, se deberá llevar a cabo una implementación, así como su adopción por parte de los actores involucrados, tanto en el DCC como en la Facultad. El desarrollo se realizará en Python, usando el framework web Django, y una librería de manejo de workflows. El sistema deberá además interactuar con los sistemas existentes de la Facultad y la Universidad, mediante servicios web. * **Objetivo**: Automatizando las referencias de Wikidata * **Profesores Guías**: Aidan Hogan (ahogan@dcc.uchile.cl) * **Descripción**: Wikidata es una versión estructurada de Wikipedia que tiene como objetivo la centralización y la organización del manejo de los datos estructurados de Wikipedia. Como Wikipedia, cualquier usuario puede editar información sobre una variedad enorme de entidades en Wikidata. A diferencia de Wikipedia, la información en Wikidata es estructurada: los usuarios editan datos en la forma de hechos simples en vez de texto (ver ejemplo: //Hayao Miyazaki//: https://www.wikidata.org/wiki/Q55400). Wikidata -como Wikipedia-, es una fuente secundaria de información, lo cual significa que la información en Wikidata debería tener una referencia externa asociada; lamentablemente, la mayoría de los hechos guardados en Wikidata no tienen referencia. Dado un hecho sin referencia, el objetivo de este trabajo es encontrar y sugerir una lista de referencias (enlaces a páginas externas) que respaldan un hecho; un usuario que está editando Wikidata podría usar esa herramienta para facilitar encontrar buenas referencias. Más específicamente, la idea es tomar las referencias en la página de Wikipedia que corresponde con la entidad en Wikidata, bajar esas páginas, y dado un hecho como (//Hayao Miyazaki//,//father//,//Katsuji Miyazaki//), identificar y rankear los documentos que pueden respaldar ese hecho. * **Objetivo**: Análisis del diálogo sobre políticos latinoamericanos en Twitter * **Profesores Guías**: Aidan Hogan (ahogan@dcc.uchile.cl), Felipe Bravo (fbravo@dcc.uchile.cl) * **Descripción**: El Instituto Milenio de los Fundamentos de los Datos (IMFD: http://imfd.cl/) cuenta con varios conjuntos de datos masivos recolectados de Twitter durante varios meses. El propósito de este tema será detectar Tweets que hablen de políticos, y hacer un análisis comparativo de las temáticas y los sentimientos presentes en los diálogos por país y por género del político. Más específicamente, el trabajo involucrará el uso de "entity linking" (con respecto a una base de conocimiento como DBpedia o Wikidata) para detectar menciones de políticos, y técnicas como "sentiment analysis" para analizar esos tweets. El IMFD también cuenta con expertos en ciencias sociales que pueden ayudar a interpretar y/o sugerir nuevas formas de análisis.} * **Objetivo**: Desarrollo de una Aplicación Web de Monitoreo de la Docencia del DCC * **Profesor Guía**: Sergio Ochoa (sochoa@dcc.uchile.cl) * **Descripción**: El registro de la información de docencia en la FCFM se lleva a través de la plataforma UCampus. Esta plataforma está pensada para apoyar las labores operativas de los Departamentos, pero no así el monitoreo de dicha actividad, la identificación temprana de necesidades, la toma de decisiones y la proyección a futuro de la docencia impartida. Este trabajo de memoria busca desarrollar una aplicación Web responsive, que tome la información de UCampus, la procese y genere los indicadores y servicios que se requieren para paliar estas necesidades; particularmente, en el ámbito del DCC. La aplicación deberá soportar múltiples perfiles de usuario (a priori: profesores, funcionarios, jefe docente y director), cumplir con altos niveles de calidad (usable, segura, mantenible, etc.), y ser proactiva. * **Objetivo**: Pomodoro Musical con Mensajes Privados * **Profesor Guía**: Jérémy Barbay ([[jeremy@barbay.cl]]) * **Descripción**: {{ :pomodoro.jpeg?nolink&100|}}En un nivel basico, la técnica de trabajo "**Pomodoro**" consiste en dividir su tiempo de trabajo en periodos cortos (e.g. 25mns) separados por pausas mas cortas aun (e.g. 5mns), en grupos de 4 tales periodos, de manera a lograr una mejor concentración. En un nivel mas advanzado, planificar la cantidades de tales periodos requerido por cada tarea, y una auto-critica de sus predicciones al fin del dia, pretende generar un mejor manejo del tiempo. Se propone 1) desarrollar y 2) evaluar un software que permite implementar la técnica pomodoro, en combinación con varios incentivos audio, desde el uso de playlists de música de trabajo y de pausas, hasta mensajes audio personales para anunciar las transiciones entres periodos de trabajo y de pausa, y entre periodos de pausa y de trabajo. * **Objetivo**: Optimización de la conformación de equipos de proyecto de software * **Profesor Guía**: Cecilia Bastarrica (cecilia@dcc.uchile.cl) * **Descripción**: Los equipos del curso Proyecto de Software se conforman de tal modo que nunca un alumno tenga que trabajar solo. Esto beneficia la comunicación cara a cara, lo que redunda en una mejor gestión del proyecto. Hasta el momento esta tarea se ha llevado a cabo de forma manual y, dado que la cantidad de alumnos no ha superado jamás los 40, esto ha sido factible y no excesivamente complejo. Sin embargo, existen dos problemas con esta solución. Por un lado, el número de alumnos del DCC está creciendo paulatinamente en los últimos años y esto hace que el manejo manual sea dificultoso y lleve más tiempo llegar a una solución factible. Existe también otro problema aún más complejo: la productividad en el desarrollo de software de un equipo depende en gran medida de la cantidad de miembros que puedan trabajar de forma simultánea. Es así que un equipo donde ninguno trabaje solo, pero siempre haya solamente dos personas, tendrá un rendimiento probadamente menor que uno donde trabajen todos juntos. Lo que se busca en este trabajo de memoria es construir una aplicación que, no sólo sea escalable para la conformación de equipos, sino que además maximice la “justicia” para que todos los equipos tengan una oportunidad equivalente de productividad. * **Objetivo**: Integración módulo CAS con plataforma openedx * **Contacto**: Cecilia Cristina Saint-Pierre (csaintpierre@uchile.cl) * **Profesor Guía**: Alejandro Hevia (ahevia@dcc.uchile.cl) * **Descripción**: La universidad cuenta con un módulo de autenticación CAS que funciona con la cuenta pasaporte. En este momento, la plataforma tiene su propia base de datos de usuarios y passwords; el objetivo de esta memoria sería habilitar el acceso a la plataforma con la cuenta pasaporte mediante la integración con CAS, resguardando la seguridad de la información de los usuarios.