mapa curricular - tamps.cinvestav.mx · general a la lógica matemática, ... matemáticas...

60
1 MAPA CURRICULAR Mapa curricular de los cursos de la Maestría en Ciencias en Ingeniería y Tecnologías Computacionales. NO . INTELIGENCIA COMPUTACIONAL Y OPTIMIZACIÓN AVANZADA TECNOLOGÍAS PARA LA GESTIÓN DE DATOS Y REDES INGENIERÍA COMPUTACIONAL PRIMER AÑO CUATRIMESTRE 1 1 Introducción a la Ingeniería y Tecnologías Computacionales TC- 101 Introducción a la Ingeniería y Tecnologías Computacionales ITC- 101 Introducción a la Ingeniería y Tecnologías ITC- 101 2 Matemáticas Computacionales ITC- 102 Matemáticas Computacionales ITC- 102 Matemáticas Computacionales ITC- 102 3 Tecnologías de Programación ITC- 103 Tecnologías de Programación ITC- 103 Tecnologías de Programación ITC- 103 4 Introducción a la Optimización ITC- 104 Tecnologías de Información y Comunicaciones ITC- 105 Sistemas Embebidos ITC- 106 CUATRIMESTRE 2 5 Análisis de datos ITC- 201 Análisis de datos ITC- 201 Análisis de datos ITC- 201 6 Cómputo Móvil ITC- 202 Cómputo Móvil ITC- 202 Cómputo Móvil ITC- 202 7 Cómputo Paralelo ITC- 203 Sistemas Distribuidos ITC- 204 Cómputo Paralelo ITC- 203 8 Sistemas Distribuidos ITC- 204 9 Análisis y Diseño de Algoritmos ITC- 205 Ciencia de los Datos ITC- 208 Codificación y Compresión de Datos ITC- 210 10 Inteligencia Computacional ITC- 206 Redes de Computadoras ITC- 209 Diseño de Sistemas Digitales ITC- 211 11 Optimización Combinatoria ITC- 207 Robótica Móvil Inteligente ITC- 212 CUATRIMESTRE 3 12 Análisis de Imágenes Digitales ITC- 312 Análisis de Imágenes Digitales ITC- 312 13 Seguridad Informática ITC- 313 Seguridad Informática ITC- 313 14 Metaheurísticas Avanzadas ITC- 303 Tópicos Selectos en Redes ITC- 306 Cómputo Reconfigurable ITC- 309 15 Tópicos Selectos en Optimización Combinatoria ITC- 304 Tópicos Selectos en Sistemas Distribuidos ITC- 307 Tópicos Selectos en Ingeniería Computacional ITC- 310

Upload: tranthu

Post on 14-Oct-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

1

MAPA CURRICULAR Mapa curricular de los cursos de la Maestría en Ciencias en Ingeniería y Tecnologías Computacionales.

NO .

INTELIGENCIA COMPUTACIONAL Y

OPTIMIZACIÓN AVANZADA

TECNOLOGÍAS PARA LA GESTIÓN DE DATOS Y

REDES

INGENIERÍA COMPUTACIONAL

PRIMER AÑO

CUATRIMESTRE 1

1 Introducción a la Ingeniería y Tecnologías Computacionales

TC-101

Introducción a la Ingeniería y Tecnologías Computacionales

ITC-101

Introducción a la Ingeniería y Tecnologías

ITC-101

2 Matemáticas Computacionales ITC-102

Matemáticas Computacionales ITC-102

Matemáticas Computacionales

ITC-102

3 Tecnologías de Programación ITC-103

Tecnologías de Programación ITC-103

Tecnologías de Programación

ITC-103

4 Introducción a la Optimización ITC-104

Tecnologías de Información y Comunicaciones

ITC-105

Sistemas Embebidos ITC-106

CUATRIMESTRE 2

5 Análisis de datos ITC-201

Análisis de datos ITC-201

Análisis de datos ITC-201

6 Cómputo Móvil ITC-202

Cómputo Móvil ITC-202

Cómputo Móvil ITC-202

7

Cómputo Paralelo ITC-203

Sistemas Distribuidos ITC-204

Cómputo Paralelo ITC-203

8 Sistemas Distribuidos ITC-204

9 Análisis y Diseño de Algoritmos

ITC-205

Ciencia de los Datos ITC-208

Codificación y Compresión de Datos

ITC-210

10 Inteligencia Computacional ITC-206

Redes de Computadoras

ITC-209

Diseño de Sistemas Digitales ITC-211

11 Optimización Combinatoria ITC-207

Robótica Móvil Inteligente ITC-212

CUATRIMESTRE 3

12 Análisis de Imágenes Digitales

ITC-312

Análisis de Imágenes Digitales

ITC-312

13 Seguridad Informática ITC-313

Seguridad Informática ITC-313

14 Metaheurísticas Avanzadas ITC-303

Tópicos Selectos en Redes

ITC-306

Cómputo Reconfigurable ITC-309

15 Tópicos Selectos en Optimización Combinatoria

ITC-304

Tópicos Selectos en Sistemas Distribuidos

ITC-307

Tópicos Selectos en Ingeniería Computacional

ITC-310

2

CUATRIMESTRE 3

16 Tópicos Selectos en Inteligencia Computacional

ITC-305

Tópicos Selectos en Minería de Datos

ITC-308

Tópicos Selectos en Robótica Inteligente

ITC-311

17 Seminario de Investigación 1 ITC-301

Seminario de Investigación 1

ITC-301

Seminario de Investigación 1 ITC-301

18 Trabajo de Tesis 1 ITC-302

Trabajo de Tesis 1 ITC-302

Trabajo de Tesis 1 ITC-302

SEGUNDO AÑO

CUATRIMESTRE 4

19 Seminario de Investigación 2

ITC-401

Seminario de Investigación 2

ITC-401

Seminario de Investigación 2

ITC-401

20 Trabajo de Tesis 2 ITC-402

Trabajo de Tesis 2 ITC-402

Trabajo de Tesis 2 ITC-402

CUATRIMESTRE 5

21 Seminario de Investigación 3

ITC-501

Seminario de Investigación 3

ITC-501

Seminario de Investigación 3

ITC-501

22 Trabajo de Tesis 3 ITC-502

Trabajo de Tesis 3 ITC-502

Trabajo de Tesis 3 ITC-502

CUATRIMESTRE 6

23 Seminario de Investigación 4

ITC-601

Seminario de Investigación 4

ITC-601

Seminario de Investigación 4

ITC-601

24 Trabajo de Tesis 4 ITC-602

Trabajo de Tesis 4 ITC-602

Trabajo de Tesis 4 ITC-602

NOTA: Los cursos señalados con color amarillo pertenecen al tronco común, los cursos con color rosa son aquellos cursos que se ofrecen de manera conjunta en las tres líneas de investigación, los curso con color azul se ofrecen de manera conjunta entre dos líneas de investigación, y los cursos que no tiene color representan cursos que se ofrecen de manera exclusiva en cada línea de investigación.

3

Distribución de cursos que comparten las diferentes LGACs.

DESCRIPCIÓN COMPLETA DE LOS CURSOS En esta sección se presenta la descripción completa de los cursos de la propuesta de la maestría en ciencias en ingeniería y tecnologías computacionales. En todos los casos se presenta el objetivo del curso, la descripción, el temario o contenido y la bibliografía actualizada.

4

ITC-101: Introducción a la Ingeniería y Tecnologías Computacionales

Objetivo

El objetivo del curso es presentar un panorama general de los métodos, tecnologías, herramientas más modernas de la ingeniería y tecnologías computacionales.

Descripción

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 analiza las 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 algunos 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.

Contenido

1. Introducción 2. Organización de los sistemas de cómputo

a. Pequeña escala b. Convencionales c. Gran escala

3. Sensores, señales e interfaces a. Sistemas de numeración b. Cuantización y codificación c. Adquisición de señales d. Imágenes digitales

4. Comunicaciones a. Protocolos b. Comunicaciones inalámbricas c. Redes celulares

5. Dispositivos computacionales a. Teléfonos inteligentes b. Sistemas Embebidos c. Procesadores avanzados (GPUs)

6. Modelos de cómputo a. Circuito Lógico b. Circuitos con memoria c. Autómata finito d. Autómata de pila e. Máquina de Turing f. Modelo von Neumann g. Algoritmo h. Eficiencia en tiempo y espacio

7. Modelos de programación a. Programación procedural vs orientada a objetos (*) b. Programación secuencial vs programación concurrente

i. Cliente-servidor

5

Llamada a procedimientos remotos c. Programación secuencial vs programación paralela

i. Threads d. Programación orientada a plataformas

i. Móviles: Touchdevelop ii. GPUs iii. DSPs

8. Lenguajes de programación modernos a. Programación basada en scripts b. Python c. C# d. Uso de APIs

e. Objective‐C f. Java-Script

9. Desarrollo de software a. Modelo para desarrollo de software b. Aseguramiento de la calidad de software c. Pruebas de software d. Desarrollo de software seguro

10. Tendencias modernas en la Ingeniería y Tecnologías Computacionales a. Simulación b. Movilidad c. Cloud Computing d. Cómputo de Alto Rendimiento e. Grandes volúmenes de datos f. Visualización de problemas científicos y de ingeniería

Bibliografía

Savage, John, E., Models of Computation: Exploring the Power of Computing. Addisson-Wesley Reading, 1998.

John G. Proakis, Dimitris G. Manolakis, Digital Signal Processing. 4th Ed., Pearson/Prentice Hall, 2007.

John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach. 5th Ed., The Morgan Kaufmann Series in Computer Architecture, 2011.

Peter Barry, Patrick Crowley, Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems. Morgan Kaufmann, 1st Ed., 2012.

John A. Sokolowski, Catherine M. Banks, Principles of Modeling and Simulation: A Multidisciplinary Approach. Wiley, 1st Ed. 2009.

Maurizio Gabbrielli, Simone Martini, Programming Languages: Principles and Paradigms. Springer, 2010.

Aaron Hillegass, Mikey Ward, Objective-C Programming: The Big Nerd Ranch Guide. Big Nerd Ranch Guides, 2nd Ed., 2013.

Douglas Crockford, JavaScript: The Good Parts. O'Reilly Media, 1st Ed., 2008.

Jon Skee, C# in Depth. Manning Publications, 3rd Ed., 2013.

James F. Kurose, Computer Networking: A Top-Down Approach. Addison-Wesley. 5th Ed., 2009.

Andrew S. Tanenbaum, Computer Networks. Prentice Hall. 5th Ed., 2010.

6

