Sei sulla pagina 1di 18

Estructuras de Datos y Algoritmos

(Grado en Ingeniería Informática)

Javier Campos

Curso 2018/19
Presentación
1.- Profesorado y recursos web
2.- Directrices generales y créditos
3.- Relaciones con otras asignaturas
4.- Objetivos
5.- Programa
6.- Bibliografía para el alumno
7.- Prácticas
8.- Evaluación
9.- Trabajo del estudiante

Estructuras de Datos y Algoritmos - 2018/19 2


Profesorado y servidor web
• Profesorado:
– Grupo de mañanas:
Javier Campos (jcampos@unizar.es)
– Grupo de tardes:
Yolanda Villate (yvillate@unizar.es)
– Prácticas:
Jorge Bernad (jbernad@unizar.es)
Yolanda Villate
• Recursos web:
http://webdiis.unizar.es/asignaturas/EDA/
(si “acceso restringido”  usuario/clave)

Estructuras de Datos y Algoritmos - 2018/19 3


Directrices generales y créditos
• Memoria de la titulación (Ministerio):
– Asignatura Obligatoria:
“Estructuras de datos y algoritmos” (6 créditos)
– 2º curso - 1er semestre

• Organización (EINA)
– Horas de clase: 3 horas/semana,
• 30 de teoría y 15 de problemas (NIP pares a las 10:00 aula 1;
NIP impares a las 11:00 aula 4)
 la realidad este curso: 42 horas en total
– Prácticas:
• 1ª sesión presencial de 2 horas en laboratorio (“práctica 0”)
• el resto: trabajos tutelados por un profesor de prácticas
Estructuras de Datos y Algoritmos - 2018/19 4
Relaciones con otras asignaturas
Semestre 1º: “Programación I”
Semestre 2º: “Programación II”, Matemática Discreta

Diseño imperativo descendente


Diseño recursivo
Estructuras de datos sencillas (vectores, tuplas, ficheros sec.)
Análisis de la eficiencia de algoritmos
Grafos (conceptos, representación y algoritmos)

Semestre 3º: “Estructuras de Datos y Algoritmos”

Semestre 4º: “Tecnología de la Programación”,


“Bases de Datos”

Semestre 5º: “Inteligencia Artificial”

Semestres siguientes: Otras asignaturas de


programación y de ingeniería del software

Estructuras de Datos y Algoritmos - 2018/19 5


Objetivos
• Aprender a…
– identificar, diseñar y definir Tipos Abstractos de Datos (TAD)
independientemente de su implementación;
– diseñar e implementar TAD reutilizables y robustos en un
lenguaje de programación modular o en un lenguaje orientado a
objetos;
– usar el TAD para diseñar e implementar programas robustos de
tamaño medio identificando, definiendo e implementando los
TAD necesarios;
– identificar, utilizar e implementar algunos TAD fundamentales,
como: pilas, colas, listas, árboles de búsqueda, tablas hash…;
– comparar distintas alternativas de implementación de TAD
con respecto al tiempo de ejecución de algoritmos y al uso de la
memoria, y de seleccionar la más adecuada en cada problema o
contexto;
– conocer y aplicar los esquemas algorítmicos básicos (como
dividir para vencer, búsqueda con retroceso, voracidad...) a la
resolución de problemas.
Estructuras de Datos y Algoritmos - 2018/19 6
Programa

1. Programación con Tipos Abstractos de Datos.


2. Tipos de datos lineales.
3. Tipos de datos arborescentes.
4. Tipos de datos funcionales.
5. Introducción a los esquemas algorítmicos.
6. Introducción a los grafos.

Estructuras de Datos y Algoritmos - 2018/19 7


