INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS PROGRAMA SINTÉTICO CARRERA: Ingeniería en Computación ASIGNATURA: Análisis de Algoritmos SEMESTRE: Quinto OBJETIVO GENERAL: El alumno resolverá problemas de procesamiento, diseñando algoritmos, aplicando técnicos de programación y estructuras de datos. CONTENIDO SINTÉTICO: I. Introducción. II. Teoría de la Computación. III. Tipos de datos Abstractos y Estructuras de Datos. IV. Técnicas, Diseño y Análisis de los Algoritmos, Algoritmos Geométricos. METODOLOGÍA: Preparación y discusión de los temas por parte de los alumnos así como la resolución de problemas bajo la supervisión del profesor. Trabajo en equipo. A su vez el uso de material didáctico y presentaciones en Power Point para un mejor y mayor avance en las unidades propuestas. EVALUACIÓN Y ACREDITACIÓN: Participación en actividades de clase, presentación y calidad de trabajos extra clase, aplicación de tres exámenes parciales o departamentales durante el semestre, cubrir y entregar la totalidad de las practicas de laboratorio. La calificación final será el promedio de las evaluaciones anteriores, siempre y cuando el alumno cumpla con lo estipulado en la reglamentación institucional. BIBLIOGRAFÍA: 1. Abellanas M. Lodares D., Análisis de Algoritmos y Teoría de Grafos, Macrobit Editores, México, 1998. p 1-256. 2. Aho, Alfred, Hopcroft, John and Ullman, Jeffrey. Data Structures and Algorithms. Ed. Addison-Wesley Pub. Co.1998. pp1-13, 29-50, 105-133, 205-218,253-257. 3. Drozdek Adam, Data Structures and Algorithms in C++, 2a. ed. Brooks Cole,USA, 2004. pp52-76, 215-300, 599644, 728. 4. Martin John C., Lenguajes formales y teoría de la Computación, 3ª. Ed., Mc Graw Hil, México, 2003. p86-110, 229-316. ESCUELA: Escuela Superior de Ingeniería Mecánica ASIGNATURA: Análisis de Algoritmos y Eléctrica. SEMESTRE: Quinto INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS CARRERA: Ingeniería en Computación OPCIÓN: COORDINACIÓN: Academia de Computación DEPARTAMENTO: Ingeniería en Computación CLAVE: CLA027 CRÉDITOS: 7.5 VIGENTE: Agosto 2005 TIPO DE ASIGNATURA: Teórico-Practica MODALIDAD: Escolarizada TIEMPOS ASIGNADOS HORAS/SEMANA/TEORÍA: HORAS/SEMANA/PRÁCTICA: 3.0 1.5 HORAS/SEMESTRE/TEORÍA: HORAS/SEMESTRE/PRÁCTICA: 54.0 27.0 HORAS/TOTALES: 81.0 PROGRAMA ELABORADO O ACTUALIZADO POR: Academia de Computación de ESIME Culhuacan REVISADO POR: Subdirección Académica de ESIME Culhuacan APROBADO POR: Consejo Técnico Consultivo Escolar de ESIME Culhuacan. Ing. Ernesto Mercado Escutia AUTORIZADO POR: Comisión de Planes y Programas del Consejo General Consultivo del IPN INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS ASIGNATURA: Análisis de Algoritmos CLAVE CLA027 HOJA: 2 DE 8 FUNDAMENTACIÓN DE LA ASIGNATURA El alumno resolverá problemas de procesamiento, diseñando algoritmos, aplicando técnicos de programación y estructuras de datos. Con la evolución de los lenguajes de programación, las computadoras y sus aplicaciones funcionan de acuerdo a la forma en que son programadas, por lo que, la asignatura de Análisis de Algoritmos que trata paso a paso y matemáticamente la eficiencia de los procesos de trabajo y la administración de los recursos y datos, se vuelve esencial en el área de la computación. Así que desde sus inicios su objetivo siempre ha consistido en el ahorro de espacio y tiempo para la ejecución de cálculos y ha dado origen a nuevas formas de resolver problemas de mayor dificultad. Además en todas las asignaturas consecuentes que tengan relación sobre el uso de las computadoras deberá existir el antecedente que permita resolver de una forma ordenada y metodológica la programación u organización, lo cual, se lleva a cabo mediante el Análisis de Algoritmos. Por consiguiente los ejemplos y técnicas comprendidas en el programa propuesto podrán ser aplicables a los materiales colaterales, y a las materias ulteriores como Sistemas Operativos, Sistemas Distribuidos y Programación Lógica entre otras. Las Matemáticas discretas, la Teoría de Autómatas y los Compiladores son antecedentes de esta asignatura. OBJETIVO DE LA ASIGNATURA El alumno resolverá algoritmos, aplicando técnicas de programación y estructuras de datos. Diseñando algoritmos resolverá problemas de procesamiento. INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS ASIGNATURA: Análisis de Algoritmos No. UNIDAD I CLAVE HOJA: 3 DE 8 CLA027 NOMBRE: Introducción OBJETIVOS PARTICULARES DE LA UNIDAD El alumno modelará algoritmos. No. TEMA 1.1 1.1.1 1.1.2 1.1.3 T 1.5 HORAS P 3.0 TEMAS Algoritmos. Algoritmos, noción y conceptos. Origen y desarrollo de los algoritmos. Clasificación de los algoritmos. 1.2 1.2.1 1.2.2 1.2.3 1.2.4 Importancia y uso de los algoritmos. Sintaxis y semántica del lenguaje (GLC). Secuenciación, selección e iteración Recursión. Tipo de datos, tipo de datos abstractos y estructura de datos. 4.5 3.0 1.3 1.3.1 1.3.2 1.3.3 1.3.4 Solución de problemas. Conceptos. Clasificación de problemas. Técnicas para la solución de problemas. Problemas, algoritmos y programas 6.0 1.5 12.0 4.5 Subtotal CLAVE BIBLIOGRÁFICA EC 1B, 3C, 5C 6.0 ESTRATEGIA DIDÁCTICA Preparación de los temas por parte del alumno antes de la clase. Desarrollo de trabajos extra clase. Participación grupal para la solución de problemas en prácticas de laboratorio. Investigación de las definiciones formales. PROCEDIMIENTO DE EVALUACIÓN La evaluación será diagnóstica, formativa de aprendizaje constructivo y sumativa. - Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). - Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (20%) - Investigación y trabajo extra clase (30%) - Participaciones (10%) INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS ASIGNATURA: Análisis de Algoritmos No. UNIDAD II CLAVE HOJA: 4 DE 8 CLA027 NOMBRE: Teoría de la Computación OBJETIVOS PARTICULARES DE LA UNIDAD El alumno resolverá problemas de programación seleccionando el algoritmo adecuado, de acuerdo a las técnicas estudiadas y desarrolladas. No. TEMA 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 HORAS P 3.0 3.0 3.0 9.0 3.0 12.0 9.0 Teoría de la computación. Tesis Church-Turing. Máquinas de Turing. Teorema de la recursión. Problemas. Complejidad de algoritmos. 2.2 2.2.1 2.2.2 2.2.3 Introducción al análisis de algoritmos. Análisis de algoritmos. Importancia del análisis de algoritmos. Fundamentos matemáticos. Análisis asintótico. 2.3 2.3.1 2.3.2 2.3.2.1 2.3.2.2 2.3.2.3 2.3.3 2.3.4 Eficacia y eficiencia. Notación de la complejidad. Introducción a la complejidad de algoritmos. Notación O. Otras notaciones. Análisis de estructuras de control, secuencias, ciclos y llamadas. Análisis de estructuras de control, secuencias, ciclos y llamadas recursivas. Técnicas de análisis. Relaciones de recurrencia. 2.3.5 2.3.6 T 3.0 TEMAS Subtotal CLAVE BIBLIOGRÁFICA EC 1B, 2C, 3C 9.0 ESTRATEGIA DIDÁCTICA Preparación de los temas por parte del alumno antes de la clase con la guía del profesor. Elaboración grupal de presentaciones en power point con la explicación de las técnicas estudiadas. Investigación de las definiciones formales actuales. PROCEDIMIENTO DE EVALUACIÓN La evaluación será diagnóstica, formativa de aprendizaje constructivo y sumativa. - Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). - Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (30%) - Investigación y trabajo extra clase (10%) - Trabajo en grupo (20%) ASIGNATURA: Análisis de Algoritmos CLAVE CLA027 HOJA: 5 DE 8 INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS No. UNIDAD III NOMBRE: Tipos de Datos Abstractos y Estructuras de Datos OBJETIVOS PARTICULARES DE LA UNIDAD El alumno seleccionando la estructura de los datos abstractos, solucionará problemas en la programación de algoritmos. No. TEMA 3.1 3.1.1 3.1.2 3.1.3 3.1.4 T 6.0 HORAS P 3.0 Estructuras de datos y diseño de algoritmos. Estructura de datos lineales. Estructura de datos no-lineales. Procedimientos recursivos. Estructura de datos recursivos. 3.2 3.2.1 3.2.2 3.2.3 3.2.4 Tipo de datos abstractos. Registros, arreglos, conjuntos. Pilas, colas y listas. Diccionarios. Árboles. 6.0 3.0 3.3 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.3.2 3.3.3.3 3.3.3.4 Operaciones con las estructuras de datos Inserción y eliminación. Búsquedas. Ordenación e intercalamiento. Método del mínimo. Método de la burbuja. Método del Quicksort. Método de mezclas. 3.0 1.5 15.0 7.5 TEMAS CLAVE BIBLIOGRÁFICA EC 2C, 3C, 6C 3.0 ESTRATEGIA DIDÁCTICA Preparación de los temas por parte del alumno antes de la clase bajo la guía del profesor. Desarrollo de trabajos extra clase y prácticas de laboratorio sobre los métodos estudiados. Elaboración grupal de presentaciones en power point con la explicación por parte de alumnos de los métodos estudiados. PROCEDIMIENTO DE EVALUACIÓN La evaluación será diagnóstica, formativa de aprendizaje constructivo y sumativa. - Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). - Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (30%) - Trabajo extra clase (10%) - Trabajo en grupo (20%) ASIGNATURA: Análisis de Algoritmos No. UNIDAD IV CLAVE CLA027 HOJA: 6 DE 8 NOMBRE: Técnicas, Diseño y Análisis de los Algoritmos, Algoritmos Geométricos. OBJETIVOS PARTICULARES DE LA UNIDAD INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS El alumno resolverá problemas sobre algoritmos donde la solución es más adecuada, eficiente y óptima. No. TEMAS TEMA 4.1 Técnicas del diseño y análisis para la optimización de los algoritmos. 4.1.1 Relaciones de recurrencia. 4.1.2 Programación dinámica. 4.1.3 Backtracking. 4.1.4 Divide y vencerás. 4.1.5 El problema de la mochila. 4.2 Algoritmos geométricos. 4.2.1 Búsqueda geométrica. 4.2.2 Inclusión de polígonos. 4.2.3 Problemas de intersecciones. 4.3 Algoritmos de grafos. 4.3.1 Definición y clasificación de los grafos. 4.3.2 Representación en la computadora de los grafos. 4.3.3 Algoritmo de Dijkstra. 4.3.4 Algoritmo de Euler. 4.3.5 Algoritmo de camino mas corto. 4.3.6 Grafos conexos. 4.3.7 Graficas en computadora. 4.4 Análisis asintótico de las funciones. 4.4.1 Complejidad de los algoritmos. 4.4.2 Acotación de problemas. 4.4.3 Transformación de problemas. 4.4.4 Cotas superiores e inferiores. Subtotal ESTRATEGIA DIDÁCTICA T 3.0 HORAS P 1.5 3.0 1.5 3.0 1.5 3.0 1.5 CLAVE BIBLIOGRÁFICA EC 3.0 1B, 2C, 4B, 5C 3.0 15.0 6.0 3.0 Preparación de los temas por parte del alumno antes de la clase. Desarrollo de trabajos extra clase y prácticas de laboratorio sobre los algoritmos estudiados. Elaboración grupal sobre alguna aplicación real de alguna solución aprendida. PROCEDIMIENTO DE EVALUACIÓN La evaluación será formativa de aprendizaje constructivo y sumativa de los siguientes aspectos: - Participación grupal en la solución de un problema real de acuerdo a eficiencia y optimización (30 %) - Evaluación de los conocimientos teóricos y aplicaciones mediante un examen departamental (40%). - Desarrollo de trabajos extra clase y prácticas de laboratorio. (30%) INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS ASIGNATURA: Análisis de Algoritmos CLAVE: CLA027 HOJA: 7 DE 8 RELACIÓN DE PRÁCTICAS PRACT. No. NOMBRE DE LA PRÁCTICA UNIDAD DURACIÓN LUGAR DE REALIZACIÓN Todas las prácticas se llevaran a cabo en el Laboratorio de Cómputo. 1 Grafo dirigido I 3.0 2 Grafo TAD I 1.5 3 Flujo Dijkstra I 1.5 4 Algoritmo Ford-Fulkerson I 1.5 5 Problema de la suma y cifrado de Merckle-Hellman II 3.0 6 Cifrado de Merckle-Hellman II 3.0 7 Grafos con incidencias II 3.0 8 Algoritmo de exploración III 1.5 9 Algoritmo BFS III 1.5 10 Algoritmo DFS III 1.5 11 Combinaciones III 1.5 12 Recorridos III 1.5 13 Multiplicación de números grandes IV 1.5 14 Multiplicación de Karatsuba IV 1.5 15 Comparaciones de rendimiento IV 1.5 16 Algoritmos N(p) completos IV 1.5 Total 27 INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS ASIGNATURA: ANÁLISIS DE ALGORITMOS CLAVE CLA027 HOJA: 8 DE 8 PERÍODO 1 UNIDAD I PROCEDIMIENTO DE EVALUACIÓN Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (20%) Investigación y trabajo extra clase (30%) Participaciones (10%) 2 II Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (30%) Investigación y trabajo extra clase (10%) Trabajo en grupo (20%) 3 III Evaluación de los conocimientos teóricos y aplicación de estos, mediante un examen departamental (40%). Prácticas y problemas resueltos de acuerdo a la metodología en laboratorio (30%) Trabajo extra clase (10%) Trabajo en grupo (20%) 4 IV Participación grupal en la solución de un problema real de acuerdo a eficiencia y optimización (30 %) Evaluación de los conocimientos teóricos y aplicaciones mediante un examen departamental (40%). Desarrollo de trabajos extra clase y prácticas de laboratorio. (30%) C BIBLIOGRAFÍA Abellanas M. , Lodares D., Análisis de Algoritmos y teoría de grafos, Macrobit Editores, México, 1998. p1-256. CLAVE 1 B X 2 X Aho, Alfred, Hopcroft, John and Ullman, Jeffrey. Data structures and Algorithms. Ed. Addison-Wesley Pub. Co. 1998.pp1-13, 29-50, 105-133, 205-218,253-257. 3 X Brassard Giles, Bratley P, Fundamentos de Algoritmia, Prentice Hall, 1997 pp42-64, 103-248 4 Drozdek Adam, Data Structures and Algorithms in C++, 2a. ed. Brooks Cole,USA, 2004. pp52-76, 215-300, 599-644, 728. X 5 X Knuth Donald E., The Stanford Graphbase : A Platform for Combinatorial Computing, Addison-Wesley, 1993. pp94-112, 148-167. 6 X Martin John C., Lenguajes formales y teoría de la Computación, 3ª. Ed., Mc Graw Hil, México, 2003. pp86-110, 229-316. INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS PERFIL DOCENTE POR ASIGNATURA 1. DATOS GENERALES ESCUELA: Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan. CARRERA: Ingeniería en Computación ÁREA: BÁSICAS C. INGENIERÍA SEMESTRE : D. INGENIERÍA Quinto C. SOC. y HUM. ASIGNATURA: Análisis de Algoritmos ACADEMIA: Computación ESPECIALIDAD Y NIVEL ACADÉMICO REQUERIDO: Licenciatura en Ingeniería o Ciencias Físico Matemáticas 2. OBJETIVOS DE LA ASIGNATURA: El alumno resolverá problemas de procesamiento, diseñando algoritmos, aplicando técnicos de programación y estructuras de datos. 3. PERFIL DOCENTE: CONOCIMIENTOS Experiencia en programación de alto y bajo nivel, conocimientos teóricos de Teoría de Autómatas, Análisis de Algoritmos y Estructuras de Datos. EXPERIENCIA PROFESIONAL HABILIDADES ACTITUDES Haber impartido clases, o Formación pedagógica. Dominio de la asignatura. Tener vocación por la docencia. Manejo de grupos. Honestidad. Administración de redes. Comunicación (Transmisión del conocimiento). Ejercicio de la critica fundamentada. Programación en algún lenguaje de computación. Capacidades de análisis y síntesis. Respeto (buena relación maestro-alumno). Tolerancia. Motivación al alumno. Ética. Responsabilidad científica. Espíritu de colaboración. Superación docente y profesional. Compromiso social ELABORÓ ______________________ Ing. Jorge F. Veloz Ortiz PRESIDENTE DE LA ACADEMIA DE COMPUTACIÓN REVISÓ AUTORIZÓ ______________________ ____________________ M. en C. Alberto Paz Gutiérrez SUBDIRECTOR ACADÉMICO. Ing. Ernesto Mercado Escutia DIRECTOR FECHA: Agosto de 2005