ITC-102: Matemáticas Computacionales

Objetivo

Ofrecer al estudiante un panorama general de las matemáticas fundamentales para las Ciencias de la Computación.

Descripción

En este curso se estudiarán, a nivel introductorio, las áreas de las matemáticas que han contribuido en mayor medida al establecimiento de la computación como una ciencia. Esto incluye principalmente a las matemáticas de los enteros y otros entes discretos, además de algunos otros temas. 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 realiza un breve repaso a relaciones y funciones. Después se estudian grafos y árboles, junto con sus principales propiedades. Adicionalmente a los temas de matemáticas discretas, se estudian los tópicos esenciales de álgebra lineal y de probabilidad y estadística. Muchos de los temas se verán reforzados mediante el uso de software de alto nivel como Matlab, Mathematica y Maple. El curso se enfoca principalmente a desarrollar la capacidad del estudiante para resolver problemas.

Contenido

1. Conteo, permutaciones y combinaciones a. Reglas de la suma y del producto b. Permutaciones c. Combinaciones d. Combinaciones con repeticiones

2. Fundamentos de lógica a. Conectivas y tablas de verdad b. Equivalencia lógica c. Reglas de inferencia d. Cuantificadores e. Demostración de teoremas

3. Teoría de conjuntos a. Conjuntos y subconjuntos b. Leyes de teoría de conjuntos c. Conteo y diagramas de Venn

4. Inducción matemática y aritmética entera a. El principio del buen orden b. Definiciones recursivas c. Números primos y el algoritmo de la división d. Máximo común divisor e. El teorema fundamental de la aritmética

5. Complejidad computacional a. Conceptos preliminares b. Productos cartesianos, relaciones y funciones

i. Funciones especiales c. Complejidad computacional d. Concepto de algoritmo e. Análisis de algoritmos, algoritmos de búsqueda

6. Teoría de grafos a. Definiciones b. Subgrafos e isomorfismo de grafos c. Recorridos y circuitos eulerianos d. Grafos planos

7

e. Caminos y ciclos hamiltonianos f. Árboles y árboles con raíz

7. Álgebra lineal a. Espacios vectoriales b. Matrices y determinantes c. Sistemas lineales de ecuaciones d. Transformaciones lineales

8. Probabilidad y estadística a. Espacio de probabilidad b. Variables aleatorias y funciones de distribución c. Momentos de variables aleatorias d. Análisis exploratorio de datos e. Estimación de parámetros f. Pruebas de hipótesis

Bibliografía

Ralph P. Grimaldi, Discrete and Combinatorial Mathematics. Addison Wesley, 5th Ed., 2003.

Kenneth H. Rosen, Discrete Mathematics and Its Applications. McGraw-Hill, 7th Ed., 2011.

Richard Johnsonbaugh. Discrete Mathematics. Prentice Hall, 7th Ed., 2007.

Susanna S. Epp. Discrete Mathematics with Applications. Brooks Cole, 4th Ed., 2010.

C. W. Curtis, Linear Algebra: An Introductory Approach. Springer, 4th Ed., 1984.

David Poole, Linear Algebra: A Modern Introduction. Cengage Learning, 4th Ed., 2014.

James L. Johnson, Probability and Statistics for Computer Science. Wiley Inter- Science, 2003.

Douglas C. Montgomery, George C. Runger, Applied Statistics and Probability for Engineers. John Wiley & Sons, 6th Ed., 2013.

8

ITC-103: Tecnologías de Programación

Objetivo

Este curso tiene el objetivo principal de proporcionar a los estudiantes las habilidades para desarrollar programas informáticos eficaces y eficientes, utilizando diferentes técnicas y estilos de programación. Al finalizar el curso, los estudiantes deberán ser capaces de crear software de la más alta calidad, desarrollando programas computacionales que sean correctos, eficaces y eficientes, utilizando las técnicas de programación más apropiadas; crear software (APIs) que puedan ser reutilizado por terceros o usar e integrar APIs desarrollados por otros en aplicaciones propias; y comprender, reconocer y aplicar diferentes estilos de programación, y tener un fundamento sólido sobre análisis y diseño de algoritmos y aplicaciones.

Descripción

El curso está organizado en cinco partes. La primera está dedicada al desarrollo de software desde una perspectiva de aplicación de procesos para asegurar la calidad. Se revisa el proceso en cascada (proceso tradicional) y se abarcan otros procesos comúnmente usados en la actualidad, como el proceso unificado, PSP y Scrum. La segunda parte se enfoca en describir el paradigma orientado a objetos, presentando desde un enfoque téorico-práctico el concepto de clase, objeto, abstracción y encapsulamiento. En esta parte se introduce la notación UML para el análisis y diseño de clases. La tercera parte del curso se enfoca en describir el tipo de dato abstracto (ADT) Collection (Arreglos, Listas, Tablas, Árboles), el cual es una de las bases para la creación de programas. En esta parte se presentan los temas de búsqueda y ordenamiento, haciendo principal énfasis en el análisis de la complejidad de los algoritmos usados a través de la notación O(Big O). Se presentan algoritmos de búsqueda y ordenamiento de complejidad O(logn) y O(nlogn) así como casos de estudio para la aplicación de estos algoritmos. En la cuarta parte se presentan temas de programación específicos para el lenguaje Java, abarcando temas como creación y uso de paquetes, programación multihilos, programación distribuida, programación con interfaces gráficas, programación Web y acceso a datos (archivos y bases de datos). La quinta parte del curso se enfoca en el tema de programación con el lenguaje Python, para desarrollar aplicaciones tanto orientadas a objetos como procedurales. Se describen las principales características de este lenguaje y se desarrollan casos de estudio para presentar al estudiante las ventajas que presenta Python para crear aplicaciones usualmente usadas en el ámbito académico y de investigación.

Contenido

1. Procesos de software a. Algoritmo, desarrollo de software, y modelo en cascada b. Calidad (procesos) y pruebas (estrategias y casos de estudio) de software

2. Paradigma orientado a objetos a. Clases y objetos: abstracción y encapsulamiento de información b. Análisis y diseño orientado a objetos: Introducir y usar notación UML c. Herencia y polimorfismo: Clases genéricas, abstractas e interfaces

3. ADT Colección: búsqueda y ordenamiento a. ADT Collection (Arreglos, Listas, Árboles, Tablas hash) b. Introducción a la notación Big O y análisis de algoritmos c. Problema y algoritmos de búsqueda: Análisis y notación "Big O" d. Algoritmos de búsqueda con complejidad O(logn) y ADT usados e. Problema y algoritmos de ordenamiento: Análisis y notación "Big O" f. Algoritmos de ordenamiento con complejidad O(nlogn) y ADT usados

4. Programación con Java a. Introducción a Java

i. Máquina virtual ii. Paquetes iii. Jerarquía de clases iv. Ambiente de compilación y ejecución

b. Creación y uso de APIs en Java

9

c. Creación y uso de scripts d. Programación procedural vs orientada a objetos e. Programación multihilos: Implementación y problemas de sincronización f. Programación con interfaces gráficas: Modelo MVC g. Aplicaciones distribuidas: Objetos distribuidos con Remote Method Invocation y CORBA h. Acceso a datos: archivos y bases de datos i. Aplicaciones Web: enfoque de programación por capas

5. Programación Python a. Introducción a Python

i. Orientado a objetos ii. Procedural iii. Funcional iv. Ambiente de programación

b. Programación en Python i. Tipos de datos ii. Referencias iii. Interface de Python con otros lenguajes de programación (Java, C++)

c. Uso de paquetes en Python i. Análisis de datos, graficación, ingeniería, matemáticas, etc.

Bibliografía

Ian Sommerville, Ingeniería de software. Pearson Educación, 2011.

Ivar Jacobson, Grady Booch, James Rumbaugh, El proceso unificado de desarrollo de software. The Addison-Wesley Object Technology Series, 2004.

Thomas T. Cormen, Charles E. Leiserson, Ronald L. Rivest, Introduction to Algorithms. MIT Press, 1990.

Robert Sedgewick, Algorithms in Java. Pearson, 3rd Ed., 2004.

Robert Lafore, Data Structures and Algorithms in Java, Sams Publishing, 2nd Ed., 2002.

Joshua Bloch, Effective Java. Pearson Education, 2nd Ed., 2008.

Bruce Eckel, Thinking in Java. Pearson, 3rd Ed., 2003.

David M. Beazley, Python Essential Reference. Addison-Wesley Professional, 4th Ed., 2009.

Allen B. Downey, Think Python. O'Reilly Media, 2012.

10

ITC-104: Introducción a la Optimización

Objetivo

Al finalizar el curso el alumno conocerá el problema de optimización, distinguiendo claramente sus tipos, componentes y dificultades. Sabrá diseñar y aplicar estrategias algorítmicas generales, que le permitan evaluar la dificultad del problema.

Descripción

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 de 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.

Contenido

1. Fundamentos a. ¿Qué es optimización? b. Tipos de problemas de optimización

i. Optimización combinatoria ii. Optimización numérica iii. Optimización entera y mixta

c. Clases de algoritmos d. Función objetivo e. Espacio de búsqueda

2. Óptimos a. Mínimos y máximos b. Óptimos locales y óptimo global c. Multimodalidad d. Múltiples objetivos e. Manejo de restricciones

3. Estructura de un optimizador a. El problema y su representación b. Dirección de descenso (gradiente) c. Iteraciones y evaluaciones d. Criterio de paro e. Minimización sin pérdida de generalidad

4. Programación lineal a. Planteamiento del problema b. Representación y proyección de poliedros c. Dualidad d. Algoritmo simplex e. Flujo máximo en digrafos

5. Dificultades en optimización a. Dificultad del problema b. Convergencia insatisfactoria c. Rugosidad d. Decepción

11

e. Neutralidad y redundancia f. Epístasis, pleiotropía y separabilidad g. Ruido y robustez h. Sobreajuste y simplificación i. Dimensionalidad en las funciones objetivo j. Dimensionalidad en las variables de decisión k. Ambientes con cambios dinámicos

Bibliografía

Marco Locatelli, Global Optimization: Theory, Algorithms and Applications. ESIAM Society for Industrial and Applied Mathematics, 2013.

R. Horst, Panos Pardalos, Nguyen van Thoai, Introduction to Global Optimization. Springer, 2nd Ed.,, 2000.

Rangarajan Sundaram, A First Course in Optimization Theory. Cambridge University Press, 2014.

Jorge Nocedal, Stephen Wright, Numerical Optimization. Springer, 2nd Ed., 2006.

R. Fletcher, Practical Methods of Optimization. Wiley, 2nd Ed., 2000.

