Contenido de XSL

Estructuras de Datos y Algoritmos

Centro
Facultad de Informática
Titulación
Grado en Inteligencia Artificial
Curso académico
2023/24
Curso
2
Nº Créditos
6
Idiomas
Castellano
Euskera
Inglés

DocenciaAlternar navegación

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4040
P. Laboratorio2050

Guía docenteAlternar navegación

ObjetivosAlternar navegación

Resultados del aprendizaje

1. Conocer y aplicar correctamente los conceptos fundamentales de estructuras de datos y algoritmos para la resolución de problemas habituales en informática.

2. Ser capaz diseñar algoritmos de complejidad media y plasmarlos en un programa informático, usando cuando proceda las primitivas del lenguaje adecuadas, incluyendo la orientación a objetos.

3 Saber implementar en un lenguaje de programación los algoritmos y las estructuras de datos más adecuadas para hacer efectiva la solución a los problemas abordados. Saber identificar las fuentes de ineficiencia en un programa.

4. Conocer y utilizar, entre otros, algoritmos de acceso, inserción y ordenación para las estructuras de datos utilizadas. Utilizar adecuadamente el diseño recursivo en la solución de problemas.

5. Saber evaluar el coste en tiempo y memoria de las soluciones propuestas y desarrolladas por el propio alumno/a. Utilizar con destreza alguna de las herramientas y entornos de desarrollo de software.





TemarioAlternar navegación

Tema 1: Análisis de algoritmos.

1.1. Notación asintótica. Función de coste.

1.2. Comparación de las funciones de coste.

Tema 2: Estructuras lineales. Implementaciones y características.

2.1. Listas

2.2. Pilas y Colas

2.3. Iteradores.

2.4. Ordenación y búsqueda.

Tema 3: Diseño recursivo.

3.1. Recursión en el diseño de programas.

3.2. Ordenación y búsqueda mediante recursión.

Tema 4. Árboles.

4.1. Estructuras no lineales.

4.2. Diseño recursivo en árboles.

4.3. Árboles binarios de búsqueda.

4.4. Otros tipos de árboles.

Tema 5: Hashing. Tablas Hash y Maps. Características.

Tema 6: Grafos. Algoritmos de recorridos de grafos.

6.1. Definiciones. Grafos dirigidos y no dirigidos.

6.2. Recorridos de grafos.

MetodologíaAlternar navegación

La asignatura se imparte mediante actividades presenciales y no presenciales.



Las actividades presenciales tendrán la forma de clases magistrales y de sesiones de elaboración y discusión de soluciones para los ejercicios propuestos. Se basará en la asistencia sistemática a las clases, la resolución de los ejercicios propuestos y la participación tanto en las sesiones magistrales como en las sesiones de discusión.

Algunas sesiones presenciales se dedicarán a la implementación, en el laboratorio, de programas que resuelvan problemas propuestos.



Las actividades no presenciales consistirán en el estudio de los algoritmos y las técnicas presentadas en clase y en la realización de ejercicios prácticos de diseño e implementación de soluciones algorítmicas a los problemas propuestos. Los y las estudiantes deben ser capaces de trabajar de manera autónoma con el material de las clases y con las referencias que se proporcionen.

Sistemas de evaluaciónAlternar navegación

Cada estudiante puede optar por una de las dos modalidades de evaluación de la asignatura:

(1) Evaluación continua.

(2) Evaluación final (o de conjunto).



A continuación se describe cada una de esas dos opciones.



(1) Evaluación continua (sobre 10 puntos).



La calificación de la asignatura se obtendrá sumando las calificaciones obtenidas mediante:

(a) trabajos de programación (3 puntos como máximo), y

(b) exámenes individuales (7 puntos como máximo).



En cada uno de los dos apartados (a) y (b) se deberá obtener, al menos, un 50% del máximo.



