Encabezado Facultad de Ciencias
Presentación

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

Segundo Semestre, Estructuras de Datos

Grupo 7032, 40 lugares. 21 alumnos.
Profesor Carlos Zerón Martínez ma ju 16 a 17:30 P207
Ayudante Edwin Antonio Galván Gámez lu mi 15 a 16 P207
Ayud. Lab. Norma Verónica Trinidad Hernández ma ju 14 a 16 Laboratorio de Ciencias de la Computación 3
 

La presentación se llevará a cabo el Lunes 6 de Agosto en el salón asignado. se aceptan estudiantes de extraordinario largo.

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 que aparece 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.

En este curso 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. Conceptos Básicos
  • 1.1 Diseño Orientado a Objetos: Metas y Principios
  • 1.2 Tipo de Dato Abstracto y Estructura de Datos
  • 1.3 Introducción al Análisis de Algoritmos
2. Recursión
  • 2.1 Algoritmos Recursivos
  • 2.2 Relaciones de Recurrencia
3. Listas
  • 3.1 Implementación basada en un Arreglo
  • 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.
  • 5.3 Arboles Binarios Completos. Heaps
  • 5.4 Arboles Binarios de Búsqueda.
6. Colas de Prioridades
  • 6.1 Implementación basada en una Lista
  • 6.2 Implementación basada en un Heap
7. Mapas
  • 7.1 Funciones y Tablas de Dispersión
  • 7.2 Estrategias para Manejo de Colisiones
  • 7.3 Mapas 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 Definiciones Básicas
  • 9.2 Implementación Basada en Matriz de Adyacencias
  • 9.3 Implementación Basada en Lista de Adyacencias
  • 9.4 Recorridos Fundamentales y Ordenamiento Topológico en Gráficas

Evaluación

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

Lineamientos sobre la evaluación

  • 1. No existe examen final. Sólo se pueden hacer dos reposiciones: ya sea de tarea, examen o práctica.
  • 2. Las tareas pueden entregarse en equipos de dos personas o en forma individual por medio impreso el dia especificado dentro de la hora de clase o ayudantía en el salón de clases, salvo por causas de fuerza mayor que sean comprobables documentalmente. No se aceptan tareas por correo.
  • 3. Las prácticas se entregan en forma individual via correo electrónico con los lineamientos establecidos en el laboratorio.
  • 4. Las tareas y prácticas se pueden entregar después del día estipulado para la entrega, pero 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 o tarea, 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 proceda.
  • 5. Los primeros tres exámenes tendrán duración de una hora, mientras que el cuarto será tarea - examen. Todos tienen fecha de presentación estricta, salvo por causas de fuerza mayor que sean comprobables documentalmente.
  • 6. 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.
  • 7. Es necesario presentar los tres exámenes parciales y el proyecto final para tener derecho a calificación.
  • 8. Las participaciones se irán registrando en cualquier sesión, ya sea clase, ayudantía o de laboratorio. Se distinguirán en participaciones sencillas y complejas; las sencillas cuentan por una unidad, las complejas por tres, correspondientes a resolver ejercicios completos. El 20% correspondiente al rubro de participaciones se obtiene con el máximo número de participaciones que se tengan registradas en total y el porcentaje correspondiente se calcula con una regla de tres.
  • 9. Cada alumno(a) debe entregar por escrito o impresas directamente al profesor tanto la forma de evaluación como los lineamientos sobre ella con nombre y firma de conformidad a más tardar dos semanas después del dia que comienza el semestre, para tener derecho a calificación, de lo contrario se asignará NP.
  • 10. No se puede renunciar a la calificación final obtenida, a menos que su promedio final sea mayor o igual a 5 y menor estricto que 6. Una persona obtendrá NP como calificación si no entrega nada.

Referencias

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

[2] Carrano, F. M. y Prichard, J.J.
Data Abstraction and Problem Solving with Java. Se-
gunda Edición. Addison-Wesley, 2005.

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

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

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

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

[7] Eck, D.J.
Introduction to Programming Using Java.
CreateSpace, Paramount, CA, Version 7.0, 2014.

 


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.