12

ITC-105: Introducción a las Tecnologías de Información y Comunicaciones

Objetivo

Que el estudiante conozca y experimente los elementos que conforman las tecnologías de información y comunicaciones que dan soporte a la solución de problemas de gestión de información.

Descripción

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.

Contenido

1. Introducción a redes de comunicaciones a. Protocolo de Internet (IP) b. Modelo cliente-servidor c. Descripción general de modelos de referencia TCP/IP y OSI d. Principales estándares y protocolos

2. Interconexión de fuentes de información a. Principales aplicaciones en Internet b. Direccionamiento en Internet c. Enrutamiento en Internet d. Calidad de servicio en Internet

3. Tecnologías de acceso a Internet a. Infraestructura de soporte a Internet móvil b. Redes de comunicaciones cableadas c. Convergencia redes inalámbricas y fijas d. Dispositivos móviles inteligentes

4. Recolección y almacenamiento de información a. Repaso de tecnologías de almacenes de datos b. Almacenamiento de datos sobre redes P2P c. Gestión de datos en la Web d. Almacenamiento de datos en la nube

5. Clasificación y análisis de información a. Contexto del análisis de datos b. Predicción y clasificación c. Agrupación y asociación d. Aplicaciones

6. Aplicaciones de las TICs en la gestión de información a. Relación de las TICs y la gestión de información b. Usos prácticos

Bibliografía

Jim Kurose, Keith Ross, Computer Networking: A Top Down Approach Featuring the Internet. Addison-Wesley, 6th Ed., 2012.

S. Tanenbaum, Computer Networks, 5th Ed., Prentice Hall, 2010.

13

ITC-106: Sistemas Embebidos

Objetivo

En este curso se cubrirán los conceptos, estructuras y mecanismos de los sistemas embebidos, empleados en muchas plataformas incluyendo robótica y manufactura avanzada, aplicaciones interactivas y multimedia, así como sistemas ubicuos. Los sistemas embebidos contienen componentes hardware y software, lo que requiere un diseño simultáneo de ambos aspectos. Se describirán conceptos básicos sobre los métodos de especificación y modelos computacionales para la representación de diseños, así como los principios de funcionamiento de los distintos componentes de un sistema embebido, tanto a nivel hardware como software.

Descripción

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.

Contenido

1. Conceptos fundamentales de sistemas embebidos a. Conceptos generales b. Áreas de aplicación c. Áreas de oportunidad

2. Arquitectura de un sistema embebido a. Unidades de procesamiento b. Memoria c. Comunicación d. Hardware en el lazo

3. Software de tiempo real a. Sistemas operativos b. Procesos, hilos c. Calendarización de procesos d. Interbloqueos de procesos e. Interrupciones y prioridades f. Tiempo real g. Sistemas operativos de tiempo real h. Middleware en sistemas embebidos

4. Dispositivos de entrada (sensores) a. Transductores y principios de funcionamiento b. Muestreo de señales c. Conversión analógica-digital d. Aliasing y cuantificación

5. Dispositivos de salida (actuadores) a. Motores eléctricos b. Conversión digital-analógica c. Modulación por ancho de pulso d. Control de motores, puente H

6. Introducción al control automático

14

a. Componentes de un sistema de control automático b. Control en lazo abierto y en lazo cerrado c. Parámetros de desempeño de un sistema en lazo cerrado d. Control Todo-Nada e. Control Proporcional Integral Derivativo

7. Especificaciones de sistemas embebidos a. Requerimientos b. Modelos de computación para sistemas embebidos c. Statecharts d. Lenguaje de descripción y especificación (SDL) e. Redes de Petri

8. Diseño de hardware/software a. Manejo de tareas concurrentes b. Optimizaciones de alto nivel c. Compiladores para sistemas embebidos d. Consumo de energía e. Herramientas de diseño f. Simulación

Bibliografía

P. Marwedel, Embedded System Design. Springer, 2nd Ed., 2011.

Daniel D. Gajski, Embedded System Design: Modeling, Synthesis and Verification. Springer, 2009.

A. K. Ganguly, Embedded Systems: Design, Programming and Applications. Alpha Science, 2014.

15

ITC-201: Análisis de Datos

Objetivo

Conocer de manera general las técnicas de Reconocimiento de Patrones y enfoques del proceso general de Minería de Datos. Se describen los fundamentos y conceptos necesarios de cada una de las etapas del proceso. Se explora el uso de fuentes de datos para análisis y toma de decisiones resultantes de tareas de clasificación, predicción, agrupamiento y asociación.

Descripción

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.

Contenido

1. Introducción al análisis de datos a. Objetivos del análisis de datos b. Conceptos básicos c. Funciones de similitud d. Tareas en el análisis de datos e. Técnicas generales (predicción, clasificación, agrupación y asociación). f. Aplicaciones

2. Preprocesamiento y preparación de datos a. Operaciones sobre datos b. Problemas en el manejo de datos reales c. Selección de variables d. Selección de instancias e. Reducción de dimensionalidad f. Selección de fuentes de datos g. Calidad de datos

3. Agrupación y asociación a. Conceptos fundamentales de agrupación b. Tipos de agrupación c. Principales técnicas de agrupación d. Análisis estadístico e. Análisis exploratorio f. Reglas de asociación g. Patrones secuenciales h. Análisis semántico latente i. K-means y K-means online j. Algoritmo de Esperanza Maximización k. Cobweb l. Autoclass m. Redes de Kohonen

4. Clasificación y predicción a. Clasificadores Bayesianos b. Clasificador K‐NN c. Algoritmo perceptrón y regresión logística d. Métodos de mínimos cuadrados e. Método del kernel

16

f. Análisis lineal discriminante g. Máquina de soporte vectorial h. Algoritmo AdaBoost i. Árboles de decisión j. Redes neuronales artificiales

5. Evaluación de modelos a. Métodos de remuestreo b. Métricas de evaluación c. Análisis estadístico

Bibliografía

Tom M. Mitchell, Machine Learning. Prentice Hall, 2003.

Jiawei Han, Micheline Kamber, Data Mining: Concepts and Techniques. Morgan Kaufmann, 2nd Ed., 2006.

I.H. Witten, E. Frank, Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 1999.

Pang-Ning Tan, Michael Steinbach, Vipin Kumar. Introduction to Data Mining. Addison- Wesley, 2006.

Anil K. Jain, Richard C. Dubes, Algorithms for Clustering Data. Prentice Hall, 1988.

T. Hastie, R. Tibshirani, J. Friedman, Elements of Statistical Learning: Data Mining, Inference and Prediction. Springer-Verlag, 2001

S. Theodoridis, K. Koutroumbas, Pattern Recognition. Academic Press, 4th Ed., 2009.

S. Theodoridis, A. Pikrakis, K. Koutroumbas, D. Cavouras, Introduction to Pattern Recognition. A MATLAB Approach. Academic Press, 2010.

K. L. Priddy, P. E. Keller, Artificial Neural Networks: An Introduction. The International Society for Optical Engineering, 2005.

17

ITC-202: Cómputo Móvil

Objetivo

El objetivo principal de este curso es el de proporcionar un marco general de los fundamentos, métodos y tecnologías para la compresión de problemáticas y el desarrollo de aplicaciones en el área de computación móvil.

Descripción

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.

Contenido

1. Introducción y motivación a. Evolución y tendencia tecnológica b. Anatomía de un dispositivo móvil c. Revisión de dispositivos móviles d. Desafíos de la computación móvil e. Aplicaciones de la computación móvil

2. Fundamentos de cómputo móvil a. Definiciones b. Condiciones de movilidad c. Dimensiones de movilidad

i. Conciencia de ubicación ii. Calidad de servicio de conectividad iii. Capacidades computacionales limitadas iv. Restricciones de energía v. Interfaces multimodales vi. Proliferación de plataformas vii. Transacciones activas

3. Comunicaciones móviles a. Fundamentos de transmisión inalámbrica b. Propagación de señal c. Capacidad de canal d. Ancho de banda e. Asignación de ancho de banda

i. Multiplexado: SDMA, FDMA, TDMA, CDMA f. Técnicas de transmisión

i. De corto alcance ii. Celulares iii. Satelitales iv. Estándares de comunicación y redes inalámbricas

4. Tecnologías y plataformas móviles a. Introducción b. Sistemas en un chip c. Máquinas de cómputo móviles

18

i. Procesador de aplicaciones ii. Procesadores dedicados y aceleradores iii. Multiprocesadores iv. Procesamiento simétrico y asimétrico v. Subsistemas especializados vi. Sistemas operativos móviles

5. Desarrollo de aplicaciones a. Infraestructura y niveles de abstracción b. Ambientes y herramientas de desarrollo c. Organización por capas del software

i. Software de aplicación ii. Middleware iii. Software de bajo nivel

d. Concepción de aplicaciones e integración i. Consideraciones de desempeño ii. Diseño de interfaces de usuario iii. Modelo de datos y memoria iv. Comunicaciones y acceso de entrada/salida v. Aspectos de energía

e. Programación basada en eventos f. Modelo vista controlador g. Aplicaciones nativas y WEB

6. Localización a. Ubicación y movilidad b. Adquisición de ubicación

i. Triangulación ii. Métodos basados en proximidad iii. Análisis visual de una escena

c. Técnicas de adquisición i. Basadas en GPS ii. Basadas en redes inalámbricas y celulares iii. Híbridas

d. Sistema de posicionamiento global (GPS) e. Sistemas de información geográfica

7. Introducción a Android a. Organización y Arquitectura de Android b. Máquina Virtual Dalvik c. Descripción de componentes principales

i. SO y middleware ii. Apps y SDK.

d. Componentes de una aplicación i. Activities ii. Services iii. Broadcast Receivers iv. Content Providers

e. Interacción entre aplicaciones: intentos f. Acceso a información de sensores: pantalla táctil, sensores inerciales

Bibliografía

Reza B’Far, Mobile Computing Principles. Cambridge University Press, 2005.

Tommi Mikkonen, Programming Mobile Devices. John Wiley and Sons, 2007.

K. Pahlavan, Allen H. Levesque, Wireless Information Networks, Wiley-Interscience, 2nd Ed., 2005.

19

Greg Nudelman, Android design patterns: Interaction design solutions for developers, Wiley, 1st Ed., 2013.

Karim Yaghmour, Embedded Android: Porting, Extending, and Customizing. O'Reilly Media, 1st, 2013

Greg Milette, Adam Stroud, Professional Android Sensors Programming. Wrox, 1st Ed., 2012.