De cara a la evaluación, el temario se considera dividido en tres bloques, que serán evaluados mediante tres o dos exámenes individuales con un peso de 25%-25%-20% ó 50%-20%, respectivamente. Las fechas de realización de esos exámenes serán los días asignados a la asignatura en las semanas de horario especial y el día publicado por la Junta de Facultad para la primera convocatoria de evaluación final de la asignatura. La calificación final de los exámenes individuales será la suma de esos exámenes intermedios.



Los trabajos de programación consistirán en ejercicios de implementación individual y/o grupal que se realizarán durante todas las semanas del curso.



Quien opta por la evaluación continua se compromete a asistir sistemáticamente a las clases magistrales y de laboratorio, y a entregar los ejercicios propuestos en el plazo establecido. En caso contrario podrá quedar excluido/a de la evaluación continua. Habrá una preinscripción al principio del curso. Esta decisión pasará a ser definitiva en las fechas que se establezcan (hacia la semana 11), tras la verificación del rendimiento parcial por parte del profesor/a. Si el/la alumno/a desea cambiarse a la modalidad de Evaluación Final deberá renunciar expresamente a la modalidad de Evaluación Continua.



(2) Evaluación Final (o de Conjunto) (sobre 10 puntos).



La evaluación final consistirá en un examen escrito y una práctica de programación.

(a) La práctica de programación supondrá el 30% de la calificación total de la asignatura (3 puntos sobre 10). Para aprobar la asignatura será necesario obtener, como mínimo, la mitad (es decir, 1,5 puntos).

(b) El examen escrito, sobre los contenidos de la asignatura, supondrá el 70% de la calificación total de la asignatura (7 puntos sobre 10). Para aprobar la asignatura será necesario obtener, como mínimo, la mitad (es decir, 3,5 puntos).



Se entenderá que el/la estudiante renuncia a la convocatoria de Evaluación Final (o de Conjunto) si no se presenta a las pruebas de evaluación citadas.



Durante el desarrollo de las pruebas de evaluación quedará prohibida la utilización de libros, notas o apuntes, así como de aparatos o dispositivos telefónicos, electrónicos, informáticos, o de otro tipo, por parte del alumnado, salvo que expresamente se indique lo contrario.



Materiales de uso obligatorioAlternar navegación

- Plataforma eGela.
- Entorno de programación Eclipse.
- Lenguaje de programación Java.

BibliografíaAlternar navegación

Bibliografía básica

- "Java software structures: designing and using data structures" (Fourth edition). John

Lewis, Joseph Chase. Addison Wesley (2014).

- "Algorithms" (4th edition). Robert Sedgewick and Kevin Wayne. Addison Wesley (2011).

- "Data Structures and Problem Solving Using Java" (Fourth edition) Mark A. Weiss. Pearson (2010).

Bibliografía de profundización

- "Introduction to Algorithms" (3rd edition) Cormen, Leiserson, Rivest & Stein. MIT press (2009).
- "Data Structures and Algorithm Analysis in Java" (Third edition). Mark Allen Weiss. Pearson (2012).

GruposAlternar navegación

01 Teórico (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

09:00-10:30

10:30-12:00

Profesorado

Aula(s) impartición

  • 1.1 - CENTRO IGNACIO MARIA BARRIOLA
  • 1.1 - CENTRO IGNACIO MARIA BARRIOLA

01 P. Laboratorio-1 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30

Profesorado

01 P. Laboratorio-2 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30

Profesorado

01 P. Laboratorio-3 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

14:00-15:30

Profesorado

46 Teórico (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

14:00-15:30

15:30-17:00

Profesorado

46 P. Laboratorio-1 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

17:00-18:30

Profesorado

46 P. Laboratorio-2 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

17:00-18:30

Profesorado

46 P. Laboratorio-3 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30

Profesorado

46 P. Laboratorio-4 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30

Profesorado

61 Teórico (Inglés - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

09:00-10:30

10:30-12:00

Profesorado

61 P. Laboratorio-1 (Inglés - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30

Profesorado