UAM


Dr. Francisco Javier Zaragoza Martínez
Proyecto de Integración de Ingeniería en Computación

El proyecto de integración consta de dos UEA obligatorias: 1100103 Seminario de Integración de Ingeniería en Computación y 1100113 Proyecto de Integración de Ingeniería en Computación I. También se pueden considerar hasta tres UEA optativas: 1100123 Proyecto de Integración de Ingeniería en Computación II, 1100133 Introducción al Trabajo de Investigación en Ingeniería en Computación y 1151028 Trabajo de Investigación en Ingeniería en Computación. La seriación de estas UEA permite cursarlas en dos a cuatro trimestres a conveniencia de los alumnos, considerando que cada proyecto de integración tiene una vigencia establecida por el Comité de Estudios de Ingeniería en Computación. Uno de los propósitos del seminario es el de presentar una propuesta viable y fundamentada de proyecto de integración. Existe un documento que describe este proceso para los alumnos de Ingeniería en Computación.

En vista de que hay alumnos de Ingeniería en Computación interesados en realizar sus proyectos de integración he decidido crear esta página donde mantendré una lista de ideas generales de proyectos. Por generales quiero decir que ninguna de estas ideas debe considerarse como un proyecto de integración sino tal vez como varios proyectos de integración relacionados de los cuales un alumno podría seleccionar una parte que le interese para desarrollarla conmigo. Adicionalmente, a partir del trimestre 2013 Otoño, en caso de que quieran hacer su proyecto de integración conmigo deberán participar en el Concurso de programación de la UAM y llevar los cursos del Área de concentración en Algoritmos e inteligencia artificial.

Algoritmos y combinatoria

Mis áreas principales de investigación son el análisis y diseño de algoritmos de optimización combinatoria y el estudio de estructuras combinatorias. Trabajo con problemas de cartero y otros problemas de transporte, con problemas de acoplamiento y flujo, con problemas de coloración de gráficas, con problemas de eliminación de cuadrados y más recientemente con problemas de triangulación y cuadrangulación de superficies. Alguno de estos temas podría ser recomendable para alumnos con cierta inclinación por las matemáticas y con excelentes habilidades de programación, características necesarias para alguien que esté planeando estudiar una maestría o doctorado en optimización o en ciencias de la computación.
  1. Rodríguez Villalobos, Cynthia Adriana. "Algoritmos para la coloración robusta de árboles binarios". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2008.
  2. Olaguibert Segura, C. A. "Generación de polígonos con triangulaciones ortogonales". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2009.
  3. Zambrano Gerbacio, R. "Implementación de un algoritmo de aproximación para el problema del cartero con restricciones en los arcos". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2013.
  4. Tapia de la Rosa, A. "Tres algoritmos para desplazar un robot en el plano en presencia de obstáculos". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2013.
  5. Pérez Arcos, J. A. "Encajes primitivos de gráficas planares exteriores". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2014.
  6. Hernández Muñoz, V. M. "Aplicación para dispositivos con Android que encuentre la mejor ruta entre dos estaciones del Metro". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2013.
  7. Alfaro Quintero, C. D. "Encajes primitivos de árboles planos". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2013.
  8. Santana González, J. J. "Diseño de reglas de Golomb óptimas". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2014.
  9. Vazquez Casas, Gualberto. "Cálculo de flujos elegantes en gráficas triconexas". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2013.
  10. Sánchez Navarro, Baudelio. "Algoritmo glotón para el problema de intersectar rayos con segmentos de recta". En proceso.
  11. Faustinos Vargas, José Daniel. "Identificación de una configuración en un conjunto de puntos en el plano". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2015.
  12. Hernández Camargo, César. "Programación de agentes móviles para desplazar un objetivo". En proceso.
  13. Martínez Juárez, Saúl. "Algoritmo y heurística para incrustar métricas en una línea". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2017.
  14. Amezcua Jiménez, Christopher Jaffet. "Algoritmo y heurística para el problema de entrega el mismo día". En proceso.
  15. Márquez Navarrete, Zelzin Marcela. "Heurísticas para acoplamientos euclidianos sin cruces". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2017.
  16. Muñoz del Real, Fany. "Algoritmo que encuentra la mejor ruta posible a seguir por un barco sujeto a la acción del viento". En proceso.
  17. Valenzuela Jaramillo, Emmanuel. "Algoritmo y heurística para el problema de recolección de un banco de alimentos". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2017.
  18. Martínez Huitrón, Miguel Ángel. Heurísticas para la cobertura mutua bipartita. En proceso.

