Curso 2015-2016
Estructuras de Datos y Algoritmos
Titulación: | Código: | Tipo: |
Grado en Ingeniería Informática | 21417 | Obligatoria 2º curso |
Grado en Ingeniería Telemática | 21769 | Optativa |
Grado en Ingeniería en Sistemas Audiovisuales | 21655 | Optativa |
Créditos ECTS: | 4 | Dedicación: | 100 horas | Trimestre: | 1º |
Departamento: | Dpto. de Tecnologías de la Información y las Comunicaciones |
Coordinador: | Ricardo Baeza Yates |
Profesorado: | Ricardo Baeza Yates, Diego S�ez Trumper |
Idioma: | Castellano |
Horario: | |
Campus: | Campus de la Comunicación - Poblenou |
Estructuras de
Datos y Algoritmos forma parte del grupo de asignaturas del �rea de
Lenguajes de Programaci�n, junto con las asignaturas: Fundamentos de la
Programaci�n (de primer curso, durante los 2n y 3er trimestres) y
Programaci�n Orientada a Objetos (de segundo curso, durante el 1er trimestre y en paralelo con la nuestra). Mientras
estas dos �ltimas asignaturas del grupo son comunes a los tres grados
(Ingenier�a en Inform�tica, Ingenier�a en Telem�tica e Ingenier�a en
Sistemas Audiovisuales), nuestra asignatura es una especializaci�n por
tan s�lo la Ingenier�a en Inform�tica. De
esta manera, la asignatura parte de la voluntad de empezar a plantear a
los alumnos una mentalidad de analistas de problemas y no s�lo de
programadores. No obstante, las capacidades y habilidades de programaci�n de las
estructuras de datos y los tipos abstractos de datos son importantes en esta asignatura.
La
asignatura presupone haber adquirido unos conocimientos y habilidades
b�sicos de programaci�n en la asignatura de Fundamentos de la
Programaci�n de primer curso. Los
dos trimestres de esta asignatura habr�n dado un dominio en las
t�cnicas y tipos elementales de programaci�n y estructuras de control de
flujo. A
Estructuras de Datos y Algoritmos profundizar� concentr�ndose en las
formas de estructurar la informaci�n utilizada en un programa, en c�mo
poder gestionar esta informaci�n y en c�mo conseguirlo de forma que no
pueda tener efectos colaterales en la resto del programa. Adem�s veremos la forma de evaluar su implementaci�n �ptima tanto en
ocupaci�n de espacio de memoria como en tiempo de ejecuci�n de las
operaciones y algoritmos con los que gestionaremos datos.
Las
estructuras elementales que se ver�n ser�n las Estructuras Lineales,
las Estructuras en �rbol y las Estructuras Asociativas. La programaci�n de estas estructuras y sus algoritmos se realizar� en
lenguaje C, ya aprendido durante Fundamentos de la Programaci�n. Adem�s la asignatura promover� de forma especial la capacidad de analizar un
problema
desde el punto de vista de la informaci�n utilizada y gestionada en
este, y de c�mo se puede dise�ar y programar la mejor soluci�n en cuanto
a las estructuras de datos y sus operaciones de gesti�n. En este sentido el aprendizaje del alumno estar� muy encaminado a
resolver problemas que presenten escenarios lo m�s cercanos posibles a
casos reales.
Objetivos de aprendizaje
La asignatura
quiere, en �ltimo t�rmino, que el alumno adquiera una primera visi�n de
las tareas asociadas con el analista inform�tico. Es decir, quiere conseguir que un alumno pueda partir de la
descripci�n
verbal / textual de un problema a ser resuelto inform�ticamente y pueda
dise�ar y desarrollar los Tipos Abstractos de Datos (TADs) que lo
resuelven, a partir de los siguientes pasos
esenciales:
* Comprender y especificar formalmente las necesidades funcionales del
problema, es decir, especificar la firma de los TADs (tipos abstractos
de datos) necesarios.
* Seleccionar y dise�ar las estructuras de datos que ser�n utilizados
en los TADs, optimizando el empleo en memoria y la complejidad temporal
de ejecuci�n.
* Realizar un esquema completo de las estructuras de datos seleccionados.
* Implementar de forma �ptima los TADs dise�ados para incorporarlos a la aplicaci�n que resuelve el problema inicial.
El alumno debe ser capaz, adem�s, de poder entender por s� solo nuevas
estructuras de datos m�s complejas que vaya encontrando en el
futuro y de poder incorporar en su repertorio para el an�lisis y resoluci�n de problemas.
Todo
ello ha de enlazar con la filosof�a de dise�o de programas descendente
de la asignatura previamente realizada Fundamentos de la Programaci�n y
debe mostrar los claros v�nculos con la asignatura paralela Programaci�n
Orientada a Objetos.
Esta asignatura requiere de los conocimientos y habilidades adquiridos en la asignatura de Fundamentos de la Programaci�n (de primer curso, durante el 2 � y 3 � trimestres). Esencialmente, la asignatura presupone haber adquirido unos conocimientos y habilidades b�sicos de programaci�n que habr�n dado un dominio en las t�cnicas y tipos elementales de programaci�n y estructuras de control de flujo.
A continuaci�n se detallan aquellas competencias que los alumnos de Estructuras de Datos y Algoritmos deber�n haber adquirido al finalizar la asignatura. Estas competencias est�n relacionadas con el an�lisis, dise�o y desarrollo de estructuras de datos y las operaciones para su gesti�n, en programas de tama�o medio.
Competencias transversales | Competencias espec�ficas |
---|---|
Instrumentales CG1: Capacidad de s�ntesis
|
Conocimientos (Saber) CE3: Conocimiento de c�mo se pueden combinar estas estructuras b�sicas para formar otros m�s complejos
|
Siguiendo el esp�ritu del EEES, los alumnos ser�n evaluados mediante
una f�rmula mixta de forma continuada y de forma global final mediante
un examen.
Notas de Seminarios (NS): los alumnos ir�n siendo evaluados a partir de ejercicios realizados en clase durante las sesiones de seminarios. Estos
ejercicios de seminarios, que se realizar�n de forma individual en
clases reducidas, permitir�n a los profesores hacer un seguimiento m�s
preciso del alumno para conocer mejor y poder evaluar con m�s
conocimiento las diversas fases del curso (seminarios, pr�cticas y examen). La nota de seminarios s�lo se tendr� en cuenta si el alumno asiste a todos o como m�ximo en falla uno.
Notas de Pr�cticas (NP): los alumnos realizar�n 4 pr�cticas a lo largo del curso, las cuales se empezar�n durante la hora de clase y terminar�n
fuera de clase. Estas se realizar�n en equipos de 3 alumnos para que aprendan a trabajar en equipo. Se evaluar�n para cada entrega que el equipo realice y la nota ser� la misma para los tres miembros del equipo. La evaluaci�n se har� siempre que la pr�ctica compile correctamente y ejecute sin errores de sistema. En este caso, la pr�ctica se evaluar� en base a la adecuaci�n de la
soluci�n
al problema y los criterios de eficiencia de la soluci�n, claridad y
limpieza del c�digo, documentaci�n del c�digo y funcionamiento con los
juegos de datos aportados por los profesores. Las 4 pr�cticas har�n media para obtener una nota global de pr�cticas.
Nota de Examen (NE):
a final de la asignatura, los alumnos realizar�n un examen que constar�
de tres partes: (a) una parte de tipo test que evaluar� conceptos
generales, (b) una parte con dos cuestiones de respuesta corta y / o de ejercicio de c�lculo de funcionamiento de estructuras de datos,
y finalmente (c) un problema largo que evaluar� la capacidad de
analizar un problema, dise�ar las estructuras de datos adecuadas,
especificar formalmente la soluci�n y los tipos abstractos de datos con las operaciones de la interfaz y el
esquema de las estructuras, y analizando la complejidad en espacio y en tiempo.
� Productos escritos (no recuperables): Notas de Seminarios (NS)
� Pruebas de ejecuci�n (no recuperables): Notas de Pr�cticas (NP)
� Prueba escrita (recuperable): Nota de Examen (NE)
Autoevaluaci�n: El alumno dispondr� de una colecci�n de ejercicios con soluciones para irse auto-evaluando lo largo del curso. Estos ejercicios ser�n voluntarios y no contar�n en la nota final.
Nota Final (NF): la nota final ser� calculada de la siguiente forma :
NF = NE * 0,5 + NP * 0,3 + NS * 0,2
Condiciones:
� NS ser� 0,0 si se ha fallado la asistencia a m�s de un seminario
� NF se calcula s�lo si: NE>= 5,0, NP>= 5,0 y NS >=5,0
Contrario NF= m�nimo (NE, NP, NS)
Bloque de contenido 1. Introducci�n a los Tipos Abstractos de Datos
Conceptos |
Procedimentos |
Actitudes |
1. Introducci�n a las Estructuras de Datos |
1. Ejemplo de problemas de no utilizaci�n de los Tipos Abstractos de Datos.
|
1. Abstracci�n
2. Comprensi�n matem�tica |
Bloque de contenido 2. Estructuras Lineales
Conceptos |
Procedimentos |
Actitudes |
1. Aproximaci�n Estructural a las Estructuras Lineales
|
1. Analog�a de las Estructuras Lineales funcionamiento de actividades cotidianas
|
1. Abstracci�n
2. An�lisis
|
Bloque de contenido 3. Estructuras en �rbol
Conceptos |
Procedimentos |
Actitudes |
1. Propiedades, terminolog�a y conceptos asociados a los �rboles.
|
1. Algoritmos de recorridos de �rboles Binarios.
|
1. Abstracci�n
2. An�lisis
|
Bloque de contenido 4. Estructuras Asociativas
Conceptos |
Procedimentos |
Actitudes |
1. Estructuras Asociativas: Tablas . |
1. Especificaci�n Informal: Operaciones Generales
|
1. Abstracci�n
2. An�lisis
|
Bloque de contenidos 5. Colas con Prioridad y Heaps
Conceptes |
Procediments |
Actituds |
1. Diferencias funcionales respecto a la Cola normal.
2. especificaci�n Informal 3. Funcionamiento a partir de �rboles Parcialmente Ordenados y Completos � Heaps.
|
1. Operaciones con �rbol Parcialmente Ordenado: Inserciones (Flotaci�n), Consulta, Borrados (Hundido)
2. Implementaci�n Est�tica a partir de APO con Pilones (Heaps) 3. Algoritmo de b�squeda y ordenaci�n: Heapsort.
|
1. Abstracci�n
2. An�lisis
|
Bloque de contenido 6. An�lisis de Problemas
Conceptos |
Procedimentos |
Actitudes |
1. Comprensi�n y especificaci�n formal de las necesidades funcionales de un problema. 2. Selecci�n y dise�o de las estructuras de datos que ser�n utilizados en los Tipos Abstractos de Datos, optimizando el empleo en memoria y la complejidad temporal de ejecuci�n. 3. Repaso y consolidaci�n del todos los TADs vistos. |
1. Especificaci�n formal de la firma de los TADs necesarios. 2. Realizar un esquema completo de las estructuras de datos seleccionados. 3. Implementar de forma �ptima los TADs dise�ados para incorporarlos a la aplicaci�n que resuelve el problema inicial. l. |
1. Abstracci�n
2. An�lisis
|
Las actividades de aprendizaje se dividen de la siguiente forma:
� Sesiones de Teor�a: los profesores presentan una serie de conceptos y t�cnicas, as� como ejemplos de uso. Los alumnos deber�n repasar, fuera de horas de clase, los apuntes tomados en clase para consolidar estos contenidos.
� Sesiones de Seminario:
los alumnos, en grupos reducidos, resolver�n ejercicios que ayudar�n a
consolidar los conceptos te�ricos as� como hacer de enlace hacia los
trabajos pr�cticos. La realizaci�n es en solitario y durante la clase. Estos ejercicios ser�n supervisados de cerca por los profesores
para aclarar cualquier duda y ayudar al alumno en esta consolidaci�n.
� Sesiones de Pr�cticas: los alumnos, en equipos de tres, deber�n resolver aspectos pr�cticos de resoluci�n de problemas de la asignatura. B�sicamente
ejercitar�n las t�cnicas de programaci�n de las estructuras de datos y
de las operaciones de gesti�n, pero tambi�n deber�n saber analizar la
forma m�s �ptima de hacerlo. Estas pr�cticas se empezar�n en aula de ordenadores pero se tendr�n
que acabar de realizar for de horas de clase dada la intensidad que
requieren esta problemas pr�cticos.
� Ejercicios de Autoevaluaci�n:
estos ejercicios pertenecen a una lista accesible desde el aula global
para que los alumnos, fuera de horas de clase, puedan hacer un
seguimiento de su aprendizaje de cada bloque de la asignatura.
Fuentes de informaci�n para el aprendizaje. Bibliograf�a b�sica (soporte papel y electr�nico)
- AHO, A.V. y otros. Fecha Structures and Algorithms . Addison- Wesley, 1983.
- FRANCH GUTI�RREZ, X. Estructuras de datos . Especificaci�n , dise�o e implementaci�n . Ediciones UPC, 1994.
Fuentes de informaci�n para el aprendizaje. Bibliograf�a complementaria (soporte papel y electr�nico)
- WEISS, M. Fecha Structures and Algorithm Analysis in C. Benjamin Cummings, 1993.
- PE�A , R. Dise�o de programas. Prentice Hall , 2 � Edici�n, 1999.
Fuentes de informaci�n para el aprendizaje . Bibliograf�a de refuerzo ( soporte papel y electr�nico )
- NYHOFF , L. TADs, Estructuras de datos y resoluci�n de problemas con C + + (2 � Edici�n), Pearson / Prentice Hall, 2005.
Recursos did�cticos. Material docente de la asignatura
- Transparencias de la asignatura en formato Power Point
- Lista de Problemas de la Asignatura
Recursos did�cticos. Materiales y herramientas de soporte
-
Web de la asignatura donde se recoger�n enlaces interesantes,
informaci�n puntual de enunciados y entrega de pr�cticas, soluciones de
ejercicios, etc.