PROGRAMAS DE ESTUDIO NOMBRE DE LA ASIGNATURA: Algoritmos y estructuras de datos CICLO ESCOLAR: Tercer cuatrimestre CLAVE DE LA ASIGNATURA: L1IS104 OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA: Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas y dinámicas de datos y programación modular por medio de lenguajes declarativos que proporcionen los conocimientos y habilidades necesarios para la optimización de tiempos de ejecución y respuesta en sistemas con grandes cantidades de información TEMAS Y SUBTEMAS 1. Métodos de ordenación y búsqueda 1.1 Ordenación 1.1.1 Burbuja 1.1.2 Baraja 1.1.3 Selección 1.1.4 Shell 1.1.5 Inserción 1.2 Búsqueda 1.2.1 Secuencial 1.2.2 Binaria 2. Estructuras de datos estáticas 2.1 Pilas 2.1.1 Operaciones básicas sobre pilas: push y pop 2.1.2 Implementación de la pila mediante arreglos unidimensionales 2.1.3 Ejemplos de aplicación 2.2 Colas 2.2.1 Operaciones básicas sobre colas 2.2.2 Implementación de una cola mediante arreglos unidimensionales 2.2.3 Ejemplos de aplicación 2.3 Otras listas y su implementación estática 2.3.1 Listas enlazadas 2.3.2 Listas doblemente enlazadas 3. Introducción a las estructuras dinámicas 3.1 Definición 3.1.1 Nodo 3.1.2 Apuntador 3.1.3 Simbología 3.2 Operaciones básicas 3.2.1 Declaración 3.2.2 Inicialización del apuntador 3.2.3 Solicitud de memoria para un nodo 3.2.4 Liberación del espacio utilizado por un nodo 3.3 Comparación entre las estructuras estáticas y dinámicas 4. Estructura de datos dinámicas 4.1 Pilas 4.1.1 Creación 4.1.2 Operación push 4.1.3 Operación pop 4.1.4 Aplicación 4.2 Colas 4.2.1 Creación 4.2.2 Inserción de un nodo 4.2.3 Borrado de un nodo 4.2.4 Aplicación 4.3 Listas 4.3.1 Creación 4.3.2 Inserción de un nodo 4.3.3 Borrado de un nodo 4.3.4 Recorrido 4.3.5 Aplicaciones 4.4 Otras listas 4.4.1 Listas circulares 4.4.2 Listas doblemente encadenadas 4.4.3 Listas circulares doblemente encadenadas 5. Recursión 5.1 Definición 5.2 Diseño de algoritmos recursivos 5.3 Implementación de la recursión utilizando pilas 6. Árboles 6.1 Definición 6.2 Definición de árbol binario 6.3 Definición de árbol binario de búsqueda 6.4 Operaciones sobre árboles binarios de búsqueda 6.4.1 Creación 6.4.2 Adición de un nodo 6.4.3 Búsqueda de un nodo 6.4.4 Recorrido del árbol 6.4.4.1 Preorder 6.4.4.2 Inorder 6.4.4.3 Postorder ACTIVIDADES DE APRENDIZAJE CON LA CONDUCCIÓN DEL DOCENTE: Lluvia de ideas sobre las herramientas para el diseño de algoritmos y estructuras de datos a revisar en el curso Discusión de los resultados de las investigaciones documentales referentes a los métodos y herramientas para el diseño de algoritmos y estructuras de datos efectuados por los estudiantes DE MANERA INDEPENDIENTE: Investigación documental referente a los métodos de ordenación y búsqueda, programación de estructuras de datos estáticos, programación dinámica, métodos de estructuras de programación dinámicas, programación recursiva, programación basada en árboles Participación en los foros de discusión para exponer los resultados de las investigaciones sobre herramientas y métodos para el diseño de algoritmos y estructuras de datos Prácticas referentes a las herramientas para el diseño de algoritmos y estructuras de datos abordados en las investigaciones documentales Solución de un problema mediante el desarrollo de un software de aplicación en el área comercial con la implementación de las herramientas vistas en el curso CRITERIOS Y PROCEDIMIENTOS DE EVALUACIÓN Y ACREDITACIÓN Evaluación parcial Entrega de actividades prescritas por el docente Evidencias de desempeño Reportes de investigación documental y de campo Reportes de prácticas Experiencias de aprendizaje colaborativo en línea Participación Instrumentos de evaluación Rúbricas 50% Evaluación final Entrega del trabajo integrador Evidencias de desempeño Resolución de problemas Instrumentos de evaluación Rúbricas 50%