Estructura de Datos y Algoritmos, 2018

ISABEL SEGURA BEDMAR
LOURDES MORENO LÓPEZ
HARITH ALJUMAILY
JOSÉ LUIS MARTÍNEZ FERNÁNDEZ
Departamento de Informática
Universidad Carlos III de Madrid
Área: Programación
Titulación:
Grado en Ingeniería Informática
Diciembre de 2018
Imagen cortesía de Gerd Altmann via [ pixabay ]
6 ECTS: 1.6 Horas de clase de teoría y 1.66 h de laboratorio.
Tiempo total previsto de aprendizaje: 180 horas
PRERREQUISITOS Y CONOCIMIENTOS PREVIOS RECOMENDADOS
- Cálculo
- Programación
DESCRIPCIÓN GENERAL DE LA ASIGNATURA
En esta asignatura, los estudiantes estudiarán las principales estructuras de datos (listas, árboles y grafos) y sus algoritmos de manipulación. A partir de las estructuras estudiadas durante el curso, los estudiantes adquirirán las habilidades para diseñar y desarrollar las estructuras de datos más apropiadas para resolver problemas de la vida real y desarrollar software de calidad. También aprenderán a analizar los algoritmos desde el punto de vista de la complejidad temporal y espacial, para ser capaces de proponer los algoritmos más eficientes. También se estudiaran las las estrategias algorítmicas de recursión y divide y vencerás.
OBJETIVOS: CONOCIMIENTOS Y CAPACIDADES
Se busca desarrollar las siguientes capacidades y conocimientos:
- Análisis y síntesis, así como la capacidad de planificar y organizar
- Resolución de Problemas mediante algoritmos
- Trabajo en equipo
- Conocimiento de las principales estructuras de datos y estrategias algorítmicas (iteración, recursión y divide y vencerás)
- Analizar la complejidad de los algoritmos
- Utilizar diferentes estructuras de datos para implementar soluciones a problemas específicos
- Preocupación por la claridad, sencillez y eficiencia en la resolución de problemas
- Debatir las distintas soluciones a un problema.
MATERIAL DOCENTE
El curso incluye documentos con la explicación de los conceptos teóricos más importantes, resúmenes guiados con los principales objetivos de cada unidad, problemas propuestos con las soluciones correspondientes, un caso práctico completo, y evaluaciones parciales y globales con soluciones.
ACTIVIDADES DE EVALUACIÓN O TAREAS PRÁCTICAS
Al final del curso, debería ser capaz de realizar la siguientes tareas:
- Resolver los problemas de los exámenes en el tiempo indicado en ellos.
- Implementar en Java las soluciones de los problemas planteados.
- Analizar la complejidad temporal y espacial de un algoritmo.
- Diseñar e implementar las estructuras datos y sus algoritmos que resuelvan la descripción de un problema real (tipo caso práctico).
Course Contents