Maestría en Ciencias en Ingeniería y Tecnologías Computacionales - Cursos
Esta sección muestra el contenido condensado de los curso. Para ver el contenido completo siga el enlace en el curso deseado.
ITC-101 Introducción a la Ingeniería y Tecnologías Computacionales
En este curso se presentan brevemente las tendencias más importantes en las herramientas, metodologías y tecnologías computacionales. Se revisa la organización de los sistemas de cómputo a pequeña y gran escala, se presenta el papel que juegan los sensores, interfaces y señales como medios de adquisición de información, se revisan los protocolos básicos de los sistemas de comunicaciones, se analizan los diferentes componentes de los dispositivos computacionales modernos, se hace una revisión rápida de los diversos modelos de cómputo desde el circuito combinacional hasta las máquinas de Turing, se hace el contraste de diversos modelos de programación modernos (secuenciales, concurrentes, paralelos, distribuidos, orientado a plataformas), se hace una revisión de las tendencias en cuanto a uso y diseño de los lenguajes de programación, se introducen herramientas de alto nivel para solución de problemas computacionales, se describe el modelo convencional de desarrollo de software en grande y se presentan algunas tendencias recientes sobre las tecnologías computacionales como movilidad, cómputo en la nube, seguridad, cómputo de alto rendimiento, análisis de grandes volúmenes de información, visualización científica, etc.
ITC-102 Matemáticas Computacionales
Esta asignatura ofrece al estudiante un panorama general de las Matemáticas que son particularmente útiles a las Ciencias de la Computación. Se inicia presentando las ideas básicas del principio de conteo y el razonamiento combinatorio elemental. A continuación se ofrece una introducción general a la lógica matemática, un estudio riguroso de la teoría de conjuntos, el principio de la inducción matemática y los métodos recursivos. Posteriormente se estudian las relaciones y funciones y se termina con lenguajes y máquinas de estados finitos. El curso no supone conocimientos matemáticos profundos previos y se enfoca principalmente a desarrollar la capacidad del estudiante para resolver problemas.
ITC-103 Tecnologías de Programación
Estar asignatura da un repaso a los conceptos de la Programación Orientada a Objetos para obtener un nivel básico y avanzado de programación. Se hace énfasis en el lenguaje Java. El curso inicia con el desarrollo de aplicaciones de consola pasando por aplicaciones de escritorio mediante interfaces gráficas hasta llegar a la programación de aplicaciones vía web.
ITC-104 Introducción a la Optimización (ICOA)
La optimización es un problema recurrente en diversas áreas de la ciencia, ingeniería, economía, etc. En este curso se comienza estudiando la naturaleza del problema, que deriva en la clasificación de sus planteamientos más generales. Se conocerán sus componentes principales y se definirán las características que pueden afectar la respuesta del un algoritmo. Dada su clasificación general y sus componentes intrínsecos, es posible analizar las estrategias actuales para su resolución, particularmente en los principales componentes algoritmos que son comunes a todas las clases. Un ejemplo que se estudiará a fondo es la programación lineal, cuyas características geométricas contribuyen a formar una idea clara de la naturaleza del problema y de la estrategia de solución; tales características geométricas también ponen en evidencia las propiedades que lo relacionan con una variedad de otros problemas. Para finalizar, presentaremos una colección de características que representan una potencial fuente de dificultad para la eficiencia de los algoritmos, o incluso para su factibilidad.
ITC-105 Introducción a las Tecnologías de Información y Comunicaciones (TGDR)
En este curso se ofrece un panorama de los mecanismos, técnicas y estrategias que hacen posible la transferencia, almacenamiento, clasificación y análisis de información para convertirla en un activo útil. Dado que el acceso a la información se realiza a través de dispositivos conectados a redes fijas o inalámbricas, en este curso se estudian técnicas y protocolos de comunicación que interconectan las fuentes de información.
ITC-106 Sistemas Embebidos (IC)
En el curso se abordan los principales fundamentos del diseño de sistemas embebidos, tanto desde el punto de vista hardware como software. Para ello, se presentan las metodologías de diseño adecuadas para resolver problemas que no tienen una única solución, partiendo de un conjunto de especificaciones y ajustándose a un conjunto de restricciones. Para el diseño de software, se estudian diferentes técnicas de programación, empleando el lenguaje C. Asimismo, se realiza una revisión de los Sistemas Operativos, con los conceptos que son útiles a la comprensión del funcionamiento de un sistema basado en procesos e hilos, la comunicación de información y el manejo de interrupciones. Para la comprensión de hardware, se hace una revisión de la arquitectura de un sistema basado en microprocesador y de sistemas reconfigurables. Se estudiará también el principio de funcionamiento de los diferentes componentes de hardware, tales como sensores, displays, cámaras, motores, controladores de bus de comunicación, convertidores análogo a digital y digital a análogo, entre otros.
ITC-201 Análisis de datos (TGDR, IC)
En el curso se abordan temas relacionados con el reconocimiento de patrones, aprendizaje máquina y minería de datos para el análisis de datos mediante técnicas supervisadas y no supervisadas. Primeramente se exponen diferentes técnicas de preprocesamiento y preparación de datos, de modo que los datos son "limpiados" y se les da un formato adecuado para su análisis. Posteriormente se presentan diversas técnicas no supervisadas para el agrupamiento y asociación de datos no etiquetados. Finalmente se estudian las técnicas de clasificación supervisada más utilizadas en la práctica y los métodos para evaluar diferentes enfoques.
ITC-202 Cómputo Móvil (TGDR, IC)
La necesidad de información en cualquier momento y lugar, conjuntamente con el surgimiento de dispositivos de cómputo portátiles y los avances en las tecnologías de comunicación inalámbrica e Internet, han hecho a la Computación Móvil una realidad. En términos generales, ésta tiene como finalidad el tratamiento automático de información por medio de dispositivos computacionales con capacidad de movilidad y con acceso digital a fuentes de información vía una infraestructura de comunicación inalámbrica. Los ambientes de cómputo móvil se caracterizan por restricciones importantes de recursos y cambios frecuentes en las condiciones de operación lo cual impone desafíos que involucran diversas áreas de las ciencias computacionales, ingenierías computacional, eléctrica y de telecomunicaciones. Adicionalmente a la formación teórica, el curso tendrá una fuerte orientación practica al desarrollo de aplicaciones en dispositivos móviles, particularmente en teléfonos inteligentes con soporte para Android.
ITC-203 Cómputo Paralelo (ICOA, IC)
La construcción de aplicaciones para cómputo paralelo involucra muchos aspectos que no se presenta en la construcción de aplicaciones convencional (secuencial). El diseño de una aplicación paralela tiene que considerar entre otras cosas, el tipo de arquitectura sobre la cual se va a ejecutar, las necesidades de tiempo y espacio que requiere la aplicación, el modelo de programación paralelo adecuado para implantar la aplicación y la forma de coordinar y comunicar a diferentes procesadores para que resuelvan un problema común. Existen varias herramientas disponibles para programación paralela. En este curso nos enfocaremos al uso de pthreads, OpenMP, Cuda y MPI, dado su alta disponibilidad para computadoras diferentes y su aceptación en la comunidad académica.
ITC-204 Sistemas Distribuidos (TGDR, IC)
La materia contribuye a la conformación de habilidades técnicas de alto nivel en el área de sistemas distribuidos. Específicamente el curso coadyuva a: Que el egresado refuerce los conceptos en el área de sistemas distribuidos y distinga los aspectos más importantes de este tipo de sistemas, que el egresado conozca las principales tecnologías de programación para sistemas distribuidos, que el egresado sea capaz de diseñar e implementar sistemas distribuidos utilizando herramientas de programación de ultima generación, que el egresado conozca las principales tecnologías para el diseño de sistemas distribuidos.
ITC-205 Análisis y Diseño de Algoritmos (ICOA)
El diseño eficiente de algoritmos es fundamental en el mundo de la Computación. Después de iniciar con las conjeturas de qué es un buen algoritmo, el curso trata con los problemas de gráficas y estructuras de datos alcanzando el campo de Optimización Combinatoria. En el curso se tratan problemas de combinatoria y algoritmos probabilísticos. También se analizan algoritmos de tipo numérico, de las áreas de álgebra lineal y criptografía entre otras, con aplicaciones a computación en paralelo.
ITC-206 Inteligencia Computacional (ICOA)
En este curso se estudiarán los diversos paradigmas que componen la inteligencia computacional, tanto principios de diseño, objetivos, así como implementación y experimentación. Los paradigmas estudiados serán: computación evolutiva, inteligencia de enjambre, sistemas inmunes artificiales y sistemas neuro-difusos.
ITC-207 Optimización Combinatoria (ICOA)
El objetivo de este curso es que el estudiante conozca y aplique a problemas teóricos y del mundo real el paradigma de solución basado en la optimización combinatoria. El paradigma de solución de la optimización combinatoria descansa en fundamentos teóricos para modelar y representar problemas, y en algoritmos de búsqueda local para resolver dichos problemas. El fundamento teórico de la optimización combinatoria se apoya en la teoría de la complejidad computacional y en el uso de objetos matemáticos para representar problemas de optimización combinatoria. Los objetos matemáticos que serán presentados incluyen; grafos, árboles, permutaciones, particiones, cadenas de crecimiento restringido, polinomios diagonales, polinomios caja, polinomios mayor que. Es altamente relevante el énfasis que se hace sobre la representación, generación, y enumeración. Los algoritmos de búsqueda local usan la modelización/representación basada en objetos matemáticos para resolver instancias de problemas teóricos y prácticos. Los algoritmos de búsqueda local que serán tratados en detalle incluyen: a) algoritmos de mutación/selección; b) algoritmo de recocido simulado; c) algoritmos genéticos; d) búsqueda tabú; y e) algoritmo de colonia de hormigas. Al final del curso se espera que el estudiante tenga los conocimientos y habilidades necesarias para modelar problemas de la vida real usando al menos los objetos matemáticos vistos en el curso, y resolver dichos problemas usando algoritmos de optimización combinatoria básicos o mezclas de ellos.
ITC-208 Ciencia de los Datos (TGDR)
El curso introduce al estudiante los aspectos teóricos y prácticos sobre técnicas y tecnologías para obtener información valiosa a partir de grandes volúmenes de datos, partiendo desde el proceso de adquisición y almacenamiento de los mismos, hasta su procesamiento, análisis y visualización. El objetivo del curso es que el estudiante conozca diversas técnicas y tecnologías utilizadas para el almacenamiento, procesamiento, análisis y visualización de grandes volúmenes de datos.
ITC-209 Redes de Computadoras (TGDR)
En este curso se estudia la estructura y organización de las redes de computadoras tomando en cuenta la división de las capas que integran la pila de protocolos y las relaciones que existen entre ellas. Se estudian diversos protocolos de aplicación, transporte, red y enlace desde un punto de vista analítico y práctico. Se realizan simulaciones mediante software especializado con el fin de aplicar los conocimientos adquiridos en el curso.
ITC-210 Codificación y Compresión de Datos (IC)
En el curso se presentan diversas técnicas de compresión, con y sin pérdidas, dirigidas a comprimir texto plano y señales multimedia. Se analizan los conceptos de entropía, cantidad de información, información mutua y canales de información. Los esquemas de codificación para la detección y la corrección de errores son discutidos. Los parámetros fundamentales que describen a un código corrector son definidos e interpretados dentro del marco de la transmisión digital de información. Finalmente, se exploran esquemas de inserción de datos en señales multimedia y la protección de los mismos utilizando códigos correctores de errores.
ITC-211 Diseño de Sistemas Digitales (IC)
En este curso se estudia el diseño de sistemas digitales incluyendo aspectos relacionados a las metodologías de diseño e implantación, simulación, depuración y verificación de diseños complejos bajo una perspectiva computacional. El curso cubre los principios, metodologías y herramientas de diseño de sistemas electrónicos y computacionales a la medida, y está organizado para proporcionar una visión moderna de los sistemas digitales. Se presentan los aspectos más relevantes del uso de lenguajes de descripción de hardware, la síntesis de alto nivel y técnicas de optimización dentro del marco de diseño asistido por computadora. El curso tiene una componente práctica importante basada en la tecnología de lógica programable como plataforma de desarrollo y el uso de herramientas asistidas por computadora (CAD) asociada a esta tecnología.
ITC-212 Robótica Móvil inteligente (IC)
La robótica móvil inteligente se centra principalmente en el desarrollo de robots móviles capaces de realizar distintas tareas con mínima intervención humana, es decir, desarrollar vehículos que sean capaces de percibir su medio ambiente y extraer la información necesaria para realizar sus propias decisiones en busca de alcanzar un objetivo particular. En este curso se enseñarán los conceptos básicos de la robótica móvil autónoma y la teoría que la concierne. Se explicarán características básicas como la programación de comportamientos reactivos, y los principios de funcionamiento de sensores y actuadores. Con el uso de kits de robótica, se diseñarán robots capaces de realizar tareas simples del tipo “evitar obstáculos”, “seguimiento de líneas” y “limpieza de superficies”.
ITC-303 Metaheurísticas Avanzadas (ICOA)
Este curso consiste de un repaso de las metaheurísticas históricamente relevantes, llegando a propuestas contemporáneas. Se comenzará con los temas teóricos de las condiciones necesarias y suficientes, así como su aplicación en métodos analíticos. Posteriormente se repasará una serie de métodos numéricos, tanto directos como de gradiente, que resuelven el problema de optimización incrementalmente, desde su versión más simple hasta las más generales. Por último, las metaheurísticas actuales, ya sea de un solo punto o poblacionales. En todos los casos se habla de su motivación, aplicabilidad y temas abiertos de investigación. Posteriormente se revisarán algunos temas de diseño, como es el control de parámetros o los algoritmos híbridos. Para terminar, se hablará de las técnicas de paralelización más comúnmente utilizadas con metaheurísticas.
ITC-304 Tópicos Selectos en Optimización Combinatoria (ICOA)
El objetivo general del curso de tópicos selectos de optimización combinatoria es presentar aspectos fundamentales avanzados de la optimización combinatoria. Como objetivos específicos este curso cubre diversas alternativas para la: representación de un problema; definición de la función a optimizar; creación de diseños experimentales; y sintonización de algoritmos. Se considera que el estudiante que tome este curso tiene experiencia trabajando con algoritmos de optimización combinatoria (algoritmos genéticos, recocido simulado, búsqueda tabú, etc. ) dado que el énfasis está en la revisión de aspectos relacionados con la eficiente solución de problemas bajo el paradigma de la optimización combinatoria. En este curso se hace énfasis en las diversas alternativas que existen para representar un problema, ajustar la función a optimizar, realizar un diseño experimental adecuado, y sintonizar los parámetros del algoritmo a utilizar. En la representación de un problema se revisaran alternativas como: grafos, permutaciones, particiones de un conjunto, cadenas de crecimiento restringido, y representaciones vectoriales. En el contexto de la función objetivo se cubren diversas alternativas para la función objetivo para problemas mono-objetivo y multi-objetivo. En el contexto del diseño experimental se cubren: diseños factoriales completos, diseños factoriales fraccionarios, arreglos ortogonales, arreglos de cobertura (covering arrays) y ecuaciones Diofánticas. En el contexto de la sintonización de parámetros se revisa el análisis estadístico del diseño experimental para poder sintonizar adecuadamente los parámetros de los algoritmos.
ITC-305 Tópicos Selectos en Inteligencia Computacional (ICOA)
En este curso se profundizará en los paradigmas de computación evolutiva, así como otros algoritmos de inteligencia computacional para optimización. Comenzando con los paradigmas clásicos, se verán las principales cuestiones de diseño y algunas propuestas actuales, que responden a retos particulares del planteamiento del problema y desempeño en la aplicación. Posteriormente se revisarán algunas variantes generales del problema de optimización numérica, y las extensiones que han sido propuestas para lidiar con ellos. Para terminar, se hará una revisión de los aportes teóricos, donde se repasarán aquellos más importantes, que han clarificado las propiedades de los algoritmos, así como las limitaciones que presentan.
ITC-306 Tópicos Selectos en Redes (TGDR)
En este curso se estudian las técnicas más recientes para la construcción de redes de computadoras y protocolos de comunicación. Se revisan las tecnologías y protocolos de comunicación utilizadas en redes fijas y móviles. Se estudian las arquitecturas y tecnologías para el aprovisionamiento de calidad de servicio en redes de próxima generación. Se describen los conceptos fundamentales de gestión de redes y servicios, como un instrumento para el aprovisionamiento de calidad de servicio. Se describen las tecnologías emergentes para realizar la automatización de las tareas de gestión de red en ambientes dinámicos y de virtualización de redes y servicios. Se realizan simulaciones mediante software especializado con el fin de aplicar los conocimientos adquiridos en el curso.
ITC-307 Tópicos Selectos en Sistemas Distribuidos (TGDR)
El objetivo del curso es que el estudiante conozca y experimente diversas técnicas y tecnologías de vanguardia utilizadas para la construcción de sistemas en entornos distribuidos y a gran escala, como son el cómputo en la nube, el procesamiento de grandes volúmenes de información y las tecnologías de la web semántica. El curso tendrá un contenido dinámico el cual se estará actualizando en función de los temas de vanguardia que surjan en el área de los sistemas distribuidos, en especial en aquellos temas orientados al procesamiento y análisis de grandes cantidades de datos.
ITC-308 Tópicos Selectos en Minería de Datos (TGDR)
El curso introduce al estudiante los aspectos teóricos y prácticos sobre técnicas para el aprovechamiento de los datos mediante aplicaciones emergentes reales. Dado que es un curso preliminar al desarrollo de la tesis, se alienta la participación activa del estudiante. Durante el desarrollo del curso se evaluarán tareas y un proyecto final sobre el aprendizaje y experiencia que el estudiante vaya adquiriendo. El objetivo del curso es que el estudiante conozca las técnicas y tecnologías avanzadas de Big Data, Inteligencia Web, Minería de Texto y Minería Web.
ITC-309 Cómputo Reconfigurable (IC)
El objetivo del curso es presentar los elementos básicos para crear arquitecturas digitales que implementen algoritmos de alta demanda computacional en dispositivos programables. El curso presenta los fundamentos y formalismo del Cómputo Reconfigurable así como metodologías y técnicas de como diseñar y aplicar arquitecturas bajo este enfoque en la solución de problemas que involucran una alta demanda computacional. Se presentan las herramientas y técnicas necesarias para el diseño, análisis y optimización de sistemas de cómputo reconfigurable basado en tecnología FPGA.
ITC-310 Tópicos Selectos en Ingeniería Computacional (IC)
En este curso el alumno extenderá sus conocimientos teóricos y prácticos en el uso de técnicas de reconocimiento de patrones y redes neuronales artificiales. En relación a los tópicos de reconocimiento de patrones, el curso tendrá énfasis en clasificadores ensamblados y técnicas de agrupamiento. Asimismo, habrá una sección especializada en redes neuronales pulsantes, las cuales modelan con mayor realismo la actividad neuronal biológica. Finalmente, se introducirán las nuevas tendencias en algoritmos bio-inspirados aplicados al análisis de datos.
ITC-311 Tópicos Selectos en Robótica Inteligente (IC)
En el curso de Tópicos Selectos de Robótica Móvil Inteligente, se discutirán temas directamente relacionados con los temas de tesis a desarrollar por los alumnos. Algunas temáticas susceptibles de tratarse en este curso son la robótica probabilista, para el diseño y control de robots tomando en cuenta la incertidumbre propia de un medio ambiente real; así como los fundamentos de la obtención de Estructura a partir de movimiento, con el propósito de obtener una reconstrucción del medio ambiente a partir de imágenes obtenidas por la cámara embarcada en el robot y abordar la problemática de navegación visual de robots móviles.
ITC-312 Análisis de Imágenes Digitales (IC)
En el curso de análisis de imágenes digitales el alumno aprenderá los conceptos teóricos básicos sobre diversas técnicas de tratamiento de imágenes digitales y el reconocimiento de objetos. El curso está dividido en nueve unidades, cuyas temáticas están organizada de la siguiente manera: unidades 1 y 2 tratan sobre los fundamentos básicos del tratamiento de imágenes digitales; unidades 3 a 5 tratan sobre el procesamiento de bajo nivel (mejoramiento y filtrado); unidades 6 y 7 tratan sobre el procesamiento de medio nivel (segmentación y detección de objetos) ; y unidades 8 y 9 tratan sobre el procesamiento de alto nivel (reconocimiento e interpretación de la imagen). El curso fomenta la implementación de varios algoritmos vistos en clase para conectar la teoría con la práctica en problemas reales.
ITC-313 Seguridad Informática (TGDR, IC)
El objetivo del curso es revisar los temas más importantes relacionados con la seguridad informática que afectan a los sistemas de información. El curso está organizado en cuatro partes fundamentales. La primera está dedicada a la introducción a los tópicos de seguridad informática. En la segunda se revisan los fundamentos criptográficos para proveer servicios de seguridad y algunas aplicaciones. La tercera parte cubre aspectos de seguridad perimetral en redes de computadoras. La parte final del curso comprende temas relacionados con la seguridad en los sistemas de cómputo y seguridad de software.
ITC-301 Seminario de Investigación 1
Los objetivos de este seminario son: a) elaborar el protocolo de investigación sobre el tema de tesis de maestría que desarrollará el alumno, b) obtener las habilidades básicas de investigación para la búsqueda de información, así como la comprensión y escritura de textos científicos, c) investigar sobre los antecedentes, estado del arte y marco teórico del tema de tesis, d) plantear el problema de investigación, generar hipótesis de investigación y definir objetivos, metas y alcances de la tesis, y e) plantear la metodología de desarrollo de la tesis.
ITC-401 Seminario de Investigación 2
Los objetivos de este seminario son: a) Desarrollar la metodología planteada en el protocolo de tesis, b) Seleccionar los materiales y métodos que ayudarán en el desarrollo de la tesis, c) Afinar o inclusive modificar aspectos de la metodología planteada, d) Implementar y/o integrar las herramientas básicas para el desarrollo y los experimentos de la tesis, e) Conocer sobre técnicas y herramientas para el análisis y visualización de datos: primera parte, y f) Cursar la materia de inglés (opcional).
ITC-501 Seminario de Investigación 3
Los objetivos de este seminario son: a) Presentar los resultados obtenidos a partir de la metodología de desarrollo planteada en el protocolo de tesis, b) Desarrollar la experimentación y validación de la metodología planteada en la tesis, c) Recolectar y analizar los resultados obtenidos, d) Comparar los resultados con otros enfoques e interpretar los hallazgos, e) Conocer sobre técnicas y herramientas para el análisis y visualización de datos: segunda parte, y f) Cursar la materia de inglés (opcional).
ITC-601 Seminario de Investigación 4
Los objetivos de este seminario son: a) Integrar el documento de tesis y preparar material de difusión, b) Realizar las discusiones, conclusiones y tendencias futuras del trabajo de tesis, c) Integrar el documento de tesis a partir de las entregas en los seminarios anteriores, d) Realizar presentaciones de difusión sobre los trabajos de tesis, como posters, sesiones orales, demos, etc., e) Realizar la defensa del trabajo de tesis.
ITC-302 Trabajo de Tesis 1
ITC-402 Trabajo de Tesis 2
ITC-502 Trabajo de Tesis 3
ITC-602 Trabajo de Tesis 4
Los Trabajos de Tesis 1, 2, 3 y 4, son asignaturas evaluadas por el director de tesis con base en el proyecto de investigación a desarrollar. El director evalúa el grado de avance del proyecto y con base en éste asigna la evaluación de las asignaturas