Está en la página 1de 11

SYLLABUS DE ALGORITMOS Y ESTRUCTURA DE DATOS

I. DATOS GENERALES

Facultad: Ciencia, Tecnología y Ambiente Departamento: Desarrollo Tecnológico


Carrera: Ingeniería en Sistemas de Información Nombre de la asignatura: Algoritmos y Estructuras de Datos.
Código de la asignatura: 270060 Créditos: 4
Prerrequisito: Laboratorio de Programación I Año y Cuatrimestre: 2019, III Cuatrimestre
HAD (Horas de Atención directa del HAM (Horas de Atención Mediada) HAV (Horas de HAE (Horas de Auto Totales
docente) - Atención Virtual) Estudio)
60 - 60 120
Rasgos del perfil profesional que se desarrollan: Eje(s) Curricular(es) al que pertenece la asignatura:
 Desarrolla software aplicando las teorías, principios, metodologías y mejores  Eje de Formación Científico-Técnica.
prácticas de la ingeniería de software, que aporten a resolver problemas  Eje de Investigación.
organizacionales, demostrando comportamiento ético, con base en normas,
en estándares y en recomendaciones nacionales e internacionales.
 Evalúa la calidad del proceso de desarrollo y de productos de software,
aplicando modelos de evaluación, con el fin de garantizar la conformidad de
estos con los estándares nacionales e internacionales.

Nombre del profesor:


José Alejandro Durán García Tipo de contrato: Horario
Grupo de clase: Días y horario de clases:
0086 Lunes 08:50 a.m. - 10:30 a.m. Aula: I-1
Martes 08:50 a.m. - 10:30 a.m. Sala Comp. Lab. C
Jueves 07:00 a.m. - 8:40 a.m. Sala Comp. Lab C
Día y hora de consulta: Foro de Consulta-EVA Jueves 01:00 – 02:00
Coordinador del Área: Lic. Armando J. López L. Fecha de entrega: 09/09/2019
Revisado por: Aprobado por:

II. OBJETIVOS DE LA ASIGNATURA

a) Generales:
Al concluir esta asignatura, los y las estudiantes estarán en capacidad de:
1
 Construir abstracciones eficientes de conjuntos de datos simples y complejos mediante el estudio de estructuras de datos
reconocidas, así como los algoritmos asociados a éstas, para su implementación en programas basados en tales abstracciones
utilizando un lenguaje de programación estructurado.
 Diseñar algoritmos bien estructurados para el mejoramiento del diseño y del rendimiento de programas, basándose en el
estudio y aplicación de estrategias algorítmicas reconocidas, sus ejemplares, y la implementación de buenas prácticas de
programación.
 Comprender con pensamiento analítico los problemas algorítmicos de ordenamiento y búsqueda, sus características y
variantes, así como las soluciones existentes y sus ejemplares, a la luz del estudio de algoritmos de ordenación y de búsqueda
reconocida y su implementación utilizando un lenguaje de programación estructurado.
 Realizar con sentido crítico comparaciones de la eficiencia de algoritmos a fin de concluir sobre la mejor alternativa algorítmica
ante un escenario problemático determinado, basándose en el análisis asintótico del comportamiento de algoritmos en cuanto
al uso de los recursos de tiempo y espacio.

b) Específicos:
1) Unidad I:
 Realizar abstracciones de datos mediante su organización en estructuras de datos fundamentales y el estudio de su lógica
organizativa y funcional.
 Gestionar la memoria utilizada por las estructuras de datos mediante su implementación como parte elemental de soluciones
algorítmicas optimizadas.
 Implementar algoritmos asociados a las estructuras de datos fundamentales para la resolución de problemas organizativos de
datos en la memoria utilizada por los programas.
2) Unidad II:
 Aplicar buenas prácticas de programación al construir algoritmos, apoyándose de un proceso metodológico adecuado.
 Emplear estrategias algorítmicas para el diseño y la implementación de algoritmos computacionales.
3) Unidad III:
 Explicar los conceptos de complejidad computacional y su impacto en el diseño y eficiencia de los algoritmos.
 Aplicas técnicas de análisis asintótico de algoritmos para medir eficiencia y eficacia en la construcción de soluciones
algorítmicas.
 Analizar algoritmos fundamentales de ordenamiento y búsqueda mediante su implementación en contextos problemáticos
particulares.

2
III. CONTRATO DIDÁCTICO:

a) Durante las clases presenciales o virtuales, los y las estudiantes se comprometen a:


 Asistir a clases todos los días y con puntualidad. Todo estudiante con 20% de inasistencias no justificadas perderá su derecho a
calificación.
 Ser participativo(a): en clases, foros, consultas, proyecto de curso.
 Asistir a las evaluaciones, según el calendario establecido en este documento o según lo acordado entre los estudiantes y el profesor.
 Entregar las tareas resueltas en tiempo y forma, según el calendario establecido en el Syllabus o según lo acordado entre los estudiantes y
