UA
   PROGRAMACIÓN Y ESTRUCTURAS DE DATOS    Año académico       Versión PDF.  Versión PDF para convalidación.
Código9382Descripción
Crdts. Teor.4,5ESTRUCTURA DE DATOS Y ALGORITMO DE MANIPULACIÓN. TIPOS ABSTRACTOS DE DATOS. DISEÑO RECURSIVO.
Crdts. Pract.4,5
A efectos de intercambios en programas de movilidad, la carga de esta asignatura equivale a 11,25 ECTS.


Departamentos y Áreas
DepartamentosÁreaCrdts. Teor.Crdts. Pract.Dpto. Respon.Respon. Acta
LENGUAJES Y SISTEMAS INFORMÁTICOSLENGUAJES Y SISTEMAS INFORMATICOS4,54,5


Estudios en los que se imparte
Ingeniería Técnica en Informática de Sistemas - plan 2001


Pre-requisitos
FUNDAMENTOS DE PROGRAMACIÓN I
FUNDAMENTOS DE PROGRAMACIÓN II


Incompatibilidades de matrícula por contenidos equivalentes
Sin Datos


Matriculados (2013-14)
Grupo (*)Número
1 16
TOTAL 16
(*) 1: GRUPO 1 - CAS
(*) 1001: 1001 - CAS


Ofertada como libre elección (2013-14)
Sin departamento
Consulta Gráfica de Horario
A efectos de intercambios en programas de movilidad, la carga de esta asignatura equivale aPincha aquí


Horario (2013-14)
Sin horario


Grupos de matricula (2013-14)
Grupo (*)CuatrimestreTurnoIdiomaDistribución (letra nif)
1 Anual M CAS desde - hasta -
1001 Anual M CAS desde - hasta -
(*) 1: GRUPO 1 - CAS
(*) 1001: 1001 - CAS


Objetivos de las asignatura / competencias (2013-14)
El objetivo principal en esta asignatura es que el alumno:

- Conozca los mecanismos de abstracción y su importancia para la resolución de problemas.

- Comprenda la necesidad de separación entre los niveles de especificación, implementación y uso.

- Conozca los tipos de datos más usuales en programación, sus realizaciones más comunes y su utilidad. Concretamente, se espera que el alumno:

- Sea capaz de organizar un determinado volumen de datos de la forma más racional posible en función de los requerimientos del problema a resolver.

- Sea capaz de escoger entre distintas implementaciones alternativas de una abstracción de datos, y razonar sobre la solución escogida en cuanto a coste se refiere.


Contenidos teóricos y prácticos (2013-14)
Contenidos teóricos

El programa de teoría propuesto se compone de cinco núcleos:

1. Introducción a los Tipos Abstractos de Datos:
- Noción de complejidad.
- Cotas de complejidad.
- Notación asintótica.
- Obtención de cotas de complejidad.

2. Los tipos lineales:
- Introducción a los tipos abstractos de datos.
- Vectores.
- Listas.
- Pilas.
- Colas.

3. El tipo árbol:
- Definiciones generales.
- Árboles binarios.
- Árboles de búsqueda: Árboles binarios de búsqueda, árboles AVL, árboles 2-3, árboles 2-3-4, árboles rojos-negros, árboles B.

4. El tipo conjunto:
- Definiciones generales.
- Diccionario: tabla de dispersión, trie, árboles de búsqueda digitales.
- Cola de prioridad: montículo, cola de prioridad doble, árbol izquierdista o leftist.

5. El tipo grafo:
- Concepto de grafo y terminología,.
- Especificación algebraica.
- Representación de grafos.
- Grafos dirigidos: recorridos en profundidad o DFS, recorridos en anchura o BFS, grafos acíclicos dirigidos o GAD, componentes fuertemente conexos.
- Grafos no dirigidos.

En la primera unidad se estudian conceptos básicos del estudio de los Tipos Abstractos de Datos, que luego serán usados sistemáticamente en el resto del curso. No se pretende desarrollar esta teoría en profundidad, sino tan sólo en el nivel que se considera preciso para soportar adecuadamente el resto de los contenidos del curso. En segundo lugar, una vez introducidos los conceptos anteriores, éstos se concretan en la especificación de los tipos que se van a estudiar más adelante y que no precisan definiciones para su comprensión. En tercer lugar, se introduce al alumno en la necesidad del análisis de la eficiencia tanto de la representación escogida para los distintos tipos, como la de los algoritmos de manejo de la misma. Por último, se planteará la necesidad de una herramienta para la implementación, concretamente nos referimos al lenguaje C++. El resto de capítulos sirven para presentar diversas familias de tipos de datos consideradas clásicas. Básicamente, estos cuatro núcleos presentan la misma estructura:

- Definiciones y conceptos

- Especificación

- Estudio de las distintas representaciones

- Implementación de las representaciones y análisis de las mismas

- Utilidad del tipo. Puede ser un estudio de algoritmos que resuelvan problemas típicos del tipo, o bien ejemplos de distintas utilizaciones del tipo.

Contenidos prácticos

Se realizarán un conjunto de prácticas en las que se estudiará:

- Diseño de/con tipos abstractos de datos.

- Prueba de la eficiencia de algoritmos y distintas representaciones.


Más información
http://www.dlsi.ua.es/cgi-bin/wwwadm/assig2.cgi?id=cas&assig=PED&plan=2001
Profesor/a responsable
Peral Cortes , Jesus


Metodología docente (2013-14)
Clases teóricas y prácticas
No hay clases presenciales.


Tipo de actividades: teóricas y prácticas
Laboratorios
Desarrollo de prácticas de programación de estructuras de datos con el lenguaje C++.