Optimización de distribuciones de teclados alfanuméricos

Existen al menos dos tipos de teclados alfanuméricos de uso común: los teclados de dispositivos grandes (como los de una computadora) y los teclados de dispositivos pequeños (como los de un teléfono). La distribución de las teclas en un teclado de computadora suele seguir el estándar QWERTY el cual fue diseñado para disminuir la velocidad de escritura en inglés en una máquina de escribir mecánica. La distribución de las teclas en un teclado de teléfono suele seguir el orden alfabético. En ambos casos uno se puede preguntar si esos diseños son convenientes en el ámbito del idioma español, si son convenientes cuando lo que se desea es aumentar la velocidad de escritura o si son convenientes en un sistema con menos teclas que caracteres alfanuméricos. Propongo estudiar el diseño de algoritmos que encuentren mejores distribuiciones de teclados grandes (por ejemplo: minimizando el movimiento esperado de los dedos de las manos), el diseño de algoritmos que encuentren mejores distribuiciones de teclados pequeños (por ejemplo: mejorando las capacidades predictivas durante la escritura) y el diseño de distribuciones de teclados novedosas. Lean la sección 4.10 del libro The Algorithm Design Manual de Steven S. Skiena o este artículo.
  1. González Sánchez, R. "Distribuciones alternativas de letras en un teléfono celular". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2008.
  2. Morales León, A. "Algoritmo para la predicción de mensajes de texto en español escritos en teléfono celular". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  3. Limón López, E. J. "Distribución alternativa de letras en teclado de PC para escritura en español". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  4. Méndez Rosiles, J. R. "Diseño de teclado con teclas de tamaño adaptativo". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.

Sistemas de apoyo a las coordinaciones

Sistemas de ayuda para las coordinaciones de ingeniería.
  1. Estrada Rivera, J. J. "Sistema de administración de proyectos terminales". Cancelado.
  2. Villarruel Barajas, A. E. "Asignación óptima para el uso de laboratorios y talleres de la División de Ciencias Básicas e Ingeniería". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.
  3. Montalvo López, J. A. "Sistema para la revisión de propuestas de proyectos terminales de Ingeniería en Computación". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.
  4. Faustinos Vargas, J. D. "Diagrama de seriación interactivo para las ingenierías de la UAM Azcapotzalco". Cancelado.
  5. Torres González, D. A. "Recomendación de inscripción para Ingeniería en Computación". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2013.

Evaluación automática de programas

Una de las tareas más laboriosas durante el desarrollo de un curso básico de programación es la de la evaluación de los programas escritos por los alumnos. Esta evaluación consta de al menos dos componentes: el decidir si un programa resuelve correctamente la tarea pedida y el decidir si dos programas supuestamente distintos en realidad lo son. Normalmente estas dos componentes se realizan a mano, consumiendo una buena cantidad del tiempo de los profesores y alentando el tiempo de entrega de resultados a los alumnos. En ambos casos uno se puede preguntar si estas dos tareas se pueden automatizar en cierta medida. Propongo diseñar un sistema automático de evaluación que sea capaz de determinar una calificación para cada programa enviado y que genere reportes de utilidad para los alumnos (por ejemplo: sus calificaciones) y para los profesores (por ejemplo: qué parejas de programas resultan ser muy parecidas). En este último caso, propongo estudiar el diseño de algoritmos que encuentren similitudes entre dos códigos fuente (escritos por ejemplo en C, C++, Fortran, Java, Pascal, etc.). Podemos encontrar algunas referencias sobre este tema en Berkeley, Chile, Karlsruhe, Michigan, Sheffield y Virginia.
  1. García Rodríguez, L. E. "Obtención de una medida cuantitativa de similitud de códigos fuente en lenguaje C". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2007.
  2. Castro Campos, R. A. "Evaluador de programas fuentes en lenguaje C con entradas y salidas descritas mediante una cadena de formato". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2007.
  3. Pérez Pérez, S. L. "Adaptación del detector de copias para códigos fuente escritos en C++ y Java". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2008.
  4. García Isario, D. "Administración de cuentas para cursos en un servidor Linux". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2009.
  5. Castelán Chávez, E., Hernández Sánchez, L. F. y Vargas Rosas, R. "Sistema de evaluación automática de programas". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.