el profesor.
 Conocer y respetar el reglamento académico estudiantil y el reglamento de uso de los laboratorios de software, para lograr el ambiente de
trabajo necesario para el desarrollo adecuado de las clases.
 Garantizar el buen estado de cualquier medio de almacenamiento para la entrega de asignaciones, exámenes o trabajo de curso.
 No cometer fraude académico ni plagio en asignaciones, exámenes, o trabajo de curso.
 Mantener una actitud respetuosa con sus compañeros y compañeras, docentes y la comunidad universitaria en general.

b) Durante las clases prácticas los y las estudiantes se comprometen a:


 Entregar las prácticas resueltas en tiempo y forma, según el calendario establecido en el Syllabus o según lo acordado entre los
estudiantes y el profesor.
 Garantizar el buen uso del equipo de cómputo (no acceder a sitios web no autorizados, escuchar audio o distraerse en otra actividad que
no sea la orientada por el o la docente).
 No cometer fraude académico ni plagio en asignaciones prácticas.
 Mantener una actitud respetuosa con sus compañeros y compañeras, docentes y la comunidad universitaria en general.

c) Durante las clases, el/la docente se compromete a:


 Asistir a clases y con puntualidad todos los días planificados para el curso.
 Desarrollar los temas planteado en el Syllabus.
 Retroalimentar al estudiante sobre su aprendizaje.
 Entregar calificaciones a más tardar 7 días después de realizada una evaluación.
 Proporcionar un material de lectura apropiado.
 Brindar una hora de consulta a la semana.
 Mantener una actitud respetuosa con sus estudiantes, demás docentes y la comunidad universitaria en general.

3
IV. PLANIFICACIÓN DE LAS ACTIVIDADES

Materiales (físicos, digitales,


Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

Unidad I: Estructuras de Datos

1. Revisión de las estructuras elementales Prueba diagnostica Syllabus de la asignatura


a. Arreglos unidimensionales.
b. Registros y arreglos de registros. Presentación de la asignatura. Correo electrónico institucional
2. Cadenas de caracteres
a. Operaciones con cadenas de Presentaciones: Prueba diagnóstica:
caracteres.  Revisión de las estructuras  Solución de ejercicios
 Cálculo de la longitud de una cadena. elementales. varios en C y C++
 Comparación.
 Cadenas de caracteres.
Del 17 al  Concatenación.
Guía de aprendizaje #1:
19 de  Extracción de subcadenas.
Ejercicios prácticos.  Uso de arreglos y registros
septiembre  Búsqueda.
 Inserción, eliminación, sustitución.  Uso de arreglos, registros y  Operaciones con cadenas
de 2019
 Conversión de cadenas en números y cadenas de caracteres.
viceversa.  Operaciones con cadenas de Libros de Texto Básicos:
caracteres. Joyanes, L. (2008). Fundamentos
de Programación. Algoritmos,
estructura de datos y objetos 4ta
Edición. Madrid; McGraw-Hill.
Cairo, O., Guardati, S. (2012).
Estructuras de Datos. 3ra Edición.
México; McGraw-Hill.

4
Materiales (físicos, digitales,
Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

3. Arreglos Presentaciones: Entorno Virtual de Aprendizaje


a. Arreglos unidimensionales paralelos.  Arreglos
b. Arreglos bidimensionales.  Estructuras estáticas lineales Guía de aprendizaje 2:
4. Estructuras estáticas lineales
 Arreglos.
a. Pilas
Ejercicios prácticos:  Estructuras estáticas
 Inserción
 Extracción  Arreglos unidimensionales lineales
Del 23 al
b. Colas paralelos y bidimensionales.
26 de
 Inserción  Estructuras estáticas lineales Libros de Texto Básicos:
septiembre
 Extracción (Pilas y Colas) Joyanes, L. (2008). Fundamentos
de Programación. Algoritmos,
estructura de datos y objetos 4ta
Edición. Madrid; McGraw-Hill.
Cairo, O., Guardati, S. (2012).
Estructuras de Datos. 3ra Edición.
México; McGraw-Hill.
5. Algoritmos recursivos. Presentaciones: Entorno Virtual de Aprendizaje
6. Gestión dinámica de memoria en C/C++.  Algoritmos recursivos
7. Estructuras dinámicas lineales  Estructuras dinámicas lineales Guía de aprendizaje 3:
a. Listas enlazadas.
 Recursividad
b. Listas doblemente enlazadas.
c. Listas circulares. Ejercicios prácticos:  Estructuras dinámicas
 Recursividad lineales
Del 30 de
 Estructuras dinámicas lineales
septiembre
Libros de Texto Básicos:
al 03 de
Joyanes, L. (2008). Fundamentos
octubre
de Programación. Algoritmos,
estructura de datos y objetos 4ta
Edición. Madrid; McGraw-Hill.
Cairo, O., Guardati, S. (2012).
Estructuras de Datos. 3ra Edición.
México; McGraw-Hill.

5
Materiales (físicos, digitales,
Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

8. Estructuras de datos no lineales Presentaciones: Entorno Virtual de Aprendizaje


a. Arboles binarios  Estructuras de datos no lineales
 Conversión de un árbol general en un Guía de aprendizaje 4:
árbol binario. Ejercicios Prácticos:  Arboles binarios
 Recorrido de un árbol binario.
 Arboles binarios  Grafos
 Árbol binario de búsqueda.
Del 07 al  Grafos
 Árboles balanceados.
08 de b. Grafos Libros de Texto Básicos:
octubre de  Grafos dirigidos. Joyanes, L. (2008). Fundamentos
20019  Grafos no dirigidos. de Programación. Algoritmos,
estructura de datos y objetos 4ta
Edición. Madrid; McGraw-Hill.
Cairo, O., Guardati, S. (2012).
Estructuras de Datos. 3ra Edición.
México; McGraw-Hill.

Unidad II: Estrategias Algorítmicas y Buenas

1. Diseño efectivo de algoritmos y programas 1. Presentaciones Entorno virtual de aprendizaje


a) Estilo de programación.  Diseño efectivo de algoritmos
Del 10 al
b) Diseño de programas.  Diseño de programas Cuestionario: Diseño
15 de efectivo de algoritmos
c) Etapa de codificación.  Documentación de programas
octubre d) Buenas prácticas de programación  Estrategias algorítmicas
Guía de aprendizaje 5:

 Estrategias algorítmicas