Erik Hellman, Android Programming: Pushing the limits. Wiler, 1st Ed., 2013.

IEEE Computer Magazine.

IEEE Transactions on Mobile Computing.

20

ITC-203: Cómputo Paralelo

Objetivo

El propósito de este curso es discutir técnicas y aplicaciones de la computación paralela y de las formas en que se construyen aplicaciones para este paradigma. En este curso nos concentraremos en el uso de varios núcleos de procesamiento que se coordinan o comunican entre sí para resolver un problema en común. La coordinación se da ya sea a través de una memoria compartida o mediante el envío de mensajes.

Descripción

La construcción de aplicaciones para cómputo paralelo involucra muchos aspectos que no se presenta en la construcción de aplicaciones convencionales (secuenciales). 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.

Contenido

1. Computación Paralela a. ¿Por qué computación paralela? b. Tipos de computadoras paralelas c. Fundamentos del diseño de computadoras paralelas

2. Programas paralelos a. Aplicaciones como casos de estudio b. El proceso de paralelización c. Un caso de estudio d. Programación paralela para mejorar el rendimiento e. Descomposición f. Mapeo g. Calendarización h. Evaluación del rendimiento i. Medidas de eficiencia

3. Programación con memoria compartida a. Procesos b. Sincronización y coordinación de procesos c. Programación Multithreading con pthreads d. Programación Multithreading con OpenMP

4. Programación para GPUs a. Arquitectura de los GPUs b. Cuda c. Casos de estudio d. Estrategias generales de programación paralela e. Particionamiento f. Divide y vencerás g. Aplicaciones tipo pipeline h. Aplicaciones de tipo síncrono i. Balance de carga

5. Algoritmos y aplicaciones a. Algoritmos de ordenamiento b. Algoritmos numéricos c. Algoritmos para procesamiento de imágenes

21

d. Algoritmos de búsqueda y optimización 6. Programación paralela mediante intercambio de mensajes

a. Principios básicos b. Message Passing Interface

Bibliografía

D. Culler, J. Singh, A. Gupta, Parallel Computer Architecture: A Hardware/Software Approach. Morgan Kauffman Publishers, 1998.

I. T. Foster, Designing and Building Parallel Programs. Addisson-Wesley, 1995.

Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta. An Introduction to Parallel Computing: Design and Analysis of Algorithms. Addisson-Wesley, 2nd Ed., 2003.

Pater Pacheco, An Introduction to Parallel Programming. Morgan Kaufmann, 2011.

M. J. Quinn, Parallel Programming in C with MPI and OpenMP. McGraw-Hill, 2003.

B. Wilkinson, M. Allen, Parallel Programming: Techniques and Aplications Using Networked Workstations and Parallel Computers. Prentice-Hall, 2nd Ed., 2004.

N. Wilt, The CUDA Handbook: A Comprehensive Guide to GPU Programming. Addison-Wesley Professional, 2013.

M. Herlihy, The Art of Multiprocessor Programming. Morgan Kaufman, 2012.

B. Chapman, Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press, 2007.

22

ITC-204: Sistemas Distribuidos

Objetivo

Dotar al alumno de conocimientos para que pueda comprender y aplicar los conceptos fundamentales de los sistemas distribuidos, tanto para el área de base de datos, como para las aplicaciones en red, como manejo de protocolos, sistemas operativos, bajo diferentes tipos de arquitecturas (cliente/servidor, P2P). Que el alumno pueda programar aplicaciones en sistemas distribuidos a gran escala como la Web. Que el alumno comprenda las tecnologías middleware como Sockets, RPCs, RMIs, Corba y Servicios Web

Descripción

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 reforzar los conceptos en el área de sistemas distribuidos y distinga los aspectos más importantes de este tipo de sistemas; conocer las principales tecnologías de programación para sistemas distribuidos; diseñar e implementar sistemas distribuidos utilizando herramientas de programación de ultima generación; y conocer las principales tecnologías para el diseño de sistemas distribuidos.

Contenido

1. Introducción a los sistemas distribuidos a. Tipos de sistemas distribuidos b. Modelos de sistemas c. Retos para los sistemas distribuidos d. Ejemplos de sistemas distribuidos

2. Comunicación entre procesos a. Uso de Threads b. Comunicación con Sockets

3. Middlewares a. Introducción b. RPC c. CORBA d. Servicios Web

4. Sincronización a. Sincronización por reloj b. Exclusión mutua c. Elección de líder

5. Datos compartidos a. Control de concurrencia y transacciones b. Replicación de datos y Consistencia c. Sistemas de archivos distribuidos

6. Tolerancia a Fallos a. Introducción b. Recuperación c. Comunicación confiable

7. Seguridad a. Introducción b. Control de acceso, autenticación c. Comunicaciones seguras

8. Arquitecturas de sistemas distribuidos a. Arquitectura Cliente/Servidor b. Sistemas P2P c. Arquitecturas de aplicaciones Web

23

Bibliografía

George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design. Addison Wesley, 5th Ed., 2011

Andrew S. Tanenbaum, Maarten van Oteen, Distributed Systems: Principles and Paradigms. Prentice-Hall, 2nd Ed., 2006.

Vijay K. Garg, Concurrent and Distributed Computing in Java. Wiley-IEEE Press, 2004.

Ian J. Taylor, Andrew Harrison, From P2P to Web Services and Grids: Peers in a Client/Server World. Springer; 1st Ed., 2004.

Sukumar Ghos, Distributed Systems: An Algorithmic Approach. Chapman & Hall/CRC, 2007.

Marko Boger, Java in Distributed Systems: Concurrency, Distribution and Persistence. John Wiley & Sons, 1st Ed., 2001.

Andrew S. Tanenbaum, Distributed Operating Systems. Prentice-Hall, 1994.

24

ITC-205: Análisis y Diseño de Algoritmos

Objetivo

Proporcionar al alumno las herramientas para realizar un análisis teórico, independiente de la programación, de los algoritmos, así como para llevar a cabo un diseño eficiente de los mismos con un enfoque en aspectos importantes del problema

Descripción

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.

Contenido

1. Crecimiento de las funciones a. Crecimiento exponencial y polinomial b. Notación asintótica

2. Algoritmos numéricos. a. Aritmética básica b. Aritmética modular c. Pruebas de primalidad d. Criptografía e. Funciones de dispersión

3. Algoritmos divide-y-vencerás a. Multiplicación b. Relaciones de recurrencia c. Mergesort y otros métodos de ordenamiento d. Multiplicación de matrices

4. Estructuras de datos a. Pilas, colas y listas b. Árboles binarios c. Otros árboles de búsqueda d. Estructuras para conjuntos disjuntos

5. Algoritmos con grafos: descomposición a. Búsqueda de primero en profundidad b. Búsqueda en grafos dirigidos c. Ordenamiento topológico d. Componentes fuertemente conexos

6. Algoritmos con grafos: caminos a. Búsqueda de primero en amplitud b. Caminos más cortos: aristas con longitudes c. El algoritmo de Dijkstra d. Caminos más cortos: aristas con longitudes negativas e. Caminos más cortos: grafos dirigidos acíclicos

7. Algoritmos voraces a. Árboles recubridores mínimos b. Codificación de Huffman c. Cobertura de conjuntos

8. Programación dinámica a. Caminos más cortos en grafos dirigidos acíclicos b. Subsecuencias crecientes más largas

25

c. El problema de la mochila d. Conjuntos independientes en árboles

9. Programación lineal a. Planteamiento de la programación lineal b. Dualidad c. El algoritmo simplex

10. Problemas NP completos a. Problemas de búsqueda b. Clasificación P-NP c. Reducciones d. Algoritmos de aproximación

Bibliografía

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms. The MIT Press and McGraw-Hill, 3rd Ed., 2009.

S. Dasgupta, C. H. Papadimitriou, U. V. Vazirani, Algorithms. McGrow Hill, 2006.

Anany V. Levitin, Introduction to the Design and Analysis of Algorithms. Addison Wesley, 3rd Ed., 2011.

Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.

26

ITC-206: Inteligencia Computacional

Objetivo

Presentar al alumno una visión general de los grandes paradigmas que conforman la inteligencia computacional. Asimismo, proporcionar los conocimientos teórico-prácticos necesarios para utilizar y desarrollar técnicas de inteligencia computacional, como herramientas para optimización, entre otros propósitos.

Descripción

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.

Contenido

1. Introducción a la inteligencia computacional 2. Introducción al aprendizaje máquina

a. Conceptos básicos de búsqueda y aprendizaje máquina 3. Introducción a la computación evolutiva

a. Visión general de algoritmos genéticos, programación evolutiva y estrategias evolutivas b. Evolución diferencial c. Algoritmos culturales d. Coevolución

4. Inteligencia colectiva a. Visión general de la inteligencia colectiva b. Optimización mediante cúmulos de partículas

i. Algoritmo básico ii. Topologías de interconexión iii. Variantes básicas iv. Parámetros principales v. Tópicos avanzados

c. Algoritmos de hormigas i. Introducción ii. Modelos principales

5. Sistemas inmunes artificiales a. Visión general del sistema inmune natural b. Modelos principales

6. Sistemas neuro-difusos a. Visión general de las redes neuronales b. Fundamentos, modelos y aplicaciones de redes neuronales c. Aprendizaje supervisado en redes neuronales d. Aprendizaje no supervisado en redes neuronales e. Redes de funciones de base radial. f. Conjuntos difusos g. Lógica difusa h. Control difuso i. Conjuntos rugosos

Bibliografía

Andries P. Engelbrecht, Computational Intelligence: An Introduction. John Wiley and Sons, 2nd Ed., 2007.

Russell Eberhart, Yuhui Shi, Computational Intelligence: Concepts to Implementations. Morgan Haufmann, 2007.

S. Sumath, Surekha Paneerselvan, Computational Intelligence Paradigms: theory and applications

27

using Matlab. CRC Press, 2010.

Lezsek Rutkowki, Computational Intelligence: Methods and Techniques. Springer, 2010.

Simon Haykin, Neural Networks and Learning Machines. Prentice Hall, 3rd Ed., 2008.

Agoston E. Eiben, J. E. Smith, Introduction to Evolutionary Computing. Springer, 2007.

28

ITC-207: Optimización Combinatoria

Objetivo

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.

Descripción

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.

Contenido

1. Teoría de complejidad computacional a. Teoría de NP-Completez b. Definición de las clases de complejidad computacional c. Procedimiento para la demostración de la NP-Completez

2. Representación y Generación (RG) de objetos matemáticos a. RG de grafos b. RG de árboles c. RG de permutaciones d. RG de particiones e. RG de cadenas de crecimiento restringido f. RG de polinomios diagonales, polinomios caja, y polinomios “mayor que”