Algoritmos y estructuras de datos

Diseño de software didáctico para la enseñanza de algoritmos y estructuras de datos, tanto los elementales como los avanzados.
  1. Hernández Hernández, F. A. y Hernández Piña, H. C. "Plataforma de juego programable para Quoridor". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  2. Hermosillo García, F. y López Rubio, D. "Generación y solución de rompecabezas Rush Hour". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  3. Salazar Barrón, E. J. "Algoritmo para resolver el juego de prisioneros y guardias". Cancelado.
  4. García Arévalo, G. "Implementación de una interfaz gráfica interactiva para algoritmos de ordenamiento y estructuras tipo árbol". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.
  5. Mares Martínez, J. C. "Implementación de una interfaz gráfica interactiva para algoritmos de ordenamiento y estructuras tipo árbol". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2014.
  6. Bocanegra Rodríguez, J. A. y Tovar González, Y. "Visualización de algoritmos de ordenamiento y búsqueda interna con Tikz". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  7. García Gaspar, A. D. "Un lenguaje de programación para los temas de Programación Estructurada". Cancelado.
  8. Torres Jiménez, P. E. "Algoritmo de búsqueda de configuraciones de enlaces ortogonales en dos y tres dimensiones". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2011.
  9. Ramos León, A. D. "Algoritmos para plegado de mapas cuadrados". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2012.

Inclusión y equidad

Sistemas de cómputo que mejoren las condiciones de inclusión y equidad de las personas.

  1. Ramírez Cabrera, Esteban. "Sistema integrador de subtítulos para personas con discapacidades auditivas". Cancelado.
  2. Montiel Saavedra, Alejandra. "Visualización de incidencias en la Ciudad de México". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2017.

Otros temas

A sugerencia de los alumnos interesados, pero en temas que me interesen.
  1. Villegas Hernández, J. D. "Transmisión de mensajes en archivos de imágenes y texto usando esteganografía". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2009.
  2. Pérez García, A. "Transmisión de archivos binarios cifrados usando esteganografía en imágenes GIF". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2014.
  3. Adriano Rivas, C. M. "Esteganografía de mensajes de texto en párrafos justificados". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  4. Barboza García, M. "Esteganografía de texto en audio WAV sin compresión". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2010.
  5. Valencia Arana, M. E. "Esteganografía de archivos usando redundancia cíclica en imágenes JPEG". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2011.
  6. Chávez Sanabria, K. N. "Transmisión de mensajes de texto en audio ogg usando esteganografía". Proyecto terminal, Universidad Autónoma Metropolitana Azcapotzalco, 2011.
  7. Rodríguez Camacho, Manuel. "Análisis de una aplicación con interfaz web, implementada en dos sistemas basados en microcontroladores: un Arduino y uno hecho a la medida". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2014.
  8. García Díaz, Liliana. "Sistema auxiliar para compartir información de docencia entre páginas web". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2015.
  9. Maldonado Barrios, Abraham Jorge Antonio. "Compresión de secuencias de ADN utilizando un sistema embebido". Proyecto de integración, Universidad Autónoma Metropolitana Azcapotzalco, 2015.