Anexo 6 Materias Exclusivas de Ingeniería en Computación Nombre de la materia : . Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : MATEMÁTICAS DISCRETAS CI7000-T 4 16 64 8 IA7000-T Objetivo Que el alumno adquiera las bases mínimas de matemáticas discretas para proseguir su desarrollo en cualquier rama de las ciencias computacionales. Contenido 1. 2. 3. 4. 5. 6. 7. Inducción matemática Algoritmos y programas Conjuntos Funciones Técnicas de análisis Estructuras algebraicas Teoría y algoritmos de grafos Bibliografía básica James L. Hein. Discrete Structures, Logic, and Computability. Jones and Bartlett Publishers, Inc. 2nd Edition. 2001. Alfred V. Aho. y Jeffrey D. Ullman. Foundations of Computer Science, C Edition. W.H. Freeman, 1995. Kenneth H. Rosen. Discrete Mathematics and its Aplications. McGraw-Hill. 4th Edition, 1998. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) (X) ( ) ( ) ( ) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) ( ) (X) A6-1 Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LENGUAJES FORMALES Y AUTÓMATAS CI7001-T 3 16 48 6 CI7000-T Objetivo Este curso introduce al estudiante al estudio de lenguajes formales que operan en máquinas computacionales abstractas. Contenido 1. 2. 3. 4. 5. 6. 7. Conceptos matemáticos preliminares Introducción a las máquinas Dispositivos, máquinas y programas Simulación Máquinas finitas y lenguajes regulares Lenguajes libres de contexto Máquinas de pila y contador. Bibliografía básica Robert W. Floyd y Richard Beigel. The Languaje of Machines. Computer Science Press 1994. Alfred V. Aho. y Jeffrey D. Ullman. Foundations of Computer Science, C Edition. W.H. Freeman, 1995. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) (X) ( ) ( ) ( ) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) ( ) (X) A6-2 Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : TEORÍA DE LA COMPUTACIÓN CI7002-T 4 16 64 8 CI7001-T Objetivo Este curso introduce al estudiante a la teoría de la computabilidad. Se presentan teorías generales de computabilidad incluyendo las Máquinas de Turing, funciones recursivas y el cálculo lambda. Se discuten nociones de decidibilidad e indecidibilidad y se relaciona esto con análisis de complejidad. Contenido 1. 2. 3. 4. 5. 6. 7. 8. 9. Conceptos matemáticos preliminares Máquinas de Turing La tesis de Church-Turing Programas y funciones computables. Lenguajes imperativos, funciones recursivas (parciales), Cálculo lambda, Lenguajes lógicos. Problemas de decisión, problemas recursivos y recursivamente enumerables Problemas indecidibles. El problema de la parada. Indecibilidad de la lógica de primer orden. Computación acotada en el tiempo: P y NP NP-Completitud Ejemplos de problemas NP completos. El problema de satisfactibilidad en fórmulas booleanas, problemas de grafos, etc. Bibliografía básica James L. Hein. Discrete Structures, Logic, and Computability. Jones and Bartlett Publishers, Inc. 2nd Edition. 2001. Robert W. Floyd y Richard Beigel. The Languaje of Machines. Computer Science Press 1994. Ullman, J. D.; Hopkroft, J. E., Introduction to Automata Theory, Languages and Computations. Addison-Wesley Publishing Company, 1979. Martin D. Davis, Ron Sigal y Elaine J. Weyuker. Computability, Complexity, and Languajes. Academic Press Inc. 1994. Bibliografía complementaria Gough, K. J., Syntax Analysis and Software Tools, Addison-Wesley Publishing Company, 1988 Gries, David; Editor, Programming In The 1990s, An Introduction To The Calculation Of Programs, Springer Verlag, 1990 Dijkstra, E. W., editor., Formal Development Of Programs And Proofs, Addison-Wesley Publishing Company, 1990 Manna, Z.; Waldinger, R., The Logical Bases For Computing Programming, Addison- Wesley Publishing Company, 1993. Kfoury, A.J.; Moll, R. N.; Arbib, M. A., A Programming Approach to Computability. Springer-Verlag, 1982. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) ( ) (X) A6-3 (X) (X) (X) ( ) (X) ( ) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : ESTRUCTURAS DE DATOS CI7100-T 3 16 48 6 CI0000-T Objetivo: Que el alumno conozca los diferentes modelos de datos y herramientas utilizadas en la programación de sistemas. Contenido: 1. Modelo de datos, iteración y recursión. 2. El modelo de datos de listas 3. El modelo de datos de conjuntos 4. El modelo de datos de árboles 5. Teoría y algoritmos de grafos Bibliografía básica: Alfred V. Aho. y Jeffrey D. Ullman. Foundations of Computer Science, C Edition. W.H. Freeman, 1995. Bibliografía complementaria Estructuras de datos en C. Tenenbaum. Prentice-Hall Hispanoamericana, 1993. Estructuras de datos en Java. M.A. Weiss. Addison Wesley 2000. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-4 (X) (X) (X) ( ) ( ) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : INGENIERÍA DE PROGRAMACIÓN CI7101-T 4 16 64 8 CI0000-T Objetivo Este curso presenta un estudio profundo de muchos de los temas de ingeniería de software, incluyendo paradigmas de ingeniería de software, especificación de requisitos, diseño funcional y orientado a objetos, verificación y mantenimiento de software. Se discuten ambientes y herramientas de software y se introduce a los estudiantes a su uso. Se consideran también implicaciones sociales tales como el costo de las fallas y las responsabilidades profesionales. El curso también comprende una introducción a la interacción computadora-humano y una discusión de algunas interfases de software vistas desde el punto de vista de ingeniería de software. Este curso requiere de la participación de los estudiantes en proyectos por equipos. Contenido 1. Introducción 2. La naturaleza y cualidades del software 3. Principios de la Ingeniería de Software 4. Diseño de Software 5. Especificación de requisitos de software 6. Verificación y validación 7. Herramientas y ambientes para la Ingeniería de Software Bibliografía básica Ghezzi, C.; Jazayeri, M.; Mandrioli, D., Fundamentals Of Software Engineering, Prentice-Hall Inc. 2nd Edition, 2002. Bibliografía complementaria Ledgard, H.; Tauer, J., Professional Software, Software Engineering Concepts, Vol. I, Addison-Wesley Publishing Company, 1987 Gilb, T., Principles Of Software Engineering Management, Addison-Wesley Publishing Company, 1988 Glass, R. L., Software Conflict, Essays on the Art and Science of Software Engineering, Yourdon Press Computing Series, 1991 Hrietza, J.; Jackson, K., Computer Security Solutions, Blackwell Scientific Publications, 1990 Naur, P., Computing: A Human Activity, ACM Press, Addison-Wesley Publishing Company, 1992 Schulmeyer, G. G., Zero Defect Software, McGraw-Hill, Inc., Software Engineering Series, 1990 Thimbleby, H., User Interface Design, ACM Press, Addison-Wesley Publishing Company, 1990 Nutt, G. J., Centralized and Distributed Operating Systems, Prentice-Hall, 1991 Klerer, M., Design Of Very High-level Computer Languages, A User-Oriented Approach, 2nd. Edition, McGraw-Hill, Inc., 1991 Tracz, W.; Editor, Software Reuse-Emerging Technology, IEEE Computer Society Press, 1988 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) (X) (X) (X) ( ) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-5 Nombre de la materia : . Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : ANÁLISIS DE ALGORITMOS CI7102-T 4 16 64 8 CI7100-T Objetivo Este curso da un tratamiento profundo de análisis de complejidad. Ayudan a motivar y desarrollar el tema varios algoritmos de búsqueda y ordenamientos, así como métodos de espacios de búsqueda del área de Inteligencia Artificial y estructuras de archivos utilizados en sistemas de bases de datos. Se discuten clases de complejidad, así como la naturaleza de la NP-completez e intratabilidad. Esto lleva a una discusión de computabilidad y de la máquina universal de Turing. Se discuten algunos problemas asociados con algoritmos paralelos. Contenido 1. 2. 3. 4. 5. 6. 7. Introducción y conceptos básicos. Solución de ecuaciones de recurrencia. Complejidad en ordenamientos. Problemas que involucran sistemas complejos. Problemas que involucran números. Algoritmos Paralelos. La clase NP y su relación con la clase P. Bibliografía básica • • Cormen, T. H.; Leierson, C. E.; Rivest, R. L., Introduction To Algorithms, MIT Press. Second Edition, 2001. Rawlins, G. J.E., compared to what?, an introduction to the analysis of algorithms, Computer Science Press, 1992 Bibliografía complementaria • • • • • • • Aho, A. V.; Hopkroft, J. E.; Ullman, J. D., Estructuras De Datos Y Algoritmos, Addison-Wesley Publishing Company, 1988 Garey, J., Computers And Intractability: A Guide To The Theory Of NP-Completeness, Freeman, New York, 1979 Aoe, J.I.; edited by , Computer Algorithms: Key Search Strategies, IEEE Computer Society Press, 1991 Cragon, H. G., Branch Strategy Taxonomy and Performance Models, IEEE Computer Society Press, 1992 Kuck, D. J., The Structure Of Computers And Computations, Volume One, John Wiley & Sons, 1978 McNaughton, R., Elementary Computability, Formal Languages, and Automata, Prentice-Hall Inc., 1982 Kfoury, A.J.; Moll, R. N.; Arbib, M. A., A Programming Approach to Computability, Springer-Verlag, 1982 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: (X) Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) ( ) ( ) ( ) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) ( ) ( ) A6-6 Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE SISTEMAS OPERATIVOS CI7200-L 5 16 80 10 Ninguno Objetivo Al finalizar el curso, el alumno adquirirá la habilidad para instalar, configurar y administrar el sistema operativo Linux. Contenido 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Instalación Arranque y parada del sistema Tipos de usuarios Control de procesos Sistema de archivos Administración de cuentas de usuario Dispositivos seriales Agregando discos Procesos periódicos Respaldos Archivos de bitácora Drivers y el kernel Redes TCP/IP Ruteo Hardware de red El sistema de nombres de dominio El sistema de archivos de red Correo electrónico Administración de la red y depuración Seguridad Instalación de software y localización Bibliografía básica E. Nemeth, G. Snyder, T. Hein and T. R. Hein. Linux Administration Handbook. Prentice Hall, 2002. Bibliografía complementaria Abundante bibliografía en Internet Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-7 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : SISTEMAS OPERATIVOS CI7200-T 4 16 64 8 IA7400-T, CI0000-T Objetivo Al finalizar el curso, el alumno dominara los conceptos básicos de sistemas operativos que incluyen tareas, procesos, sincronización de procesos, organización de memoria física y virtual, sistemas operativos distribuidos, seguridad y privacidad Contenido 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Introducción Programación de tareas y procesos Coordinación y sincronización de procesos Coordinación y despacho Organización de memoria física y virtual Manejo de dispositivos Sistemas de archivos y los nombres Seguridad y protección Comunicaciones y redes Sistemas distribuidos y de tiempo real Bibliografía básica Tanenbaum, A. S., Modern Operating Systems, Pearson Education, 2 edition., 2001 Shaw, A. C.; Bic, L., The Logical Design Of Operating Systems, Second Edition, Prentice Hall, Inc., 1988 Bibliografía Complementaria: Bach, M. J., The Design Of The Unix Operating System, Prentice Hall, Inc., 1986 Comer, D.; Fossum, T., Operating System Design, The Xinu Approach, Volumen I, Prentice Hall, Inc., 1988 Nutt, G. J., Centralized and Distributed Operating Systems, 1991 Pinkert, J. R.; Wear, L. L., Operating Systems: Concepts, Policies And Mechanisms, Prentice Hall, Inc., 1989 Silberschatz, A.; Peterson, J.; Galvin, P., Operating Systems Concepts, Third Edition, Addison-Wesley Publishing Company, 1991 Tanenbaum, A. S., Sistemas Operativos, Diseño E Implementación, Prentice Hall Software Series, 1988 Fortier, P. J.; Desrochers, G. R., Modeling and Analysis of Local Area Networks, IEEE Computer Society Press, 1990 Stallings, W., Operating Systems, MacMillan Publishing Company, 1992 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-8 (X) (X) (X) (X) ( ) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : MODELOS PROBABILISTAS CI7300-T 3 16 48 6 CB0600-T Objetivo Introducir al estudiante al razonamiento probabilístico como una extensión del razonamiento lógico que incluye incertidumbre. Contenido 1. 2. 3. 4. 5. 6. 7. 8. 9. Repaso de teoría de probabilidad. Variables aleatorias. Probabilidad condicional y esperanza condicional Clasificador Bayesiano simple Cadenas de Markov Modelos ocultos de Markov Campos aleatorios de Markov Procesos de decisión de Markov Procesos de decisión de Markov parcialmente observables Redes de Markov Redes Bayesianas Bibliografía básica Sheldoon M. Ross. Introduction to Probability Models. Academic Press 1980. Judea Perl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann Publishers, Inc. 1988. Bibliografía complementaria Wei-Min Shen. Autonomous Learning from the environment. W. H. Freeman and Company. 1994. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-9 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : Conocimientos previos recomendados: LÓGICA IA7000-T 3 16 48 6 NINGUNO Objetivo Introducir al estudiante en el análisis del lenguaje matemático a través de los lenguajes proposicionales y de primer orden. De éstos, se enfatizan por igual tres aspectos: su estructura formal, su semántica (a través de las estructuras matemáticas) y la teoría de la inferencia lógica. Contenido 1. El proceso de razonamiento 2. Calculo proposicional 3. Sistemas de razonamiento formal 4. Lógica de predicados 5. Indecibilidad 6. Lógica aplicada 7. Lógica computacional Bibliografía básica James L. Hein. Discrete Structures, Logic, and Computability. Jones and Bartlett Publishers, Inc. 2nd Edition. 2001. Delong, H., A Profile Of Mathematical Logic, Dover Publications, 2004. Herbert B. Enderton. A Mathematical Introduction to Logic. Academic Press. 2nd Edition. 2000. Bibliografía complementaria Alfred V. Aho y Jeffrey D. Ullman. Foundations of Computer Science C Edition. W. H. Freeman Company. 1994. Juan Frausto Solís y Gilberto Sánchez Ante. Fundamentos de Lógica Computacional. Ed. Trillas, 2000. Polya, G., How To Solve It, Princeton Univ. Press, 1945 Boolos, J., Computability and Logic, Cambridge, U.P., 1974 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X ) (X ) ( ) (X ) A6-10 (X ) (X ) (X ) ( ) ( ) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : COMPILADORES IA7100-T 3 16 48 6 CI7001-T Objetivo Proveer al alumno con principios y técnicas útiles para la construcción de Compiladores. El alumno deberá ser capaz de implementar la traducción (o "compilación") de un lenguaje de programación de alto nivel al lenguaje de máquina de un computador, para lo cual deberá asociar los conceptos abstractos de programación estudiados en cursos previos con su implementación concreta en el ámbito de la tecnología actual. Contenido 1. 2. 3. 4. 5. 6. 7. Introducción Análisis léxico Análisis sintáctico Tabla de símbolos Generación de código intermedio Optimización de código Generación de código Bibliografía básica Alfred Aho, Ravi Sethi y Jeffrey Ullman: "Compiladores. Principios, Técnicas y Herramientas", Addison-Wesley Iberoamericana, 1990. Bibliografía complementaria Aho, R. Sethi y J. Ullman: "Compilers. Principles, Techniques and Tools", Addison-Wesley Reading, Mass., 1986. Niklaus Wirth: "Compiler construction", Addison-Wesley, Harlow, England, 1996. Thomas Pittman y James Peters: "The Art of Compiler Design in C", Prentice Hall, Englewood Cliffs, NJ, 1990. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-11 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE GRAFICACIÓN IA7200-T 3 16 48 6 Ninguno Objetivo Adquirir la habilidad para desarrollar aplicaciones gráficas basadas en Open GL. Contenido 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Obteniendo Open GL. Dibujando figuras Más herramientas de dibujado Herramientas vectoriales para gráficas Transformaciones de objetos Modelado de superficies con mallas poligonales Vistas tridimensionales Realismo visual Herramientas para despliegues raster Manejo del color Remoción de superficies ocultas Bibliografía básica F. S. Hill. Computer Graphics Using Open Gl. Prentice-Hall. 2nd Edition. Bibliografía complementaria Earnshaw, R.A., Fundamental Algorithms for Computer Graphics, Springer-Verlag, 1991. Foley, J. D. , Computer Graphics: Principles And Practice, The Systems Programming Series Reading, Addison-Wesley, 1990 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: (X) Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) (X) (X) (X) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-12 Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : GRAFICACIÓN IA7200-T 3 16 48 6 CB7000-T, CI0000-T Objetivo Conocer los algoritmos de graficación en dos y tres dimensiones. Contenido 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Introducción. Algoritmos Básicos de Gráficas para Dibujo de Primitivas en 2 Dimensiones. Hardware de Gráficas. Transformaciones Geométricas. Vistas en 3 Dimensiones. Jerarquía de Objetos y PHIGS Simples. Dispositivos de Entrada, Técnicas de Interacción y Tareas de Interacción. Software de Interfase de Usuarios. Representando Curvas y Superficies. Modelado de Sólidos. Manipulación de Imágenes y Formatos de Almacenamiento. Bibliografía básica Foley, J.D. et al. Introduction to Computer Graphics. Addison-Wesley. 1993. Earnshaw, R.A., Fundamental Algorithms for Computer Graphics, Springer-Verlag, 1991. Foley, J. D. , Computer Graphics: Principles And Practice, The Systems Programming Series Reading, Addison-Wesley, 1990 Bibliografía complementaria Angel, E., Computer Graphics, Addison-Wesley, 1990 Farins, G., Curve And Surfaces For Computer Aided Geometric Design: A Practical guide, Computer and Scientific Computing Publishers, 1990 Hearn, D.; Baker, M.P., Computer Graphics, Second Edition, Prentice Hall Computer Science, 1994. Onodera, T.; Kawai, S., A Formal Model Of Visualization In Computer Graphics Systems, Lecture Notes in Computer Science, Springer Verlag, 1990 Rost, R. J. , Color Theory And Models For Computer Graphics Visualization, Course Notes; E.U.A. ACM, 1992 Salmon, R.; Slater, M., Computer Graphics: Systems and Concepts, Addison-Wesley Publishing Company, 1989. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: (X) Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: (X) (X) (X) (X) ( ) ( ) Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-13 Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE PARADIGMAS DE PROGRAMACIÓN IA7300-L 3 16 48 6 Ninguno Objetivo Este curso introduce al estudiante a algunos de los lenguajes de programación contemporáneos, empezando por el lenguaje ensamblador, lenguajes imperativos (C y del Shell), un lenguaje orientado a objetos (Java) y finalizando con un lenguaje funcional (Scheme). Contenido 1. 2. 3. 4. 5. 6. El lenguaje de programación del Shell Ambiente de desarrollo del lenguaje C. Opciones del compilador, bibliotecas, depuradores El lenguaje ensamblador Llamado de código en ensamblador desde un programa en C El lenguaje Java y la programación orientada a objetos El lenguaje Scheme y la programación funcional Bibliografía básica R. Stones. Beginning Linux Programming. Wrox; 2nd Edition, 2000. B. Neveln. Linux Assembly Languaje Programming. Prentice Hall 2000. H.M. Deitel et al. Java How to Program. 5th Edition. Prentice-Hall 2002. R. K. Dybvig, J-P Hebert. The Scheme Programming Language. MIT Press. 2003. H. Abelson, G.J. Sussman and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press. 1996. Bibliografía complementaria Sethi, R., Programming Languages, Concepts and Constructs, Addison-Wesley Publishing Company, 1989 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-14 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : PARADIGMAS DE PROGRAMACIÓN IA7300-T 3 16 48 6 CI7101-T Objetivo Este curso introduce al estudiante a la naturaleza de los lenguajes de programación contemporáneos, empezando por una revisión profunda de lenguaje ensamblador y finalizando con un tratamiento profundo de un lenguaje verdadero orientado a objetos (tal como Smalltalk o Eiffel). Durante el desarrollo del curso se discute la evolución de lenguajes imperativos (FORTRAN, Algol, PL/I, Pascal) y lenguajes funcionales (Lisp, Scheme, ML). Adicionalmente se introducen conceptos fundamentales de diseño e implementación de los lenguajes de alto nivel, incluyendo los conceptos de ligado, chequeo de tipos y administración de memoria durante ejecución. Contenido 1. 2. 3. 4. 5. 6. 7. 8. Historia y evolución de los lenguajes de programación Organización de la computadora a nivel ensamblador Máquinas virtuales Control de secuencia Control de los datos Manejo del espacio de almacenamiento durante ejecución Paradigmas de programación (Lenguajes Imperativos, lógicos, funcionales, orientados a Objetos.) Diseño de Lenguajes. Bibliografía básica Friedman, D. P.; Wand, M.; Heynes, C. T., Essentials Of Programming Languages, The MIT Press, 1992 Sethi, R., Programming Languages, Concepts and Constructs, Addison-Wesley Publishing Company, 1989 Bibliografía complementaria Scragg, G. W., Computer Organization, A Top-Down Approach, McGraw-Hill Publishing Company, Inc., 1992 Budd, T., An Introduction To Object-Oriented Programming, Addison-Wesley Publishing Company, 1991 Field, A. J.; Harrison, P. G., Functional Programming, Addison-Wesley Publishing Company, 1989 Friedman, L. W., Comparative Programming Languages, Generalizing The Programming Function, Prentice Hall, Inc., 1991 Kogge, P. M., The Architecture of Symbolic Computers, McGraw-Hill Incorporated, 1991 Tucker, A. B., Jr., Lenguajes De Programación, Segunda Edición, McGraw-Hill,, España, 1987. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-15 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : ORGANIZACIÓN DE COMPUTADORAS IA7400-T 3 16 48 6 CI0300-T Objetivo : Este curso trata alternativas de diseño en la organización de computadoras. Revisa y cubre la organización de la máquina a nivel de lenguaje ensamblador, la organización del subsistema de memoria, conceptos de interfase y aspectos que surgen al manejar las comunicaciones con el procesador. Contenido 1. 2. 3. 4. 5. 6. 7. 8. Introducción Procesadores, memoria y Entrada salida El nivel de la lógica digital Nivel de la microprogramación El nivel de máquina convencional El nivel de la máquina del sistema operativo El nivel del lenguaje ensamblador Arquitecturas avanzadas de computadoras Bibliografía básica Hamacher, C.; Vranesic, Z.; Zaky, S., Computer Organization, 5th Edition, McGraw-Hill, 2001. Tanenbaum, A. S., Structured Computer Organization, 4th Edition, Prentice-Hall International, 1998. Bibliografía complementaria Bartee, T. C., Computer Architecture and Logic Design, McGraw-Hill, 1991. Hwang, K.; Briggs, F. A., Arquitectura De Computadoras Y Procesamiento Paralelo, McGraw-Hill, 1988. Leng, P.; Charlton, C., Principles of Computer Organization, McGraw-Hill, 1990. Mano, M. M., Computer System Architecture, 3rd. Edition, Prentice-Hall, Inc., 1992 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-16 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE BASES DE DATOS IA7500-L 2 16 32 4 Ninguno Objetivo Adquirir la habilidad para utilizar manejadores de bases de datos desde un lenguaje anfitrión. Contenido 1. Manejadores de bases de datos 2. El manejador MySQL 3. El manejador mSQL 4. El manejador PostgreSQL 5. Acceso a manejadores desde un lenguaje anfitrion (C, Java) Bibliografía básica D. Egan, P. Zikopoulos, Ch. Rogers. BDA’s Guide to Databases Under Linux. Syngress Publishing. 2000. N. Matthew. Professional Linux Programming. Peer Information Inc. 2000. Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-17 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : BASES DE DATOS IA7500-T 4 16 64 8 CI7101-T, IA7000-T Objetivo Este curso cubre lo referente a sistemas de bases de datos, cuyos temas incluyen modelos de datos (Entidad-Relación, relacional y orientado a objetos); lenguajes de consulta (álgebra relacional, cálculo relacional); el diccionario de datos; implementación del núcleo de un sistema de bases de datos relacional y ejemplos concretos de lenguajes y sistemas de bases de datos comerciales. Otros temas que también se cubren son: Optimización de las consultas; teoría de las formas normales y el diseño de la base de datos; proceso de transacciones, control y recuperación de errores; seguridad e integridad; sistemas distribuidos de bases de datos; interfaces con los usuarios y lenguajes de consulta gráficos; estudio de la organización física de las bases de datos; tecnologías modernas (hipertexto y sistemas basados en el conocimiento). Contenido 1. Panorama general. 2. Modelos de datos. 3. La Lógica como un modelo de datos 4. Lenguajes de consulta relacionales 5. Organización física de los datos 6. Teoría de diseño para bases de datos relacionales 7. Lenguajes para bases de datos orientadas a objetos 8. Protección de la base de datos frente a usos indebidos Bibliografía básica Date, C. J., An Introduction to Database Systems. 8th Edition, Pearson Education. 2003. Ullman, J. D., Principles Of Database And Knowledge-base Systems, Vol. I, Computer Science Press, 1988 Bibliografía complementaria Alagic, Object-Oriented Database Programming, Springer-Verlag, 1988 Filman, R. E.; Friedman, D.P., Coordinated Computing: Tools and Techniques for Distributed Software, McGraw-Hill, Computer Science, 1984. Kershenbaum, A., Telecommunications Network Design Algorithms, McGraw-Hill, Computer Science, 1993. Korth, H.; Silbersschatz, A., Database Systems Concepts, Second Edition, McGraw-Hill, Computer Science, 1991. Pascal, F., Understanding Relational Databases, with Examples in SQL, Wiley, 1993. Robertazzi, T.G., Computer Networks and Systems, Queuing Theory and Performance Evaluation, McGraw-Hill, Computer Science, 1990. Wiederhold, G., File Organization for Database Design, McGraw-Hill, Computer Science, 1987. Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-18 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE REDES DE COMPUTADORAS IA7600-L 2 16 32 4 NINGUNO Objetivo Proporcionar al estudiante la habilidad para implementar y probar esquemas de comunicación entre computadoras que participan en una red. Contenido 1. 2. 3. 4. 5. 6. 7. Medios de comunicación Hardware de las computadoras para comunicación Comunicación serial Comunicación ethernet El protocolo TCP/IP Sockets y datagramas de TCP/IP Programas de la capa de aplicación (email) Bibliografía básica W. Richard Stevens. UNIX Network Programming: Networking APIs: Sockets and XTI, Vol. 1. Prentice Hall. 1997. Warren W. Gay. Linux socket Programming: By Example. Que. 2000. Bibliografía complementaria Tanenbaum, A. S., Computer Networks, Second Edition., Prentice-Hall, 1988. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-19 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : REDES DE COMPUTADORAS IA7600-T 4 16 64 8 CI0000-T, IA3100-T. Objetivo Este curso le da al estudiante fundamentos para el estudio de redes de computadoras. Se cubren los métodos y prácticas que se utilizan en redes de computadoras para permitir la comunicación. Contenido 1. 2. 3. 4. 5. 6. 7. 8. Introducción La capa física. La subcapa de acceso al medio. La capa de enlace de datos. La capa de red. La capa de transporte. La capa de sesión La capa de aplicación Bibliografía básica Tanenbaum, A. S., Computer Networks, Second Edition., Prentice-Hall, 1988. Bibliografía complementaria Fortier, P. J.; Desrochers, G. R., Modeling and Analysis of Local Area Networks, IEEE Computer Society Press, 1990 Raynal, M.; Helary, J., Sinchronization And Control Of Distributed Systems And Programs, John Wiley & Sons, Inc., 1990 Schwaderer, W. D., C Programmer's Guide to NetBIOS, Howard W. Sams & Company, 1988 Stallings, W., Editor., Computer Communications: Architectures, Protocols, and Standards, 3rd Edition, IEEE Computer Society Press, 1992 Gupta, R.; Horowitz, E., Editores, Object-oriented Databases With Applications To CASE, Networks And VLSI CAD, Prentice Hall, Inc., 1991 Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-20 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : LABORATORIO DE INTELIGENCIA ARTIFICIAL IA7700-L 3 16 48 6 Ninguno Objetivo Desarrollar en el estudiante la habilidad de programar en Lisp y Prolog, dos lenguajes comúnmente utilizados para construir sistemas de IA. Contenido 1. 2. 3. 4. 5. 6. Introducción a Lisp Panorama de Lisp Aplicaciones de Lisp en Inteligencia Artificial Introducción a Prolog Panorama de Prolog Aplicaciones de Prolog Bibliografía básica P. Norvig. Paradigms of Artificial Intelligence Programming Case Studies in Common Lisp. Morgan Kaufmann Pub. 1991. I. Bratko. Prolog Programming for Artificial Intelligence. Pearson Education. 3rd Edition. 2000. Bibliografía complementaria Stuart Russell y Peter Norvig. Artificial Intelligence A Modern Approach. Prentice Hall. 2nd Edition. 2002. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-21 (X) (X) (X) (X) (X) (X) ( ) Nombre de la materia : Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : INTELIGENCIA ARTIFICIAL IA7700-T 3 16 48 6 CI7000-T , IA7300-T Objetivo Presenta al estudiante un panorama selectivo de conceptos clave y aplicaciones de la inteligencia artificial (IA), junto con los lenguajes comúnmente utilizados para construir sistemas de IA (Lisp, Prolog). Contenido 7. 8. 9. 10. 11. 12. 13. Introducción Agentes inteligentes Técnicas de búsqueda Agentes que razonan de manera lógica Planificación Aprendizaje Comunicación, percepción y actuación Bibliografía básica Stuart Russell y Peter Norvig. Artificial Intelligence A Modern Approach. Prentice Hall. 2nd Edition. 2002. Bibliografía complementaria Ginsberg, M., Essentials of Artificial Intelligence, Morgan Kaufmann Publishers Inc.1993. Rich, E.; Knight, K., Artificial Intelligence, Second Edition, McGraw Hill Book Company, 1991. Bielawsky, L.; Lewand, R., Intelligent Systems Design; Integrating Expert Systems, Hypermedia, and Database Technologies, John Wiley & Sons, Inc., 1991. Sangal, R., Programming Paradigms in Lisp, McGraw-Hill, 1991. Bowen, K., ProLog and Expert Systems Programming, McGraw-Hill, 1991. Chang, S.-K., Editor, Visual Languages And Visual Programming, Plenum Press, 1990. Garcia, O. N.; Chien, Y.-T., Editores, Knowledge-Based Systems, Fundamentals and Tools, IEEE Computer Society Press, 1991 Iyengar, S.; Elfes, A.; Editores, Autonomous Mobile Robots: Perception, Mapping, and Navigation, Volumes 1 and 2. IEEE Computer Society Press, 1991. Jackson, P., Introduction To Expert Systems, Second Edition, Addison-Wesley Publishing Company, 1990. Schalkoff, R., Artificial Intelligence, McGraw-Hill, 1990. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-22 (X) (X) (X) (X) (X) ( ) ( ) Nombre de la materia: Clave: No. De horas /semana : Duración semanas: Total de Horas : No. De créditos : Prerrequisitos : INVESTIGACIÓN DE OPERACIONES IA7800-T 3 16 48 6 CB0001-T, CB7000-T Objetivo En este curso se proporcionarán los conocimientos que permitan al alumno conocer los orígenes de la Investigación de Operaciones, comprender su metodología, algunas de sus aplicaciones más comunes. El alumno podrá formular modelos matemáticos simples y conocerá y aplicará los algoritmos adecuados Contenido 1. Antecedentes . 2. Programación Lineal. 3. Análisis de redes. 4. Teoría de Juegos. 5. Modelos económicos. Bibliografía básica Hillier, F. S. ; Lieberman, G. J. , Introduction to Operations Research. 7th Edition. McGraw Hill, 2002. Taha, H. A. , Operations Research. An Introduction. Pearson Education. 7th Edition. 2002. Bibliografía complementaria Bazaraa, M.S.; Jarvis, J.J. , Programación Lineal y Flujo en Redes, Limusa, 1981. Moskowitz, H.; Wright, G. P. , Investigación de Operaciones, Prentice Hall, 1979 Phillips, D.T.; Ravindran, A.; Solberg, J.J. , Operations Research: Principles and Practice, John Wiley & Sons, 1976. Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase: Lectura de material fuera de clase: Ejercicios fuera de clase (tareas): Investigación documental: Elaboración de reportes técnicos o proyectos: Prácticas de laboratorio en una materia asociada: Visitas a la industria: Metodología de evaluación: Asistencia: Tareas: Elaboración de reportes técnicos o proyectos: Exámenes de Academia o Departamentales (X) (X) (X) (X) A6-23 (X) (X) (X) ( ) ( ) ( ) ( )