3. Algoritmos de Mutación y Selección a. Introducción a los Algoritmos de mutación y selección b. Algoritmo de 1 padre – 1 hijo c. Algoritmo de 1 padre – m hijos d. Algoritmo de n padres – m hijos selección uniforme e. Algoritmo de n padres – m hijos selección proporcional f. Sintonización de parámetros

4. Algoritmo de Recocido simulado a. Algoritmos de aceptación por umbral b. La analogía física c. Modelos Markovianos d. Un modelo homogéneo e. Un modelo no-homogéneo f. Comportamiento asintótico g. Calendarización de enfriamiento h. Sintonización de parámetros

5. Algoritmos Genéticos a. Algoritmos evolutivos b. Bases teóricas de los algoritmos genéticos

29

c. Genética de poblaciones d. Selección artificial e. Selección natural f. Recombinación de genes g. Sintonización de parámetros

6. Búsqueda Tabú a. Inspiración del algoritmo de búsqueda tabú b. Métodos de solución con un enfoque iterativo c. Uso eficiente de la memoria d. Listas tabú de tamaño variable e. El criterio de aspiración f. Ajuste de la diversificación g. Sintonización de parámetros

7. Algoritmo de Colonia de Hormigas (ACH) a. Teoría de la optimización basada en colonia de hormigas b. Representación ad-hoc para ACH c. Problemas de enrutamiento d. Problemas de calendarización

8. Aplicación a problemas reales a. Modelización de problemas reales b. Análisis de la representación y espacio de búsqueda c. Funciones de vecindad d. Sintonización de parámetros

Bibliografía

E. Aarts, J. Karel, Local Search in Combinatorial optimization. Princeton University Press, 2003.

M. Dorigo, T. Stützle, Ant Colony Optimization. Prentice-Hall, 2004.

D. L. Kreher, D. R. Stinson, Combinatorial Algorithms Generation, Enumeration, and Search. CRC Press, 1998.

F. Glover, M. Laguna, Tabu Search. Kluwer Academic Publishers, 1997.

D. Goldberg, The Design of Innovation (Genetic Algorithms and Evolutionary Computation). Springer 2002.

30

ITC-208: Ciencia de Datos

Objetivo

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.

Descripción

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.

Contenido

1. Introducción a la ciencia de datos a. ¿Qué es la ciencia de datos? b. Aplicaciones c. Relación con otras áreas

2. Almacenamiento y manipulación de datos a gran escala a. Bases de datos relacionales, b. Almacenes de datos c. Bases de datos paralelas d. Bases de datos NoSQL e. Big Data

3. Análisis de datos a. Conceptos básicos de modelado, representación y aprovechamiento de datos b. Aprendizaje no supervisado c. Aprendizaje supervisado d. Diseño de experimentos e. Revisión de algoritmos de aprendizaje automático (machine learning) f. Caso de uso con Python y Lenguaje R

4. Presentación de resultados a. Evaluación de resultados b. Análisis de resultados c. Visualización de datos

5. Casos de uso con diferentes tipos de datos a. Recuperación de información b. Análisis de estructuras de grafos c. Razonamiento d. Detección de fraudes e. Redes sociales f. Minería Web

Bibliografía

Cathy O'Neil, Rachel Schutt, Doing Data Science: Straight Talk from the Frontline. O'Reilly Media, 1st Ed., 2013.

Russell Jurney, Agile Data Science: Building Data Analytics Applications with Hadoop. O'Reilly Media, 1st Ed., 2013.

Nina Zumel, John Mount, Practical Data Science with R. Manning Publications, 1st Ed., 2014.

Wes McKinney, Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. O'Reilly Media, 1st Ed., 2012.

Anand Rajaraman, Jeffrey D. Ullman, Mining of Massive Datasets. Cambridge University Press, 2011.

Manoj R Patil, Feris Thia, Pentaho for Big Data Analytics. Packt Publishing, 2013.

31

Tom White, Hadoop: The Definitive Guide. Yahoo Press, 3rd Ed., 2012.

32

ITC-209: Redes de Computadoras

Objetivo

Que el estudiante conozca y experimente la estructura y organización de diversas redes de computadoras y sus protocolos de comunicación.

Descripción

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.

Contenido

1. Introducción a redes de computadoras. a. Modelo cliente-servidor b. Descripción general de modelos de referencia TCP/IP y OSI

2. Capa de aplicación a. Requerimientos de servicios b. Protocolos de aplicación básicos: http, http, smtp, DNS, etc.

3. Capa de transporte a. Modelos de servicio b. Conceptos de multiplexación y de-multiplexación c. Protocolos no orientados a conexión d. Protocolos orientados a conexión e. Mecanismos de control de conexión y variantes de TCP

4. Capa de Red a. Descripción de la capa IP (Internet Protocol) b. Esquemas de direccionamiento de la capa de red c. Algoritmos de enrutamiento d. Enrutamiento en Internet

5. Conceptos de Capa de Enlace a. Esquemas de direccionamiento de la capa de enlace b. Servicios de la capa de enlace c. Redes de Área Local

Bibliografía

Jim Kurose, Keith Ross, Computer Networking: A Top Down Approach Featuring the Internet. Addison-Wesley, 6th Ed., 2'12.

S. Tanenbaum, Computer Networks. Prentice Hall, 5th Ed., 2010.

W. Stallings, Comunicaciones y Redes de Computadores. Prentice Hall, 7th Ed., 2008.

A. Lopez, Protocolos de Internet. Diseño e implementación en sistemas UNIX. Ra-ma, 1999.

W. Stevens, TCP/IP Illustrated: The protocols, Volume 1. Addison-Wesley, 1994.

W. Stevens, TCP/IP Illustrated: The implementation, Volume 2. Addison-Wesley, 1995.

W. Stevens, TCP/IP Illustrated: The implementation, Volume 3. Addison-Wesley, 2001

D. E. Comer, Internetworking with TCP/IP, Volume 1. Addison-Wesley, 6th Ed., 2013.

33

ITC-210: Codificación y compresión de datos

Objetivo

Presentar los fundamentos de la compresión de datos y de la codificación de los mismos para su protección contra errores durante la transmisión en redes de información.

Descripción

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 la 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.

Contenido

1. Introducción a la Teoría de la Información a. Reseña histórica y objetivos de la Teoría de la Información b. Fuentes de información

2. Entropía y cantidad de información a. Medida de información: entropía de Shannon b. Entropía condicional, entropía conjunta c. Información mutua

3. Compresión entrópica de datos a. Teorema de codificación de fuentes de Shannon b. Códigos decodificables de forma única. Desigualdad de Kraft-McMillan c. Teorema de codificación de símbolos d. Códigos óptimos

4. Compresión con pérdidas a. Procesamiento digital de señales para compresión con pérdidas b. Compresión de señales de audio c. Compresión de imágenes digitales d. Compresión de videos e. Estándares de compresión

5. Capacidad de canal y segundo teorema de Shannon a. Definición de capacidad de un canal b. Teorema de codificación de fuentes con ruido (segundo teorema de Shannon) c. Códigos detectores y correctores de errores d. Códigos de detección de errores e. Códigos de corrección de errores f. Códigos sistemáticos g. Códigos no binarios

6. Marcas de agua digitales a. Comunicaciones secretas, medios digitales como canales subliminales b. Espectro disperso c. Comunicación con información lateral d. Teoría de la Información en la esteganografía e. Problemas abiertos

7. Casos de estudio a. Corrección de errores de datos esteganográficos en presencia de ataques intencionales y no

intencionales

34

Bibliografía Fazlollah Reza, An Introduction to Information Theory. Dover, 1961.

Claude E. Shannon, The Mathematical Theory of Commmunication. University of Illinois Press, 1998.

Richard E. Blahut, Algebraic Codes for Data Transmision. Cambridge University Press, 2002.

Cox, M. Miller, J.Bloom, J. Fridrich, Digital Watermarking. Morgan Kaufmann, 2nd Ed., 2007.

M. Barni, F. Bartolini, Watermarking Systems Engineering: Enabling Digital Assets Security and Other Applications. Marcel Dekker, 2007.

35

ITC-211: Diseño de Sistemas Digitales

Objetivo

Desarrollar abstracciones para formular y resolver problemas de ingeniería mediante el diseño, modelado y gestión de sistemas digitales complejos. Aplicar metodologías, técnicas y herramientas apropiadas para el diseño de sistemas digitales para satisfacer requerimientos o necesidades específicas de una aplicación.

Descripción

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.

Contenido

1. Introducción a. Evolución y tendencia tecnológica b. Espacio y objetivos de diseño c. Métricas de desempeño d. Componentes del procesos de diseño e. Diseño asistido por computadora f. Tecnologías de implementación

2. Señales y sistemas digitales a. Principios básicos b. Muestreo de señales en tiempo continuo c. Teorema de muestreo d. Representación numérica aritmética en punto fijo

3. Metodología de diseño de sistemas complejos a. Especificaciones de diseño b. Modelado y niveles de abstracción c. Metodología top-down y bottom-up d. Jerarquía de diseño e. Co-diseño hardware/software f. Verificación de diseño

4. Lenguajes de descripción de hardware a. Objetivos de HDLs b. Estructura, temporización y concurrencia c. Sintaxis, semántica y pragmática d. Modelado estructural y RTL e. Caso de estudio VHDL f. Estructuras secuenciales y concurrentes g. Modelado de componentes discretos h. Administración de diseños i. Generación de bancos de pruebas

5. CAD y síntesis digital a. Lenguajes de modelado y formalismos de especificación b. Fundamentos de síntesis digital c. Calendarización/asociación de funciones y componentes d. Representación y optimización

36

e. Síntesis de data-path y control f. Máquinas de estados finitos y microprogramadas g. Arreglos de Compuertas Programables en Campo (FPGAs) h. Síntesis de alto nivel en FPGAs

Bibliografía

Shoab Ahmed Khan, Digital design of signal processing systems: a practical approach. Wiley, 2011.

Laung-Terng Wang, Yao-Wen Chang, Kwang-Ting Cheng, Electronic desig automation: synthesis, verification and Test. Morgan Kauffman, 2009.

K. C. Chang, Digital systems design with VHDL and synthesis: An integrated approach. IEEE Computer Society Press, 1999.

Pong P. Chu, RTL hardware design using VHDL: coding for efficiency, portability, and scalability. Wiley-IEEE press, 2006.

Giovanni De Micheli, Synthesis and optimization of digital circuits. McGraw-Hill, 1994.