Del 17 al e) Etapa de pruebas. 2. Lecturas
f) Documentación de programas.  Escritura de algoritmos/programas Libros de Texto Básicos
22 de  Abstracción y resolución
 Documentación interna. Joyanes, L. (2008). Fundamentos
octubre de problemas
 Documentación externa de Programación. Algoritmos,

6
Materiales (físicos, digitales,
Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

2. Estrategias algorítmicas  Estilo de programación estructura de datos y objetos 4 ta


a. Fuerza bruta.  La documentación Edición. Madrid; McGraw-Hill.
b. Divide y vencerás.  Pruebas(testing)
c. Programación dinámica. Cairo, O., Guardati, S. (2012).
d. Algoritmos voraces. 3. Cuestionario Estructuras de Datos. 3ra Edición.
e. Vuelta atrás.  Diseño efectivo de México; McGraw-Hill.
Del 24 al f. Ramificación y acotamiento. algoritmos y programas
31 de g. Emparejamiento de patrones y Brassard, G., Bratley, P.
octubre algoritmos de cadenas. 4. Investigaciones Fundamentos de Algoritmia. 2da
h. Algoritmos heurísticos  Estrategias Edición.
i. Algoritmos de aproximación. algorítmicas
fundamentales

5. Prácticas
 Fuerza bruta
 Divide y vencerás

Unidad III: Análisis de la Eficiencia de Algoritmos

Del 4 al 7 1. Fundamentos de algoritmia Presentación de la unidad. Entorno Virtual de Aprendizaje


de 1.1. Problemas y ejemplares 1. Presentaciones
noviembre 1.2. Complejidad computacional de los  Problemas y ejemplares Cuestionario:
algoritmos  Complejidad computacional
Eficiencia de algoritmos y notación
1.3. Principios de invariancia  Principios de invariancia
1.4. Eficiencia de los algoritmos  Notación asintótica de algoritmos asintótica
1.4.1.¿Por qué se debe buscar?  Algoritmos de ordenación
1.4.2.Operaciones elementales  Análisis algorítmico Guía de aprendizaje 6:
2. Notación asintótica de algoritmos  Fundamentos de algoritmia
2.1.1.Notación Θ (Theta) 2. Lecturas  Notación asintótica de
2.1.2.Notación Ω (Omega)  Problemas ejemplares algoritmos
2.1.3.Notación O  ¿Por qué hay que buscar la
 Análisis algorítmico
3. Análisis algorítmico eficiencia?
3.1. Eficiencia y eficacia  Notación asintótica
3.1.1.Compromisos espacio-tiempo  Eficiencia y eficacia Libros de Texto Básicos
3.1.2.Algoritmos de tiempo polinomial y  Complejidad temporal y complejidad Joyanes, L. (2008). Fundamentos
de tiempo exponencial espacial de Programación. Algoritmos,
3.1.3.Análisis de algoritmos recursivos estructura de datos y objetos 4ta
7
Materiales (físicos, digitales,
Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

3.1.4.Análisis de las estructuras de 3. Cuestionario Edición. Madrid; McGraw-Hill.


control  Fundamentos de algoritmia Cairo, O., Guardati, S. (2012).
3.2. Análisis del “peor caso” Estructuras de Datos. 3ra Edición.
3.3. Análisis del “caso medio” 4. Prácticas
México; McGraw-Hill.
3.4. Medidas empíricas del rendimiento y  Fundamentos de algoritmia
comportamiento  Notación asintótica de algoritmos Brassard, G., Bratley, P.
 Análisis algorítmico Fundamentos de Algoritmia. 2da
Edición.

1. Presentaciones Entorno Virtual de Aprendizaje


4. Algoritmos de ordenación  Algoritmos de ordenación.
4.1. Ordenación interna  Algoritmos de búsquedas Guía de aprendizaje 7:
4.1.1.Ordenación por intercambio
Del 11 al  Algoritmos de ordenación
4.1.2.Ordenación por inserción
14 de 4.1.3.Ordenación por selección 2. Prácticas  Algoritmos de busquedas
noviembre 4.1.4.Ordenación por Shell  Algoritmos de ordenación
4.1.5.Ordenación rápida  Algoritmos de búsqueda Libros de Texto Básicos
4.1.6.Ordenación por montículo Joyanes, L. (2008). Fundamentos
4.1.7.Ordenación por intercalación de Programación. Algoritmos,
4.1.8.Ordenación por fusión estructura de datos y objetos 4ta
Del 18 al 4.2. Ordenación externa Edición. Madrid; McGraw-Hill.
21 de 4.2.1.Partición de archivos Cairo, O., Guardati, S. (2012).
noviembre 4.2.1.1. Por clasificación Estructuras de Datos. 3ra Edición.
interna México; McGraw-Hill.
4.2.1.2. Por contenido Brassard, G., Bratley, P.
4.2.1.3. Por sustitución
4.2.1.4. Por secuencias Fundamentos de Algoritmia. 2da
4.3. Ordenación por mezcla directa Edición.
4.4. Ordenación por mezcla natural
4.5. Ordenación por mezcla equilibrada
4.6. Ordenación por intercalación
5. Algoritmos de búsqueda
5.1. Búsqueda secuencial
5.2. Búsqueda binaria
5.3. Búsqueda por transformación de
claves
8
Materiales (físicos, digitales,
Fecha Temas, subtemas o ejes problematizadores. Actividades de aprendizaje audiovisuales) y recursos, guías
de aprendizaje

25/11/2018 Entregas y defensa de proyectos.

9
V. EVALUACIÓN DEL APRENDIZAJE

Actividades Evaluativas Tipos de Evaluación Puntaje Fecha

Evaluación diagnóstica Diagnóstica - Sesión 1

Actividades de evaluación formativa Formativa - Todo el cuatrimestre

Participación / Asistencia Sumativa 5 Todo el cuatrimestre.

Solución de ejercicios de: Arreglos, Cadenas de carácter,


Sumativa 10 Semana 2
Pilas, Colas

Investigación y Ponencia de:


 Algoritmos recursivos.
 Gestión dinámica de memoria en C/C++. Sumativa 10 Semana 3
 Estructuras dinámicas lineales Listas enlazadas.
Listas doblemente enlazadas. Listas circulares
Solución de ejercicios de: Arboles y Grafos Sumativa 10 Semana 4

Investigación y exposición de: Estrategias algorítmicas Sumativa 10 Semana - 6

Cuestionario:
 Diseño efectivo de algoritmos y programas Sumativa 10 Semana 7 – 8
 Fundamentos de algoritmia

Guía práctica Análisis de Eficiencia de Algoritmos,


Sumativa 10 Semana 8
Algoritmos de Ordenación

Guía práctica de búsqueda y ordenación Sumativa 10 Semana 9 - 10

Proyecto final. Sumativa 25 Semana 11

Total, de calificación: 0

10
VI. BIBLIOGRAFÍA

1. Bibliografía Obligatoria

a. Joyanes, L. (2008). Fundamentos de Programación. Algoritmos, estructura de datos y objetos 4 ta Edición. Madrid; McGraw-Hill.

b. Cairo, O., Guardati, S. (2012). Estructuras de Datos. 3 ra Edición. México; McGraw-Hill.

c. Brassard, G., Bratley, P. Fundamentos de Algoritmia. 2da Edición.

2. Bibliografía Complementaria

a. Aho, A., Hopcroft, J & Ullman, J. (1988). Estructura de Datos y algoritmos. México; PUBLICACION

b. Baase. (2002). Algoritmos Computacionales. Introducción al análisis y diseño. México; Pearson Educación.

c. Corona Nakamura, M. A. & Ancona Valdez, M. d. (2011). Diseño de Algoritmos y su codificación en Lenguaje C. México;
McGraw-Hill/Interamericana Editores, S.A

11

También podría gustarte