Encabezado Facultad de Ciencias
Presentación

Ciencias de la Computación (plan 2013) 2016-2

Segundo Semestre, Estructuras de Datos

Grupo 7026, 40 lugares. 38 alumnos.
Profesor Carlos Zerón Martínez ma ju 16 a 17:30 P207
Ayudante Claudia Paola Medina Santamaría lu mi 15 a 16 P207
Ayud. Lab. Manuel Ignacio Castillo López ma ju 10 a 12 Laboratorio de Ciencias de la Computación 3
 

Avisos importantes:

La presentación del curso se llevará a cabo el Martes 2 de Febrero a las 16:00 hrs en el salón de clase

El sitio de apoyo al curso podrá ser accedido por los alumnos inscritos mediante el siguiente enlace:

https://sites.google.com/a/ciencias.unam.mx/edatos-20162/?pli=1

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.

Se presentan diversas estructuras de datos, incluyendo para cada una de ellas su definición, forma de implementación, eficiencia de las operaciones que acceden a 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 Listas Ligadas
  • 3.3 Listas Doblemente Ligadas
4. Pilas y Colas
  • 4.1 Implementación Basada en un Arreglo
  • 4.2 Implementación Basada en una Lista Ligada
5. Arboles
  • 5.1 Arboles Generales: Definiciones y Algoritmos Básicos
  • 5.2 Arboles Binarios. Implementación
  • 5.3 Arboles Binarios Completos. Heaps
  • 5.4 Arboles Binarios de Búsqueda. Implementación
6. Colas de Prioridades
  • 6.1 Implementación Basada en una Lista
  • 6.2 Implementación Basada en un Heap
7. Mapas y Diccionarios
  • 7.1 Funciones y Tablas de Dispersión
  • 7.2 Estrategias para Manejo de Colisiones
  • 7.3 Datos 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

8 Tareas escritas 30%
4 Exámenes parciales 30%
8 Prácticas de programación 30%
1 Proyecto final de programación 10%
Asistencias +/- 5%

Normas Adicionales

  • 1. No existe examen final. Sólo se puede presentar la reposición de un examen parcial y una tarea.

  • 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 (ayudantía), salvo por causas de fuerza mayor que sean comprobables documentalmente.

  • 3. Las prácticas se entregan en forma individual via correo electrónico y se aceptan entregas retrasadas con una penalización de dos puntos por cada dia natural de retraso con respecto a la fecha de entrega original. A partir del quinto dia de retraso en la entrega de una práctica, se considerará como no entregada.

  • 4. 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.

  • 5. Es necesario presentar los tres exámenes y el proyecto final para poder aprobar el curso.

  • 6. Ocasionalmente se pasará lista en sesiones de clase, ayudantía o de laboratorio. Dependiendo de cómo sea el número de asistencias registradas con respecto al de inasistencias se asignará a cada alumno(a): un incremento de puntuación si el primer número es superior al segundo, un decremento si el primer número es inferior y cero si ambos números son iguales. En particular, si un(a) alumno(a) tiene todas las asistencias, obtendrá medio punto adicional sobre la calificación nal obtenida y en caso de que no tenga ninguna asistencia registrada, perderá medio punto a partir de dicha calificación.

  • 7. Cada alumno(a) debe entregar la forma de evaluación y estas normas adicionales mencionadas firmadas de conformidad a más tardar dos semanas después del dia que comienza el semestre, para tener derecho a calificación.

  • 8. No se puede renunciar a la calificación final obtenida. 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, 1999.

[4] Weiss, M. A.
Data Structures and Problem Solving using Java.
Addison-Wesley, 1998.

[5] Budd, T.
Classic Data Structures in Java. Addison-Wesley,
2000.

[6] Goodrich, M.T. y Tamassia, R.
Data Structures and Algorithms in Java. John Wiley
and Sons, Inc., 2004.

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

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

[9] Cormen, T.H., Leiserson, C.E., Rivest, R.R. y Stein,
C.
Introduction to Algorithms. Tercera edición. MIT
Press, 2009.

[10] Goldman, S. y Goldman, K.J.
A Practical Guide to Data Structures and Algorithms
Using Java. Chapman & Hall - CRC Press, 2007.

[11] 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.