37

ITC-212: Robots Móviles Inteligentes

Objetivo

Conocer los fundamentos de los aspectos computacionales utilizados en robots móviles autónomos. Estudiar los componentes de un robot móvil: percepción, visión, planeación, navegación, construcción de mapas y localización. Aplicar los conocimientos adquiridos en el desarrollo de proyectos con robots móviles.

Descripción

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”.

Contenido

1. Introducción a. ¿Qué es un robot? b. Historia y motivaciones c. Clasificación de robots d. Componentes principales y conceptos básicos e. Problemáticas f. Aplicaciones

2. Arquitectura de robots móviles a. Diseño de robots móviles b. Mecánica c. Modelos matemáticos d. Clasificación de robots móviles

3. Percepción a. Sensores propioceptivos b. Sensores exteroceptivos c. Ruido d. Imprecisión e. Caracterización de sensores f. Filtros

4. Modelos de comportamiento a. Definiciones b. Motivaciones biológicos c. Vehículos de Braitenberg

5. Control de robots móviles a. Sistemas lineales b. Control en lazo abierto y en lazo cerrado c. Elementos de control d. Sistemas no holonómicos e. Principios de lógica difusa f. Principios de programación en tiempo real

6. Visión por computadora a. Principios b. Filtros c. Características invariantes d. Color

38

e. Reconocimiento de patrones 7. Modelado del entorno

a. Definiciones b. Representaciones geométricas c. Representaciones topológicas d. Espacio de configuraciones e. Localización f. Construcción de mapas

8. Planificación de trayectorias a. Definiciones. Enfoque local y global del problema de planificación b. Grafos de visibilidad y de tangentes c. Planificación por frentes de onda d. Campos de potencial artificial e. Planificadores cinemáticas f. Algoritmos bio-inspirados

9. Robots inteligentes a. Procesos de decisión de Markov b. Métodos básicos de solución c. Clasificadores d. Aprendizaje por refuerzo

10. Temas avanzados en robótica móvil a. Interacción hombre-máquina b. Sistemas multirobots c. Robots humanoides d. Aplicaciones específicas

Bibliografía

G. Dudek, M. Jenkin, Computacional principles of mobile robots. Cambridge University Press, 2nd Ed., 2010.

Roland Siegwart, Illah Reza Nourbakhsh, Davide Scaramuzza, Introduction to Autonomous Mobile Robots. The MIT Press, 2nd Ed., 2011.

39

ITC-303: Metaheurísticas Avanzadas

Objetivo

Al finalizar el curso el alumno conocerá una colección de métodos metaheurísticos para optimización, entre ellos modernos y clásicos, con relevancia teórica y/o práctica. Será capaz de analizar los escenarios de aplicación, elegir la metaheurística más adecuada para un problema en particular, implementarla y hacer modificaciones pertinentes en cada caso.

Descripción

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.

Contenido

1. Métodos clásicos a. Condiciones necesarias y suficientes para funciones univariables b. Condiciones necesarias y suficientes para funciones multivariables c. Condiciones de Khun-Tucker. d. Condiciones de Khun-Tucker para funciones multiobjetivo

2. Métodos numéricos a. Métodos directos univariables b. Métodos de gradiente univariables c. Métodos directos multivariables d. Métodos de gradiente multivariables e. Manejo de restricciones f. Optimización multiobjetivo

3. Metaheurísticas basadas en una solución a. Búsqueda local b. Búsqueda tabú c. Búsqueda local iterada d. Búsqueda en vecindario variable e. Búsqueda local guiada

4. Metaheurísticas poblacionales a. Búsqueda dispersa b. Optimizador del lobo gris c. Búsqueda cuco d. Algoritmo de abejas e. Algoritmo de luciérnagas

5. Control de parámetros a. Sintonización de parámetros b. Adaptación en línea

6. Algoritmos híbridos a. ¿Por qué hibridar? b. ¿Dónde hibridar? c. Búsqueda de grano fino vs. búsqueda de grano grueso

7. Metaheurísticas paralelas a. Paralelismo global

40

b. Paralelismo de grano grueso c. Paralelismo de grano fino

Bibliografía

El-Ghazali Talbi, Metaheuristics: From Design to Implementation. John Wiley and Sons, 2009.

Zbigniew Michalewicz, David B. Fogel, How to Solve It: Modern Heuristics. Springer, 2nd Ed., 2004.

Singiresu S. Rao, Engineering Optimization: Theory and Practice. John Wiley and Sons, 4th Ed., 2009.

Kalyanmoy Deb, Optimization For Engineering Design: Algorithms and Examples. Prentice Hall, 2nd Ed., 2013.

41

ITC-304 Topicos Selectos en Optimizacion Combinatoria

Objetivo: 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.

Descripción: 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.

Contenido: I. El problema de la representación

- Representaciones usando grafos - Representaciones usando permutaciones - Representaciones usando particiones - Representaciones usando cadenas de crecimiento restringido - Representaciones usando polinomios y vectores

II. El problema de la función objetivo

- Suavización de funciones mono objetivo - Escalamiento de funciones con múltiples objetivos

III. El problema del diseño experimental

- Diseños Factoriales - Arreglos Ortogonales - Arreglos de Cobertura (Covering Arrays) - Ecuaciones Diofánticas

IV. El problema de la sintonización de algoritmos - Revisión de métodos de análisis paramétrico - Revisión de métodos de análisis no-paramétrico

Bibliografía:

1. Donald L. Kreher , Douglas R. Stinson, Combinatorial Algorithms: Generation, Enumeration, and Search, CRC Press; 1st edition 1998, ISBN-10: 084933988X, ISBN-13: 978-0849339882

42

2. Yann Collette, Patrick Siarry, Multiobjective Optimization: Principles and Case Studies, Springer 2013,ISBN-10: 3642072836, ISBN-13: 978-3642072833

3. D. Richard Kuhn, Raghu N. Kacker, Yu Lei, Introduction to Combinatorial Testing, CRC Press 2013, ISBN-10: 1466552298, ISBN-13: 978-1466552296

4. David J. Sheskin, Handbook of Parametric and Nonparametric Statistical Procedures, Chapman and Hall/CRC, Fifth Edition 2011, ISBN-10: 1439858012, ISBN-13: 978-1439858011

5. Emile Aarts, Jan Karel Lenstra, Local Search in Combinatorial Optimization, Wiley 1997, ISBN-10: 0471948225, ISBN-13: 978-0471948223

43

ITC-305: Tópicos Selectos en Inteligencia Computacional

Objetivo

Profundizar en los aspectos teóricos y prácticos de los temas de inteligencia computacional, y principalmente de computación evolutiva. Analizar propuestas actuales y problemas abiertos, tanto en el diseño de los algoritmos como en la aplicación en problemas específicos.

Descripción

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.

Contenido

1. Estrategias evolutivas a fondo a. Operadores b. Selección c. Autoadaptación y matrices de covarianza

2. Programación evolutiva a fondo a. Operadores b. Selección c. Programación evolutiva rápida

3. Algoritmos genéticos a fondo a. Terminología b. Representación c. Técnicas de selección d. Operadores genéticos (cruza y mutación)

4. Manejo de restricciones en computación evolutiva a. Superioridad de puntos factibles b. Mapeos homomorfos c. Jerarquización estocástica d. Enfoques basados en optimización multiobjetivo e. Métodos híbridos f. Evolución diferencial generalizada

5. Ambientes dinámicos a. Mecanismos en algoritmos evolutivos b. EP y ES en ambientes dinámicos

6. Optimización multiobjetivo a. Optimalidad de Pareto b. Algoritmos representativos del estado del arte c. Manejo de diversidad d. Métricas y problemas de prueba

7. Aportaciones teóricas a. Funciones separables b. Invarianza rotacional c. Ajuste de contornos d. Demostraciones de convergencia e. Bloques constructores f. Paralelismo implícito

44

g. Teorema de los esquemas h. Problemas deceptivos i. Funciones de la carretera real j. No hay almuerzo gratis

Bibliografía

Agoston E. Eiben, J. E. Smith, Introduction to Evolutionary Computing. Springer, 2007.

Russell Eberhart, Yuhui Shi, Computational Intelligence: Concepts to Implementations. Morgan Haufmann, 2007.

Kenneth Price, Rainer M. Storn, Differential Evolution: A Practical Approach to Global Optimization. Springer, 2005.

Carlos A. Coello Coello, David A. Van Veldhuizen, Gary B. Lamont, Evolutionary Algorithms for Solving Multi-Objective Problems, Kluwer Academic Publishers, 2nd Ed., 2007.

Kalyanmoy Deb, Multi-Objective Optimization using Evolutionary Algorithms, John Wiley & Sons, 2009.

45

ITC-306: Tópicos Selectos en Redes de Computadoras

Objetivo

Este curso tiene como objetivo el estudio de las tecnologías y protocolos más avanzados para la construcción de redes de computadoras y redes de comunicaciones fijas y móviles. El curso tambien persigue que el alumno adquiera conocimientos teóricos y prácticos de los requerimientos y técnicas más actualizadas que requieren las redes de computadoras y comunicaciones para el aprovisionamiento de calidad de servicio de una manera automática.

Descripción

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 analizan los requisitos de servicio que demandan las nuevas aplicaciones multimedia. 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. Se realizan simulaciones mediante software especializado con el fin de aplicar los conocimientos adquiridos en el curso.

Contenido

1. Calidad de Servicio en Redes de Próxima Generación. Parámetros de calidad de servicio, mecanismos de “scheduling” y “policing”, arquitectura de servicios diferenciados (DiffServ) y de servicios integrados (IntServ).

2. Gestión de Redes. Conceptos generales de gestión de redes y servicios, infraestructuras y marcos de referencia para gestión de red, gestión de red y aprovisionamiento de calidad de servicio en redes de próxima generación.

3. Automatización en la Gestión de Redes y Servicios. Introducción a las comunicaciones y computación autónomas, gestión basada en políticas, caso de uso de automatización de gestión de redes y servicios de próxima generación.

4. Redes Inalámbricas. Clasificación de redes inalámbricas según ámbito de cobertura, características de redes inalámbricas, redes inalámbricas de área local 802.1X, estándares y redes celulares, movilidad en redes celulares

5. Sistemas celulares. Fundamentos de comunicaciones celulares, arquitectura y funciones generales de sistemas celulares, gestión de recursos.

6. Mecanismos avanzados de gestión de recursos en UMTS. Conceptos fundamentales y arquitectura de red de UMTS, mecanismos de gestión de QoS y gestión de recursos.

Bibliografía

