estructura de datos y algoritmos

17
ESTRUCTURA DE DATOS Y ALGORITMOS INGENIERÍA DE TELECOMUNICACIÓN CURSO 2006/2007 Universidad Autónoma de Madrid Escuela Politécnica Superior Departamento de Ingeniería Informática

Upload: caleb-kim

Post on 03-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

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. “En toda persona existe el deseo natural de aprender.” “El comienzo es más que la mitad del todo.” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ESTRUCTURA DE DATOS Y ALGORITMOS

ESTRUCTURA DE DATOS Y ALGORITMOS

INGENIERÍA DE

TELECOMUNICACIÓN

CURSO 2006/2007

Universidad Autónoma de MadridEscuela Politécnica Superior

Departamento de Ingeniería Informática

Page 2: ESTRUCTURA DE DATOS Y ALGORITMOS

PROFESORADO Y TUTORÍASPROFESORADO Silvia Teresita Acuña Castillo

Departamento de Ingeniería Informática

Escuela Politécnica Superior-UAM

Despacho B-317

E-mail: [email protected]

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

“En toda persona existe el deseo natural de aprender.”“El comienzo es más que la mitad del todo.”

Aristóteles

Page 3: ESTRUCTURA DE DATOS Y ALGORITMOS

ORGANIZACIÓNTEORÍ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

Page 4: ESTRUCTURA DE DATOS Y ALGORITMOS

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.

ESTRUCTURA DE DATOS Y ALGORITMOS (EDA)

Page 5: ESTRUCTURA DE DATOS Y ALGORITMOS

OBJETIVOS DE EDA DENTRO DEL EUROPEAN CREDIT TRANSFER AND ACCUMULATION SYSTEM (ECTS)

APRENDER A APRENDER

APRENDER PARA REPRODUCIR

HERRAMIENTA DE PRODUCTIVIDAD PERSONAL

HERRAMIENTA INTELECTUAL

APRENDER PARA REFLEXIONAR

Page 6: ESTRUCTURA DE DATOS Y ALGORITMOS

OBJETIVOS

Conocer los tipos abstractos de datos y las distintas estructuras de datos y seleccionar las más adecuadas para la resolución de problemas

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

TEMAS

• Tema 1: Repaso de Programación en C

Diseñar, ejecutar e interpretar programas en el lenguaje de programación C procedimental

ESTRUCTURA DE DATOS Y ALGORITMOS

• Tema 2: Estructuras Avanzadas de

Datos

• Tema 3: Algoritmos

Page 7: ESTRUCTURA DE DATOS Y ALGORITMOS

TEMARIOTEMA 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: ALGORITMOS3.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.

Page 8: ESTRUCTURA DE DATOS Y ALGORITMOS

PRÁCTICAS Práctica 1

- 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

- 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

- Control Intermedio:

Jueves 29 o Viernes 30 de Marzo de 2007

Page 9: ESTRUCTURA DE DATOS Y ALGORITMOS

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.

Page 10: ESTRUCTURA DE DATOS Y ALGORITMOS

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

Page 11: ESTRUCTURA DE DATOS Y ALGORITMOS

EVALUACIÓN DENTRO DE ECTS • Nota Final EDA = 70% FC + 30% PR

Asimilación de los Contenidos

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

EDA

Page 12: ESTRUCTURA DE DATOS Y ALGORITMOS

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/

Page 13: ESTRUCTURA DE DATOS Y ALGORITMOS

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-cOSI-a

SED-bACE-c

12-13 - - - EDA-cOSI-a

SED-bACE-c

13-14 - - - - -

14-15 TCO-aACE-a

TCO-bACE-b

EDA-aSED-a

EDA-bTCO-c

TCO

15-16 TCO-aACE-a

TCO-bACE-b

EDA-aSED-a

EDA-bTCO-c

TCO

16-17 EDA SED TCO SED ACE

17-18 CEM EDA TCO CEM -

18-19 CEM ACE EDA CEM -

Page 14: ESTRUCTURA DE DATOS Y ALGORITMOS

CAPACIDADES A MEJORAR EN EDA

HABILIDADES INTERPERSONALES

• Empatía• Sociabilidad

• Trabajo en equipo/ cooperación

HABILIDADES INTRAPERSONALES

• Análisis• Decisión

• Independencia• Innovación/creatividad

• Juicio• Tenacidad

• Auto-organización• Comunicación escrita

• Comunicación oral

Como afirmó alguien en mi presencia: “La capacidad es como una flor. Se abre y crece a medida que trabajas.”

Martin Covington

CATEGORÍASDE

CAPACIDADES

Page 15: ESTRUCTURA DE DATOS Y ALGORITMOS

ESTRUCTURA DE LA ASIGNATURA EDA

Espacio Orientado a la Implementación

OBJETIVOS

TEMA 1: PROGRAMACIÓN1.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.

• Análisis• Innovación/creatividad• Comunicación escrita

• Trabajo en equipo/cooperación

CAPACIDADES TEMAS

TEMA 2: ESTRUCTURAS DE DATOS2.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.

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.

TEMA 3: Algoritmos3.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.

• Decisión• Independencia

• Juicio• Tenacidad

• Auto-organización• Comunicación escrita

• Empatía• Trabajo en equipo/

cooperación

Espacio Orientado al Diseño

Espacio Orientado al Análisis

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.

Analizar la eficiencia temporal y espacial de los algoritmos

Usar en forma eficiente los distintos métodos de ordenación y búsqueda

Comprender el concepto de orden de los algoritmos

• Análisis•Juicio

• Tenacidad•Comunicación oral

• Sociabilidad• Trabajo en quipo/

•cooperación

Espacio Orientado a la Implementación

OBJETIVOSOBJETIVOS

TEMA 1: PROGRAMACIÓN1.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.

• Análisis• Innovación/creatividad• Comunicación escrita

• Trabajo en equipo/cooperación

CAPACIDADES TEMAS

TEMA 2: ESTRUCTURAS DE DATOS2.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.

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.

TEMA 3: Algoritmos3.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.

• Decisión• Independencia

• Juicio• Tenacidad

• Auto-organización• Comunicación escrita

• Empatía• Trabajo en equipo/

cooperación

Espacio Orientado al Diseño

Espacio Orientado al Análisis

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.

Analizar la eficiencia temporal y espacial de los algoritmos

Usar en forma eficiente los distintos métodos de ordenación y búsqueda

Comprender el concepto de orden de los algoritmos

• Análisis•Juicio

• Tenacidad•Comunicación oral

• Sociabilidad• Trabajo en quipo/

•cooperación

Page 16: ESTRUCTURA DE DATOS Y ALGORITMOS

AGENDA DE TÉCNICAS PARTICIPATIVASDÍ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 MarzoMartes 20 de MarzoMiércoles 21 de MarzoLunes 26 de MarzoMartes 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 AbrilMiércoles 11 de AbrilLunes 16 de AbrilMartes 17 de AbrilMié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 MayoMartes 8 de MayoMartes 22 de MayoMartes 29 de MayoMiércoles 30 de Mayo

• REALIZACIÓN DEL TALLER II• EXPOSICIONES TALLERES II (MODALIDAD POSTER)

Page 17: ESTRUCTURA DE DATOS Y ALGORITMOS

DEDICACIÓN ESTIMADA SEMANAL EN EDA

Dedicación semanal

5

9

5

87

109

10 109

6

8

10

8

6

0

2

4

6

8

10

12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Semanas

Ho

ras