Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 2013) 2020-1

Segundo Semestre, Estructuras de Datos

Grupo 7034, 40 lugares. 25 alumnos.
Profesor Carlos Zerón Martínez ma ju 16 a 17:30 P210
Ayudante Edwin Antonio Galván Gámez lu mi 15 a 16 P210
Ayud. Lab. Pedro Juan Salvador Sánchez Pérez ma ju 14 a 16 Taller de Ingeniería de Software
 

La presentación del curso se llevará a cabo el Lunes 5 de Agosto a las 15 hrs en el salón asignado. Se aceptan alumnos en ordinario y en extraordinario largo.

El sitio de apoyo al curso puede ser accedido desde aquí enviando a los ayudantes un correo con asunto EDD-20201 y en el cuerpo poner el nombre completo y número de cuenta.

Objetivos Generales

Este curso tiene como propósito fundamental proporcionar al alumno las técnicas de organización y manejo de datos más usuales y los criterios que le permitan decidir cuáles de ellas resultan más apropiadas para la resolución de un problema determinado; entre los criterios se hace énfasis en la eficiencia de las soluciones diseñadas, dada su importancia en la mayoría de sistemas de software, como son la Web, sistemas operativos, bases de datos, compiladores y sistemas de simulación científica.

Se presentan diversas estructuras de datos, incluyendo para cada una de ellas su definición, forma(s) de implementación, eficiencia de las operaciones soportadas por la estructura de datos, así como aplicaciones a problemas concretos. Para la implementación de las distintas estructuras de datos que se revisan en el curso se hace uso del lenguaje de programación Java.

Contenido del curso

1. Fundamentos
  • 1.1 Diseño orientado a objetos: Repaso y conceptos complementarios.
  • 1.2 Diseño orientado a objetos: Metas y principios
  • 1.3 Tipo de dato abstracto y estructura de datos
  • 1.4 Análisis de algoritmos: eficiencia teórica y experimental.
2. Recursión
  • 2.1 Algoritmos Recursivos
  • 2.2 Eficiencia de la recursión
3. Listas
  • 3.1 Implementaciones basadas en arreglos
  • 3.2 Implementaciones basadas en referencias
    • 3.2.1 Listas ligadas
    • 3.2.2 Listas doblemente ligadas
4. Pilas y Colas
  • 4.1 Implementaciones basadas en arreglos
  • 4.2 Implementaciones basada en listas ligadas
5. Arboles
  • 5.1 Arboles generales: definiciones y algoritmos Básicos
  • 5.2 Arboles binarios. Propiedades e implementación
  • 5.3 Arboles binarios de búsqueda. Propiedades e implementación
  • 5.4 Arboles binarios completos. Propiedades. Heaps
6. Colas de Prioridades
  • 6.1 Implementaciones basadas en listas
  • 6.2 Implementación basada en un heap
7. Mapas y diccionarios
  • 7.1 Implementación con tablas de dispersión
  • 7.2 Mapas y diccionarios ordenados
8. Algoritmos de ordenamiento
  • 8.1 Ordenamiento por selección
  • 8.2 Ordenamiento por inserción
  • 8.3 Ordenamiento por mezcla
  • 8.4 Ordenamiento rápido
9. Gráficas
  • 9.1 Gráficas dirigidas y no dirigidas. Repaso y conceptos complementarios.
  • 9.2 Implementaciones basadas en matriz de adyacencias
  • 9.3 Implementaciones basadas en lista de adyacencias
  • 9.4 Recorridos fundamentales y otros algoritmos en gráficas

Evaluación

- Participaciones 25%
4 Exámenes parciales 30%
6 ó 7 Prácticas de programación 25%
1 Proyecto final de programación 20%

Lineamientos sobre la evaluación

  • 1. No existe examen final. Sólo se puede presentar reposición de un examen y de una práctica.
  • 2. El rubro de participaciones comprende tareas cortas de caracter obligatorio que se entregan individualmente dentro del horario dispuesto en el aula para la fecha estipulada, ya sea por escrito o por correo dependiendo de los lineamientos establecidos, así como de aportaciones orales de caracter opcional durante las clases, ayudantías o sesiones de laboratorio, las cuales tendrán puntuación adicional sobre el promedio de las tareas cortas.
  • 3. Los primeros tres exámenes tendrán duración de una hora, mientras que el cuarto será tarea - examen. Todos son individuales y tienen fecha de presentación estricta, salvo por causas de fuerza mayor que sean comprobables documentalmente.
  • 4. Las prácticas se entregan en forma individual via correo electrónico con apego a los lineamientos establecidos en el laboratorio y se registrará una penalización de dos puntos por cada día natural de retraso con respecto a la fecha de entrega original. A partir del quinto día de retraso en la entrega de una práctica, se le asignará cero de calificación. La entrega podrá hacerse sin penalización si existen causas de fuerza mayor que sean comprobables documentalmente para los días en que se presenten.
  • 5. El proyecto final puede ser entregado por equipos de dos personas o en forma individual via correo electrónico y tiene fecha de entrega estricta, salvo por causas de fuerza mayor que sean comprobables documentalmente.
  • 6. Es necesario presentar los tres exámenes y el proyecto final para tener derecho a calificación.
  • 7. Una persona obtendrá NP como calificación si no entrega nada, incumple el punto anterior, o bien, si su promedio final es mayor o igual a 5 y menor estricto que 6.

Referencias

[1] López G., A.
Estructuras de Datos con Java: Un Enfoque Práctico.
Las Prensas de Ciencias, 2011.

[2] Goodrich, M.T., Tamassia, R. y Goldwasser, M.H.
Data Structures and Algorithms in Java.
John Wiley and Sons, Inc., sexta edición, 2014.

[3] Sedgewick, R. y Wayne, K.
Algorithms.
Addison-Wesley, cuarta edición, 2011.

[4] Carrano, F. M. y Prichard, J.J.
Data Abstraction and Problem Solving with Java.
Addison-Wesley, segunda edición, 2005.

[5] Weiss, M. A.
Data Structures and Algorithm Analysis in Java.
Addison-Wesley, tercera edición, 2012.

[6] Riley, D.
The Object of Data Abstraction and Structures using Java.
Addison-Wesley, 2002.

[7] Shaffer, C.A.
Data Structures and Algorithm Analysis.
Prentice Hall, edición 3.2, 2013

[8] Eck, D.J.
Introduction to Programming Using Java.
Disponible en http://math.hws.edu/javanotes/, versión 8.1, 2019.

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.