Bibliografía
• Bibliografía básica:
– M.A. Weiss: Data Structures and Algorithm Analysis in C++, 4th Edition,
Pearson/Addison Wesley, 2013.
– Z.J. Hernández y otros: Fundamentos de Estructuras de Datos. Soluciones en
Ada, Java y C++, Thomson, 2005.
– C.A. Shaffer: Data Structures and Algorithm Analysis in C++, Third Edition,
Dover Publications, 2011.
• Ejercicios:
– N. Martí Oliet, Y. Ortega Mallén, J.A. Verdejo López:
Estructura de datos y algoritmos. Ejercicios y problemas resueltos,
Pearson Prentice Hall, 2003.
– L. Joyanes, I. Zahonero, M. Fernández y L. Sánchez: Estructura de datos. Libro
de problemas, McGraw Hill, 1999.
• C++:
– B. Stroustrup: The C++ Programming Language, 4th Edition, Addison-Wesley,
2013.
• Bibliografía complementaria:
– J. Campos: Estructuras de datos y algoritmos, Prensas Universitarias de
Zaragoza, Colección Textos Docentes, 1995.
– X. Franch: Estructuras de datos. Especificación, diseño e implementación, 3ª
edición, Ediciones UPC, 2001.
– D.P. Mehta y S. Sahni: Handbook of Data Structures and Applications, Chapman
& Hall/CRC, 2005.
Estructuras de Datos y Algoritmos - 2018/19 8
Prácticas
Habrá 3 enunciados sobre:
0. Implementación de un TAD en memoria estática
(recordatorio de 1º y puesta en marcha)
1. Implement. de TAD lineales en memoria dinámica
2. Implement. de TAD arborescentes en mem. dinámica
(en alguna práctica, la 1 o la 2, habrá entrevista posterior)
La práctica 0 no habrá que entregarla pero es presencial.

usuario/contraseña = correo de unizar contraseña para


“autoinscribirse”

Prácticas  Moodle https://moodle2.unizar.es/add/course/view.php?id=23222


El nombre completo del curso en Moodle es
“Estructuras de datos y algoritmos (2018-2019)”

Estructuras de Datos y Algoritmos - 2018/19 9


Prácticas (continuación)
• La 1ª sesión (práctica 0) es presencial
Es el 3 de octubre en lab. L0.04.
Tenéis que elegir UNA sesión de estas 4:
- sesiones preferentes para el grupo de mañana:
12:00 a 14:00 o 15:00 a 17:00;
- sesiones preferentes para el grupo de tarde:
10:00 a 12:00 o 17:00 a 19:00.

Tenéis que reservar plaza para asistir a dicha sesión


(se habilitará en Moodle una consulta para ello).
Plazo límite (para responder en Moodle): 1 de octubre, 11:00 AM

Estructuras de Datos y Algoritmos - 2018/19 10


Prácticas (continuación)
• El resto de prácticas (1 y 2) es trabajo no presencial.
Se realizarán en parejas. Tenéis que formar esas parejas
(se habilitará en Moodle una consulta para ello).
Plazo límite (para responder en Moodle): 8 de octubre, 11:00 AM
Habrá también en Moodle un foro para buscar pareja (“Buscando
pareja de prácticas”).

• A cada pareja de prácticas se le asignará un profesor tutor.

• Lenguaje: C++. Computador: hendrix (CodeBlocks/línea de


comandos).
• El código resultante de las prácticas 1 y 2 deberá
– estar documentado, ser legible,
– utilizar diseño descendente,
– ser ejecutable sin errores,
– mostrar un funcionamiento conforme a lo solicitado y
– ser entregado antes de las fechas límite fijadas.
Estructuras de Datos y Algoritmos - 2018/19 11
Evaluación de las prácticas
• Habrá un seguimiento de las prácticas presentadas (1 y 2).
– Para alguna de las prácticas (se anunciará) cada pareja tendrá una entrevista con
su profesor tutor de prácticas en la que tendrá que explicar y defender el trabajo
realizado.
• Las prácticas serán compiladas, ejecutadas y evaluadas de acuerdo a su
comportamiento en una cuenta de usuario en el cluster-hendrix, y las
instrucciones específicas dadas en sus enunciados.
• Se calificarán con una nota cuantitativa de 0 a 10.
• La nota tendrá en cuenta: el funcionamiento de los programas según
especificaciones, la calidad de su diseño y su presentación, la adecuada aplicación de
los métodos de resolución, el cumplimiento de fechas de entrega y la capacidad de los
integrantes del equipo para explicar y justificar el diseño realizado.
• Los alumnos que obtengan un mínimo de 5.0 estarán exentos de la
realización del examen práctico de programación en laboratorio.
– Para dichos alumnos:
• la calificación obtenida en sus prácticas se utilizará como nota de examen práctico de
programación en laboratorio,
• si deciden presentarse a la prueba de examen práctico en laboratorio, prevalecerá la nota
obtenida en ese examen.