Profesores (2013-14)
Grupo Profesor/a
TEORIA COMPARTIDA DE 9163, 9271 Y 93821FERRANDEZ RODRIGUEZ, ANTONIO
Moya Alia, Santiago
Peral Cortes, Jesus
Vazquez Pérez, Sonia
1001Peral Cortes, Jesus
Enlaces relacionados
http://es.wikipedia.org/wiki/Número_complejo
http://gplsi.dlsi.ua.es/libros/cpp1/
http://gplsi.dlsi.ua.es/~slujan/materiales/cpp-muestra.pdf
http://math.hws.edu/TMCM/java/xSortLab/
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf
http://nova.umuc.edu/~jarc/idsv/lesson1.html
http://ocw.ua.es/ingenieria-arquitectura/programacion-y-estructuras-de-datos/Course_listing
http://pracdlsi.dlsi.ua.es
http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm
http://www.conclase.net/c/curso/index.php
http://www.conclase.net/c/librerias/funcion.php?fun=atan2
http://www.cppreference.com/wiki/
http://www.cse.ohio-state.edu/~bondhugu/acads/234-tree/index.shtml
http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html
http://www.cs.unm.edu/~rlpm/499/ttft.html
http://www.etsimo.uniovi.es/eckel/
http://www.qmatica.com/DataStructures/Trees/BST.html


Bibliografía

Cómo programar en C++
Autor(es):Deitel, Harvey M. ; Deitel, Paul J.
Edición:México, D.F. : Pearson Educación, 2014.
ISBN:607-32-2740-X
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ] [ Acceso a las ediciones anteriores ] [ Enlace al recurso bibliográfico ]

Data abstraction and problem solving with C++ : walls and mirrors
Autor(es):CARRANO, Frank M. ; PRICHARD, Janet J.
Edición:Boston : Addison-Wesley, 2002.
ISBN:0-201-74119-9
Recomendado por:MOYA ALIA, SANTIAGO
PERAL CORTES, JESUS
VAZQUEZ PEREZ, SONIA
[ Acceso al catálogo de la biblioteca universitaria ]

Data structures and algorithms in C++
Autor(es):Drozdek, Adam
Edición:Pacific Grove : Brooks-Cole, 2001.
ISBN:0-534-37597-9
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ]

Diseño de programas : formalismo y abstracción
Autor(es):Peña Marí, Ricardo
Edición:Madrid : Pearson Educación, 2005.
ISBN:978-84-205-4191-4
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ]

Ejercicios de programación creativos y recreativos en C++
Autor(es):Gregorio Rodríguez, Carlos ; Llana Díaz, Luis Fernando
Edición:Madrid : Pearson, 2002.
ISBN:978-84-205-3211-0
Recomendado por:MOYA ALIA, SANTIAGO
VAZQUEZ PEREZ, SONIA
[ Acceso al catálogo de la biblioteca universitaria ]

Ejercicios resueltos sobre programación y estructuras de datos
Autor(es):Luján Mora, Sergio
Edición:Alicante : Publicaciones de la Universidad de Alicante, 2014.
ISBN:978-84-9717-295-0
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ]

El lenguaje de programación C++
Autor(es):STROUSTRUP, Bjarne
Edición:Madrid : Addison Wesley, 2002.
ISBN:84-7829-046-X
Recomendado por:MOYA ALIA, SANTIAGO
VAZQUEZ PEREZ, SONIA
[ Acceso al catálogo de la biblioteca universitaria ]

Fundamentals of data structures in C++
Autor(es):Horowitz, Ellis
Edición:Dades no disponibles.
ISBN:0-929306-37-6
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ] [ Acceso a las ediciones anteriores ]

Resolución de problemas con C++
Autor(es):Savitch, Walter
Edición:México, D.F. : Pearson Educación, 2007.
ISBN:978-970-26-0806-6
Recomendado por:PERAL CORTES, JESUS (*1)
[ Acceso al catálogo de la biblioteca universitaria ] [ Acceso a las ediciones anteriores ]
(*1) Este profesor ha recomendado el recurso bibliográfico a todos los alumnos de la asignatura.
Fechas de exámenes oficiales (2013-14)
ConvocatoriaGrupo (*)fechaHora inicioHora finAula(s) asignada(s)Observ:
Pruebas extraordinarias de finalización de estudios -1 25/11/2013 -
Periodo ordinario para asignaturas de segundo semestre y anuales -1 03/06/2014 15:00 18:00 A2/E11
A2/E14
A2/E12
A2/E13
A2/B13
-
Pruebas extraordinarias para asignaturas de grado y máster -1 07/07/2014 14:30 17:30 A2/D02
A2/D01
-
(*) 1: GRUPO 1 - CAS
(*) 1001: 1001 - CAS


Instrumentos y criterios de evaluación (2013-14)
Examen final
Para la evaluación de la asignatura en la convocatorias de junio, julio y diciembre:
1. Se realizará un examen práctico (50%) sobre las prácticas propuestas realizadas durante el curso.
2. Se realizará un examen teórico con un valor ponderado del 50%.

Para promediar la nota es indispensable obtener una calificación mínima de 4 sobre 10 en cada parte (teoría y prácticas). La asignatura se aprueba a partir de una nota final de 5 puntos.

Cualquier parte aprobada (teoría o prácticas) con una nota >= 5 sobre 10 se guarda para cualquier convocatoria del futuro. Si un alumno obtiene una nota de 5 en la parte práctica, por ejemplo, en cualquier convocatoria futura sólo tiene que presentarse a la parte teórica.

Las primeras notas que se van a guardar para convocatorias futuras son las notas >=5 sobre 10 obtenidas en las convocatorias de junio y julio de 2013.