James F. Kurose, Amhersteith W. Ross, Computer Networking: A Top-Down Approach. Addison-Wesley, 5th Ed., 2010.

Ramjee Prasad, Albena Mihovska, New Horizons in Mobile and Wireless Communications, Volume 1: Radio Interfaces. Artech House, 2009.

Ramjee Prasad, Albena Mihovska, New Horizons in Mobile and Wireless Communications, Volume 2: Networks, Services and Applications. Artech House, 2009

Ramjee Prasad, Albena Mihovska, New Horizons in Mobile and Wireless Communications, Volume 3: Reconfigurability. Artech House, 2009.

Ramjee Prasad, Albena Mihovska, New Horizons in Mobile and Wireless Communications, Volume 4: Ad Hoc Networks and PANs. Artech House, 2009.

Alan B. Johnston, SIP: Understanding the Session Initiation Protocol. Artech House, 3rd Ed., 2009.

Byeong Gi Lee, Sunghyun Choi, Broadband Wireless Access & Local Networks: Mobile WiMAX and WiFi.

Artech House, 2008.

Sofoklis Kyriazakos, George Karetsos, Practical Radio Resource Management in Wireless Systems. Artech

46

House, 2004.

Thomas W. Rondeau, Charles W. Bostian, Artificial Intelligence in Wireless Communications. Artech House,

2009.

Alfredo Mendoza, Utility Computing Strategies, Standards, and Technologies. Artech House, 2007.

OPNET IT Guru, OPNET Modeler, OPNET Modeler Wireless Suite, and Specialized modules for Flow

Analysis, MPLS, UMTS and WiMax and Documentation www.opnet.com.

Gordon L. Stüber, Principles of Mobile Communication, Kluwer Academic Publishers, 2001.

Maciej Nawrocki, Hamid Aghvami, Mischa Dohler, Understanding UMTS Radio Network Modelling,

Planning and Automated Optimisation: Theory and Practice. John Wiley & Sons, 2006.

47

ITC-307: Tópicos Selectos de Sistemas Distribuidos

Objetivo

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.

Descripción

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.

Contenido

1. Cloud Computing a. Introducción al Cloud computing b. Tecnologías de virtualización c. Infraestructura para Cloud Computing d. Sistemas de almacenamiento e. Aplicaciones y paradigmas f. Sistemas para gestionar nubes

2. Servicios de almacenamiento y procesamiento masivo de información a. Introducción a los sistemas de almacenamiento b. El paradigma Map/Reduce c. Caso de estudio: Hadoop

i. HDFS d. Map/Reduce

i. HBase e. El ecosistema de Hadoop

3. Tecnologías de la Web Semántica a. Introducción a la Web Semántica b. XML, XPATH y XQuery c. RDF y SPARQL

Bibliografía

Dan C. Marinescu, Cloud Computing: Theory and Practice. Morgan Kaufmann, 2013.

Tom White, Hadoop: The Definitive Guide. Yahoo Press, 3rd Ed., 2012.

Nick Antonopoulos, Lee Gillam, Cloud Computing Principles, Systems and Applications. Springer, 2010.

Tom Fifield, OpenStack Operations Guide. Set up and manage your OpenStack cloud. O'Reilly Media, Inc., 2014.

Grigoris Antoniou, Frank van Harmelen, A Semantic Web Primer. The MIT Press, 2008

Bob DuCharme, Learning SPARQL, Querying and Updating with SPARQL 1.1. O'Reilly Media, 2nd Ed., 2013.

Andrew S. Tanenbaum, Maarten van Oteen, Distributed Systems: Principles and Paradigms. Prentice Hall, 2nd Ed., 2006.

Coulouris George, Dollimore Jean, Kindberg Tim, Blair Gordon, Distributed Systems: Concepts and Design. Addison Wesley, 5th Ed., 2011.

Abiteboul Serge, Buneman Peter, Suciu Dan, Data on the Web, From Relations to Semistructured Data and XML. Morgan Kaufmann, 2000.

Tamer Özsu, Patrick Valduriez, Principles of Distributed Database Systems. Springer, 3rd Ed., 2011.

48

ITC-308: Tópicos Selectos de Minería de Datos

Objetivo

Que el estudiante conozca las técnicas y tecnologías avanzadas de Big Data, Inteligencia Web, Minería de Texto y Minería Web.

Descripción

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.

Contenido

1. Conceptos básicos a. Búsqueda b. Organización de información c. Recuperación de Información d. Aprovechamiento del Big Data e. Aprendizaje en la Web f. Aplicaciones

2. Minería de Texto a. Representación de texto b. Indexación c. Preprocesamiento de texto d. Diccionarios y tesauros e. Búsqueda de texto f. Medidas de similitud g. Técnicas de procesamiento de texto h. Técnicas de evaluación i. Referencias y co-referencias

3. Minería Web a. Búsqueda web b. Organización mediante temas c. Análisis de enlaces d. Algoritmos de relevancia e. Búsqueda web f. Análisis de Redes Sociales g. Análisis de uso web h. Web Semántica i. Linked Data

Bibliografía

C. Manning, P. Raghavan, H. Schütze, Introduction to Information Retrieval. Cambridge University Press, 2008.

Ricardo Baeza-Yates, Berthier Ribeiro-Neto, Modern Information Retrieval. The Concepts and Technology behind Search. Addison-Wesley, 2nd Ed., 2010.

Bing Liu, Web Data Mining. Exploring Hyperlinks, Contents, and Usage Data. Springer, 2011.

Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data Mining. Addison Wesley, 2005.

Jiawei Han, Micheline Kamber, Data Mining: Concepts and Techniques. Morgan Kaufmann, 2006.

I.H. Witten, E. Frank, Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 1999.

49

ITC-309: Cómputo Reconfigurable

Objetivo

Presentar los elementos básicos para crear arquitecturas digitales que implementen algoritmos de alta demanda computacional en dispositivos programables.

Descripción

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.

Contenido

1. Introducción a. Conceptos básicos b. Tecnologías de FPGAs c. Arquitecturas de FPGAs d. Bloques lógicos programables e. Configuración y granularidades

2. Principios de diseño de computadoras a. Modelo computacional b. Sistemas basados en microprocesadores c. Modelado del microprocesador MIPS d. Abstracción hardware/software e. Modelos de procesamiento paralelo

3. Cómputo reconfigurable a. Fundamentos b. Localidad funcional y temporal c. Cómputo espacial d. Sistemas de cómputo reconfigurable e. Clasificación de arquitecturas reconfigurables f. Reconfiguración estática y dinámica parcial

4. Implementación de aplicaciones computacionalmente intensivas a. Relación entre arquitectura de computadoras y diseño de algoritmos b. Naturaleza estructural de un algoritmo c. Dependencias de datos y control d. Representaciones topológicas abstractas e. Problemáticas

5. Métricas de comparación de plataformas computacionales a. Algunas métricas de desempeño b. Normalización de métricas c. Caracterización de recursos de implementación d. Densidad computacional

6. Casos de estudio a. Implicaciones de punto flotante en FPGAs b. Sistemas bio-inspirados c. Procesamiento de señales adaptivo d. Arquitecturas criptográficas

Bibliografía

Scott Hauck, Andre DeHon, Reconfigurable Computing: The Theory and Practice of FPGA-Based

50

Computation. Morgan Kaufmann, 2007.

David D. Patterson, John L. Hannessy, Computer organization and design. Morgan Kaufmann, 2012.

Christophe Bobda, Introduction to Reconfigurable Computing: Architectures, Algorithms, and Applications. Springer, 2009.

Patrick Lysaght, Wolfgang Rosenstiel, New Algorithms, Architectures and Applications for Reconfigurable Computing. Springer, 2010.

Pao-Ann Hsiung, Marco D. Santambrogio, Chun-Hsian Huang, Reconfigurable System Design and Verification. CRC Press, 2009.

51

ITC-310: Tópicos Selectos en Ingeniería Computacional

Objetivo

Introducir las nuevas tendencias en ingeniería computacional. Por ejemplo, extender la teoría y metodologías del uso de técnicas de reconocimiento de patrones y redes neuronales artificiales. Introducir las nuevas tendencias en algoritmos cerebro-inspirados y sus arquitecturas, así como técnicas de inteligencia computacional aplicadas al reconocimiento de patrones.

Descripción

En el curso de tópicos selectos en análisis de datos 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.

Contenido

1. Métodos ensamblados a. Algoritmos populares de clasificación b. Métodos de boosting c. Métodos de bagging d. Combinación de clasificadores e. Selección de clasificadores

2. Análisis de grupos a. Introducción al análisis de grupos b. Medidas de proximidad c. Agrupamientos jerárquico y particional d. Agrupamiento de datos a gran escala e. Validez de grupos

3. Redes neuronales pulsantes a. Principios biológicos b. Codificación pulsada c. Neuronas con memoria de corto plazo d. Neuronas de integración/disparo e. Plasticidad sináptica f. Redes neuronales pulsantes en hardware

4. Tendencias bio-inspiradas a. Técnicas populares de inteligencia computacional b. Metaheurísticas para el análisis de datos c. Metaheurísticas para el diseño de redes neuronales

Biliografía

Z. H. Zhou, Ensemble Methods: Foundations and Algorithms. Chapman & Hall/CRC, 2012.

R. Xu, D. C. Wunsch II, Clustering. John Wiley & Sons, 2009.

W. Gerstner, W. M. Kistler, Spiking Neuron Models. Cambridge University Press, 2002.

P. Engelbrecht, Computational Intelligence: An Introduction. Wiley, 2007.

52

ITC-311: Tópicos Selectos en Robótica Móvil Inteligente

Objetivo

El objetivo de este curso es estudiar y comprender los algoritmos y herramientas matemáticas empleadas en los sistemas de robots móviles encontrados en el estado del arte. La mayor parte de estas técnicas están basadas en un razonamiento de probabilidades y optimización, áreas ampliamente aplicadas en Inteligencia Artificial, por lo que se pretende incrementar la comprensión y manejo en estas dos áreas, con el propósito de desarrollar sistemas de planeación y control de robots móviles en tiempo real.

Descripción

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.

Contenido

1. Introducción Robótica Probabilista 2. Modelos probabilistas de sensores y actuadores 3. Filtro de Bayes 4. Filtro de partículas, Filtro Extendido de Kalman 5. Problema de Autolocalización y Mapeo en robots móviles 6. Procesos de decisión de Markov 7. Aprendizaje reforzado 8. Introducción Visión por Computadora para Robots Móviles 9. Modelo de cámara oscura y geometría proyectiva 10. Filtrado y detección de puntos de interés en imágenes 11. Geometría epipolar y correspondencia estéreo 12. Matriz fundamental y algoritmo de RANSAC 13. Descripción y emparejamiento de puntos de interés 14. Construcción de mosaicos de imágenes 15. Estructura a partir de Movimiento 16. Reconstrucción a partir de múltiples imágenes