Estructuras de Datos y Algoritmos - 2018/19 12


Evaluación global
• Examen escrito, sin apuntes (problemas de
programación y, en su caso, preguntas
conceptuales o resolver algún ejercicio).

• Examen práctico individual de programación en


laboratorio, sin apuntes (exentos quienes hayan
superado las prácticas según las reglas
anteriormente explicadas)

Estructuras de Datos y Algoritmos - 2018/19 13


Evaluación global
El plagio total o parcial en cualquiera de las
prácticas o exámenes supondrá el suspenso de la
asignatura y...

Art. 30. Prácticas irregulares en las pruebas de evaluación.


Si en el desarrollo de una prueba de evaluación el profesorado
involucrado tiene conocimiento de la quiebra de los principios de
decoro, legalidad o mérito individual tales como el uso de documentos
o herramientas no permitidas, la copia o intento de copia de los
resultados obtenidos por compañeros, la comunicación entre
estudiantes en temas referentes a la evaluación, el plagio o un
comportamiento impropio, procederá a la expulsión inmediata del
estudiante de la prueba de evaluación, le suspenderá la prueba y
levantará acta de los motivos, que elevará al centro junto con las
verificaciones documentales que estime oportunas para su valoración.
(Reglamento de Normas de Evaluación del Aprendizaje de la UZ)
Evaluación global (continuación)

si nota(exam_escrito) ≥ 5.0 and nota(laboratorio) ≥ 5.0 entonces


nota final := nota(exam_escrito)*0,7 + nota(laboratorio)*0,3

sino {suspenso seguro}


si nota(exam_escrito) < 5.0 and nota(laboratorio) < 5.0 entonces
nota final := nota(exam_escrito)*0,7 + nota(laboratorio)*0,3
sino { una de las dos notas es menor que 5 y la otra no}
nota final := mínimo{nota(exam_escrito), nota(laboratorio)}
fsi
fsi

Las calificaciones obtenidas en las dos partes (examen escrito y


laboratorio) en la primera convocatoria se guardan para la siguiente
convocatoria del mismo curso académico en el caso en que el alumno no
logre aprobar en la primera.

Estructuras de Datos y Algoritmos - 2018/19 15


Trabajo del estudiante
• La dedicación del estudiante para alcanzar los
resultados de aprendizaje en esta asignatura se
estima en 157 horas en promedio distribuidas del
siguiente modo:
– 47 horas de actividades presenciales: clases teóricas,
de problemas y prácticas en laboratorio
– 42 horas de trabajo de programación en equipos de 2
personas para desarrollar los programas propuestos en
las prácticas de laboratorio
– 62 horas de trabajo personal efectivo: estudio de
apuntes y textos, resolución de problemas, preparación
de clases y prácticas, desarrollo de programas
– 6 horas de los exámenes finales de teoría y de
prácticas en laboratorio
Estructuras de Datos y Algoritmos - 2018/19 16
Trabajo del estudiante
Un curso = 60 créditos
1 crédito, en media, 25 horas de trabajo

un curso = 1500 horas de trabajo


(suponiendo 2 meses de vacaciones! que es el doble de lo habitual!)

un mes = 150 horas de trabajo

una semana = 37,5 horas de trabajo

Estructuras de Datos y Algoritmos - 2018/19 17


Preguntas

Estructuras de Datos y Algoritmos - 2018/19 18

Potrebbero piacerti anche