Estructuras de Datos y Algoritmos (EDA)
Download
Report
Transcript Estructuras de Datos y Algoritmos (EDA)
Universidad Autónoma de Madrid
Escuela Politécnica Superior
Departamento de Ingeniería Informática
ESTRUCTURA DE DATOS Y ALGORITMOS
INGENIERÍA DE
TELECOMUNICACIÓN
CURSO 2006/2007
PROFESORADO Y TUTORÍAS
PROFESORADO
Silvia Teresita Acuña Castillo
Departamento de Ingeniería Informática
Escuela Politécnica Superior-UAM
Despacho B-317
E-mail: [email protected]
“En toda persona existe el deseo natural de aprender.”
“El comienzo es más que la mitad del todo.”
Aristóteles
TE: +34-91 4972275
Miguel Ángel García García
Despacho B-344
E-mail: [email protected]
TE: +34-91 4972215
TUTORÍAS
Silvia Teresita: Martes de 11:00 a 13:00 horas y Jueves de 18:00 a 20:00 horas.
O bien solicitud por e-mail o personalmente (mínimo un día antes)
Miguel Ángel: Solicitud por e-mail
ORGANIZACIÓN
TEORÍA
LUNES DE 16:00-17:00 HORAS, MARTES DE 17:00-18:00 HORAS Y
MIÉRCOLES DE 18:00-19:00 HORAS – AULA 8
PRÁCTICAS
- 2 HORAS EN LA SEMANA
3 GRUPOS:
TURNO A - MIÉRCOLES DE 14:00-16:00 HORAS
TURNO B - JUEVES DE 14:00-16:00 HORAS
TURNO C - JUEVES DE 11:00-13:00 HORAS
- DÍAS:
•
FEBRERO ( 21, 22 )
•
MARZO
( 7, 8 ) ( 21, 22 )
•
ABRIL
( 11, 12 ) ( 25, 26 )
•
MAYO
( 9, 10 ) ( 16, 17 )
- LUGAR:
•
LABORATORIO 14
ESTRUCTURA DE DATOS Y ALGORITMOS (EDA)
OBJETIVOS GENERALES
Que los estudiantes logren conocer y usar
eficientemente las distintas estructuras de datos
para desarrollar algoritmos más sencillos y óptimos
y que ante distintas situaciones problemáticas
decidan con criterio apropiado las estructuras de
datos más convenientes y apliquen las técnicas de
programación más adecuadas.
OBJETIVOS DE EDA DENTRO DEL EUROPEAN CREDIT
TRANSFER AND ACCUMULATION SYSTEM (ECTS)
APRENDER PARA REPRODUCIR
HERRAMIENTA DE PRODUCTIVIDAD
PERSONAL
APRENDER A APRENDER
HERRAMIENTA INTELECTUAL
APRENDER PARA REFLEXIONAR
ESTRUCTURA DE DATOS Y ALGORITMOS
TEMAS
O
B
J
E
T
I
V
O
S
Diseñar, ejecutar e interpretar
programas en el lenguaje de
programación C procedimental
Conocer los tipos abstractos de
datos y las distintas estructuras
de datos y seleccionar las más
adecuadas para la resolución de
problemas
• Tema 1: Repaso de
Programación en C
• Tema 2: Estructuras
Avanzadas de
Datos
Identificar las distintas estructuras
de tipo recursivas y utilizar el
concepto de recursión
Determinar la eficiencia de
algoritmos y usar en forma
eficiente, los distintos métodos de
ordenación y búsqueda
• Tema 3: Algoritmos
TEMARIO
TEMA 1: REPASO DE PROGRAMACIÓN EN C
1.1 Estructuras de programación.
1.2 Uso avanzado de punteros.
1.3 Manejo dinámico de memoria.
1.4 Estructuración de programas y programación modular.
TEMA 2: ESTRUCTURAS AVANZADAS DE DATOS
2.1 Tipos abstractos de datos.
2.2 Pilas, colas, listas.
2.3 Árboles binarios. Árboles binarios de búsqueda.
2.4 Grafos. Algoritmos sobre grafos. Algoritmos del camino más corto.
Algoritmo de Dijkstra.
2.5 Problemas de aplicación.
TEMA 3: ALGORITMOS
3.1 Herramientas para el análisis de algoritmos.
3.2 Algoritmos básicos de ordenación: burbuja e inserción.
3.3 Algoritmos avanzados de ordenación: mergesort y heapsort.
3.4 Algoritmos básicos de búsqueda: búsqueda lineal y búsqueda binaria.
3.5 Hashing.
3.6 Problemas de aplicación.
Práctica 1
PRÁCTICAS
- Tema: Estructuras, Punteros y Memoria Dinámica
- Entrega de Prácticas: (Turno A: 14 de Marzo, Turno B y Turno C: 15 de Marzo)
- Nº de Semanas: 2 semanas
Práctica 2
- Tema: Pilas
- Entrega de Prácticas: (Turno A: 18 de Abril, Turno B y Turno C: 19 de Abril)
- Nº de Semanas: 2 semanas
Práctica 3
- Control Intermedio:
Jueves 29 o Viernes 30 de Marzo de 2007
- Tema: Árboles Binarios
- Entrega de Prácticas: (Turno A: 16 de Mayo, Turno B y Turno C: 17 de Mayo)
- Nº de Semanas: 2 semanas
Práctica 4
- Tema: Algoritmos de Ordenación
- Entrega de Prácticas: (Turno A: 23 de Mayo, Turno B y Turno C: 24 de Mayo)
- Nº de Semanas: 1 semana
BIBLIOGRAFÍA
BIBLIOGRAFÍA BÁSICA
1. M. A. WEISS, Data Structures an Algorithm Analysis in C. 2nd ed. Addison Wesley.
1997.
2. L. JOYANES AGUILAR & I. ZAHONERO MARTÍNEZ, Algoritmos y Estructuras de
Datos. Una Perspectiva en C. McGraw-Hill. 2004.
3. N. WIRTH, Algoritmos Mas Estructuras de Datos Igual a Programas. Ediciones del
Castillo. 1986.
4. B. W. KERNIGHAN & D. RITCHIE, The C Programming Language. 2nd ed. Prentice
Hall. 1988.
5. H. SCHILDT, C: Guía de Autoenseñanza. Osborne/McGraw-Hill. 2001.
BIBLIOGRAFÍA COMPLEMENTARIA
1. M. A. WEISS, Estructura de Datos y Algoritmos. Addison Wesley. 1995.
2. A. V. AHO, J. E. HOPCROFT & J. D. ULLMAN, Estructuras de Datos y Algoritmos.
Addison-Wesley. 1998.
3. L. JOYANES AGUILAR & I. ZAHONERO MARTÍNEZ, Estructura de Datos: Algoritmos,
Abstracción y Objetos. McGraw-Hill. 1998.
4. H. M. DEITEL & P. J. DEITEL, Como Programar en C/C++. 2ª ed. Prentice Hall
Hispanoamericana. 1995.
5. R. PRESSMAN, Ingeniería del Software: Un Enfoque Práctico. 4ª ed. McGraw-Hill.
1999.
EVALUACIÓN TRADICIONAL
• Nota Final EDA = 70% FC + 30% PR
• Examen único a finales del cuatrimestre (EFT)
– 70% de la Nota Final de Teoría (FC)
– FC = Max( Nota del EFT, 65% Nota del EFT + 35% Nota del Control Intermedio )
• Cuatro prácticas y examen final de prácticas (EFP)
– 30% de la Nota Final de Prácticas (PR)
– PR = 60% Nota del EFP + 40% Nota de Prácticas
– Nota de Prácticas = ( 15% x P1 + 25% x P2 + 30% x P3 + 30% x P4 )
– Valor mínimo exigido de Nota del EFP, P1, P2, P3 y P4 para este cálculo: 5
• Para promediar es necesario sacar, al menos, un 5 en ambas
partes de forma independiente
• La nota de teoría o de prácticas se guardará hasta Septiembre
EVALUACIÓN DENTRO DE ECTS
• Nota Final EDA = 70% FC + 30% PR
Asimilación de los Contenidos
EDA
Participación
• Nota Final de Teoría (FC)
FC = ( 90% x NASIC + 10% x NPART )
NASIC = Nota de Asimilación de los Contenidos =
( 30% x Nota Media de Trabajos Grupales y Controles
Individuales ) + ( 60% x Max( Nota del Examen Final de Teoría, 65% Nota
del Examen Final de Teoría + 35% Nota del Control Intermedio ) )
Valor mínimo exigido de Nota del Examen Final de Teoría para este cálculo: 4,6
NPART = Nota de Asistencia, Participación e
Iniciativa, Organización del Trabajo y Presentaciones
• Nota Final de Prácticas (PR)
PR = ( 15% x P1 + 25% x P2 + 30% x P3 + 30% x P4 )
Valor mínimo exigido de P1, P2, P3, y P4 para este cálculo: 5
PÁGINA WEB DE LA ASIGNATURA
• Programación
• Documentación
• Prácticas
• Notas
• Enlaces de Interés
• Avisos / Anuncios
• Etc.
http://www.ii.uam.es/~sacuna/eda/
SELECCIÓN DE TURNOS DE PRÁCTICAS
Lunes
Martes
Miércoles
Jueves
Viernes
9-10
-
-
-
-
OSI-b
10-11
-
-
-
-
OSI-b
11-12
(*)OSI
(*)OSI
(*)OSI
EDA-c
OSI-a
SED-b
ACE-c
12-13
-
-
-
EDA-c
OSI-a
SED-b
ACE-c
13-14
-
-
-
-
-
14-15
TCO-a
ACE-a
TCO-b
ACE-b
EDA-a
SED-a
EDA-b
TCO-c
TCO
15-16
TCO-a
ACE-a
TCO-b
ACE-b
EDA-a
SED-a
EDA-b
TCO-c
TCO
16-17
EDA
SED
TCO
SED
ACE
17-18
CEM
EDA
TCO
CEM
-
18-19
CEM
ACE
EDA
CEM
-
CAPACIDADES A MEJORAR EN EDA
HABILIDADES
INTRAPERSONALES
• Análisis
• Decisión
• Independencia
• Innovación/creatividad
• Juicio
• Tenacidad
• Auto-organización
• Comunicación escrita
• Comunicación oral
HABILIDADES
INTERPERSONALES
• Empatía
• Sociabilidad
• Trabajo en equipo/
cooperación
CATEGORÍAS
DE
CAPACIDADES
Como afirmó alguien en mi presencia:
“La capacidad es como una flor. Se
abre y crece a medida que trabajas.”
Martin Covington
ESTRUCTURA DE LA ASIGNATURA EDA
OBJETIVOS
CAPACIDADES
TEMAS
Espacio Orientado a la Implementación
Estructurar el software y usar la abstracción como una
de las principales herramientas conceptuales para
conseguirlo.
Diseñar, ejecutar e interpretar programas en el
lenguaje de programación procedimental C.
Usar la modularización y tipo abstracto de datos como
herramientas concretas para estructurar los
programas.
Espacio Orientado al Diseño
Comprender varios tipos abstractos de datos
“clásicos” (pilas, colas, etc.), sus propiedades y sus
distintas implementaciones.
Seleccionar las estructuras de datos más adecuadas
para la resolución de problemas.
Identificar las distintas estructuras de tipo recursivas y
utilizar el concepto de recursión.
Espacio Orientado al Análisis
Analizar la eficiencia temporal y espacial de
los algoritmos
Comprender el concepto de orden de los
algoritmos
Usar en forma eficiente los distintos métodos
de ordenación y búsqueda
• Análisis
• Innovación/creatividad
• Comunicación escrita
• Trabajo en equipo/
cooperación
• Decisión
• Independencia
• Juicio
• Tenacidad
• Auto-organización
• Comunicación escrita
• Empatía
• Trabajo en equipo/
cooperación
• Análisis
•Juicio
• Tenacidad
•Comunicación oral
• Sociabilidad
• Trabajo en quipo/
•cooperación
TEMA 1: PROGRAMACIÓN
1.1 Estructuras de programación en C.
1.2 Uso avanzado de punteros en C.
1.3 Manejo dinámico de memoria en C.
1.4 Estructuración de programas y
programación modular.
TEMA 2: ESTRUCTURAS DE DATOS
2.1 Tipos abstractos de datos.
2.2 Pilas, colas, listas.
2.3 Árboles binarios.
Árboles binarios de búsqueda.
2.4 Grafos. Algoritmos sobre grafos.
Algoritmos del camino más corto.
Algoritmo de Dijkstra.
TEMA 3: Algoritmos
3.1 Herramientas para el análisis de
algoritmos.
3.2 Algoritmos básicos de ordenación:
burbuja e inserción.
3.3 Algoritmos avanzados de ordenación:
mergesort y heapsort.
3.4 Algoritmos básicos de búsqueda:
búsqueda lineal y búsqueda binaria.
3.5 Hashing.
AGENDA DE TÉCNICAS PARTICIPATIVAS
DÍA(S)
ACTIVIDAD(ES)
Miércoles 14 de Febrero
• RESOLUCIÓN DE UN EJERCICIO DE PROGRAMACIÓN Y
ESTABLECIMIENTO EN FORMA PARTICIPATIVA DE UN PROCEDIMIENTO
GENERAL DE RESOLUCIÓN DE PROBLEMAS QUE BUSCAN MÉTODOS
Miércoles 21 de Febrero
• RESOLUCIÓN DE UN SISTEMA CONCEPTUAL QUE ESTABLEZCA LA
ESTRUCTURA MODULAR DEL MISMO
Miércoles 28 de Febrero
• ¿QUÉ ES ESA COSA LLAMADA TIPO ABSTRACTO DE DATOS?
Lunes 19 de Marzo
Martes 20 de Marzo
Miércoles 21 de Marzo
Lunes 26 de Marzo
Martes 27 de Marzo
• REUNIÓN DE EXPERTOS: ESTUDIO POR PARTE DE LOS EXPERTOS DEL
TEMA ASIGNADO (PILA, COLA, LISTA, ÁRBOLES BINARIOS)
• CONTROL INDIVIDUAL SOBRE EL TEMA QUE LE CORRESPONDA A
CADA EXPERTO EN LOS ÚLTIMOS 20 MINUTOS DE LA SESIÓN DEL 27
DE MARZO
Martes 10 de Abril
Miércoles 11 de Abril
Lunes 16 de Abril
Martes 17 de Abril
Miércoles 18 de Abril
• REUNIÓN DE APRENDIZAJE COOPERATIVO: EN SUS GRUPOS
ORIGINALES LOS DISTINTOS EXPERTOS INTERCAMBIAN
CONOCIMIENTOS PARA APRENDER TODOS LOS INTEGRANTES TODOS
LOS TEMAS
• REALIZACIÓN DEL TALLER I
Lunes 7 de Mayo
Martes 8 de Mayo
Martes 22 de Mayo
Martes 29 de Mayo
Miércoles 30 de Mayo
• REALIZACIÓN DEL TALLER II
• EXPOSICIONES TALLERES II (MODALIDAD POSTER)
DEDICACIÓN ESTIMADA SEMANAL EN EDA
Dedicación semanal
12
10
9
10
8
Horas
8
6
5
9
10
10
10
9
7
8
8
6
5
6
4
2
0
1
2
3
4
5
6
7
8
Semanas
9
10
11
12
13
14
15