Bibliografía

Sebastian Thrun, Wolfram Burgard, Dieter Fox, Probabilistic Robotics (Intelligent Robotics and Autonomous Agents series). MIT Press, 2005.

Richard Szeliski, Computer Vision (Algorithms and Applications). Springer, 2011.

53

ITC-312: Análisis de Imágenes Digitales

Objetivo

Introducir los conceptos teóricos asociados con el análisis de imágenes digitales. Aplicar los conceptos teóricos aprendidos a problemas del mundo real mediante el desarrollo de algoritmos para el análisis de imágenes digitales.

Descripción

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.

Contenido

1. Fundamentos del análisis de imágenes digitales a. El proceso de análisis de imágenes b. Concepto de imagen c. Adquisición de imágenes d. Muestreo y cuantificación e. Formato de imágenes f. Relaciones básicas entre píxeles

2. Transformaciones geométricas de la imagen a. Interpolación de imágenes b. Transformadas básicas de la imagen c. Transformada de Fourier d. Convolución e. Otras transformadas separables

3. Mejoramiento de la imagen a. Fundamentos b. Transformaciones de intensidad simples c. Procesamiento del histograma d. Mejoramiento estadístico e. Mejoramiento con secuencia de imágenes f. Mejoramiento con técnicas difusas

4. Filtrado de imágenes a. Tipos de ruido en imágenes b. Filtrado espacial

i. Filtros suavizantes ii. Filtros realzantes

c. Filtrado en el dominio de la frecuencia i. Filtros suavizantes ii. Filtros realzantes iii. Filtro homomórfico

5. Operadores morfológicos a. Fundamentos b. Erosión y dilatación c. Apertura y cerradura d. Gradientes morfológicos

54

e. Operadores por reconstrucción f. Algoritmos para imágenes binarias

6. Segmentación de imágenes a. Fundamentos b. Umbralado global y local c. Segmentación orientada a regiones d. Segmentación basada en técnicas de inteligencia computacional e. Segmentación de objetos en movimiento f. Evaluación de métodos de segmentación

7. Correspondencia de patrones a. Template matching en el dominio espacial b. Template matching en el dominio de la frecuencia c. Transformada de Hough d. Detección de color

8. Extracción de rasgos a. Preprocesamiento de regiones b. Descriptores basados en la morfología del objeto c. Descriptores basados en la textura de un objeto

9. Reconocimiento de objetos a. Patrones y clases de patrones b. Selección de características y reducción de dimensionalidad c. Clasificadores lineales d. Clasificadores no lineales e. Técnicas de optimización

Bibliografía

Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing. Prentice Hall, 3rd Ed., 2008.

Rafael C. González, Richard E. Woods, Steven L. Eddins, Digital Image Processing Using MATLAB. Gatesmark Publishing, 2nd Ed., 2009.

Pierre Soille, Morphological Image Analysis. Principles and Applications. Springer-Verlag, 2nd Ed., 2004.

Gerhard X. Ritter, Joseph N. Wilson, Handbook of Computer Vision Algorithms in Image Algebra. CRC Press, 2nd Ed., 2001.

Mark S. Nixon, Alberto S. Aguado, Feature Extraction and Image Processing. Newnes, 2002.

Milan Sonka, Vaclav Hlavac, Roger Boyle, Image Processing, Analysis, and Machine Vision. Thomson, 3rd Ed., 2008.

55

ITC-313: Seguridad Informática

Objetivo

Revisar los temas más importantes relacionados con la seguridad informática que afectan a los sistemas de información.

Descripció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.

Contenido

1. Introducción al curso a. Introducción a la seguridad informática, y al curso b. Conceptos generales de la seguridad informática c. Vulnerabilidades, riesgos, amenazas, y ataques d. Políticas de seguridad y estándares

2. Criptografía Aplicada a. Introducción a la criptografía b. Bases de la criptografía de llave privada c. Funciones picadillo d. Bases de la criptografía de llave pública e. Autenticación de mensajes f. Infraestructura de llave pública g. Firma electrónica en México h. Temas selectos de criptografía aplicada

3. Seguridad perimetral en redes a. Cortafuegos b. Detectores y prevensores de intrusos c. Protocolo IPSec d. VPNs (aspectos teóricos y prácticos) e. Protocolos de seguridad WEP, WAP, TLS f. Presentación tópico especial sobre seguridad en sistemas ubicuos (con ECC, PBC, e IBE)

4. Seguridad en software y políticas a. Control de acceso (Listas, roles, etc.) b. Almacenamiento seguro de contraseñas y seguridad en base de datos c. Seguridad en aplicaciones web d. Malware y virus modernos e. Vulnerabilidades de software f. Diseño de software seguro g. Denegación de servicio (ataques y contramedidas) h. Hacking, Ingeniería social y cibercrimen i. Mesa de discusión sobre Leyes en materia de crimen cibernético y su alcance

Bibliografía

Christof Paar, Jan Pelzl, Understanding Cryptography: A text for students and practitioners. Springer, 2010.

Jeffrey Hoffstein, Jill Pipher, Joseph H. Silvermann, An introduction to Mathematical Cryptography. Springer, 2008.

56

L. G. De la Fraga, Seguridad en Redes de Computadoras Usando GNU/Linux. Notas del curso impartido el 9 de septiembre 2004 en el 1st International Conference on Electrical and Electronics Engineering. Acapulco, Guerrero. September 8-10, 2004.

William Stallings, Cryptography and Network Security: Principles and Practice. Prentice Hall, 5th Ed., 2011.

Alexander Clemm, Network Management Fundamentals. Cisco Press, 2006.

Stephen Northcutt, Judy Novak, Network Intrusion Detection. Sams Publisher, 3rd Ed., 2002.

57

ITC-301: Seminario de Investigación I

Objetivo general

Elaborar el protocolo de investigación sobre el tema de tesis de maestría que desarrollará el alumno.

Objetivos específicos

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.

Investigar sobre los antecedentes, estado del arte y marco teórico del tema de tesis.

Plantear el problema de investigación, generar hipótesis de investigación y definir objetivos, metas y alcances de la tesis.

Plantear la metodología de desarrollo de la tesis.

Contenido

1. Introducción a la investigación científica 2. El proceso para el desarrollo de una tesis 3. Métodos, técnicas y herramientas de búsqueda de información 4. El estado del arte y los antecedentes de la investigación 5. Formulación de problemas, hipótesis y objetivos 6. Definición del marco teórico 7. Diseño de la metodología de desarrollo 8. Planeación temporal de la tesis 9. Aspectos formales y de notaciones

Requerimientos necesarios para aprobar el curso

Entregar el protocolo de tesis aprobado por dos investigadores

Entregar el documento de antecedentes y estado del arte

Una presentación sobre artículos relevantes para el tema de tesis

Una presentación sobre el protocolo de tesis con investigadores invitados

Requerimientos opcionales

Examen exploratorio de inglés

Implementaciones y/o desarrollos útiles para el tema de tesis

58

ITC-401: Seminario de Investigación II

Objetivo general

Desarrollar la metodología planteada en el protocolo de tesis.

Objetivos específicos

Seleccionar los materiales y métodos que ayudarán en el desarrollo de la tesis.

Afinar o inclusive modificar aspectos de la metodología planteada.

Implementar y/o integrar las herramientas básicas para el desarrollo y los experimentos de la tesis.

Conocer sobre técnicas y herramientas para el análisis y visualización de datos: primera parte.

Cursar la materia de inglés (opcional).

Contenido

1. Visualización parte I a. Introducción a la visualización de datos b. Software para visualización y análisis de datos c. Gráficos convencionales: barras, histogramas, líneas, cajas, dispersión, pie, etc. d. Distribuciones y pruebas de hipótesis

2. Revisión de artículos relacionados a los materiales y métodos seleccionados para el tema de tesis 3. Redacción y buenas prácticas de escritura

Requerimientos necesarios para aprobar el curso

Entregar el documento de materiales y métodos.

Una presentación sobre los materiales y métodos seleccionados.

Una presentación sobre los desarrollos e implementaciones realizadas.

Requerimientos opcionales

Curso de inglés.

59

ITC-501: Seminario de Investigación III

Objetivo general

Presentar los resultados obtenidos a partir de la metodología de desarrollo planteada en el protocolo de tesis.

Objetivos específicos

Desarrollar la experimentación y validación de la metodología planteada en la tesis.

Recolectar y analizar los resultados obtenidos.

Comparar los resultados con otros enfoques e interpretar los hallazgos.

Conocer sobre técnicas y herramientas para el análisis y visualización de datos: segunda parte.

Cursar la materia de inglés (opcional).

Contenido

1. Visualización parte II a. Gráficos avanzados: superfices, modelos 3D, gráficos especializados b. Modelado y regresión de datos c. Visualización de datos de alta dimensionalidad d. Animaciones y simulaciones

2. Redacción y buenas prácticas de escritura.

Requerimientos necesarios para aprobar el curso

Entregar el documento de experimentación y resultados.

Una presentación sobre los resultados obtenidos, aplicando los conceptos aprendidos en los temas de análisis y visualización de datos.

Requerimientos opcionales

Curso de inglés.

Redacción de un artículo, reporte técnico, manual de usuario, etc.

60

ITC-601: Seminario de Investigación IV

Objetivo general

Integrar el documento de tesis y preparar material de difusión.

Objetivos específicos

Realizar las discusiones, conclusiones y tendencias futuras del trabajo de tesis.

Integrar el documento de tesis a partir de las entregas en los seminarios anteriores.

Realizar presentaciones de difusión sobre los trabajos de tesis, como posters, sesiones orales, demos, etc., como parte del TopTamaulipas.

Contenido

1. Consejos y buenas prácticas para la escritura de artículos científicos 2. Sesiones para revisar avances en la integración del documento de tesis 3. Sesiones para revisar avances en la escritura de un artículo

Requerimientos necesarios para aprobar el curso

Entregar el documento de tesis que tentativamente será enviado al comité revisor.

Entregar un artículo con los resultados de la tesis.

Una presentación tipo examen de grado con investigadores invitados.

Requerimientos opcionales

Enviar el artículo a un congreso o revista.

Elaborar material de difusión: demos, videos, maquetas, páginas web, etc. Curso de inglés.