Sunteți pe pagina 1din 5

Vicerrectorado de Ordenacin Acadmica

21/06/14
2013
GUA DOCENTE DE LA
ASIGNATURA
Pgina 1 de 5
Graduado/a en Ingeniera Informtica por la Universidad de Mlaga
Escuela Tcnica Superior de Ingeniera Informtica
Estructura de Datos
204
Obligatoria
Programacin de Computadores
Formacin comn
69 % terica y 31 % prctica
Castellano, Ingls
2
1
6 N Crditos
N Horas de dedicacin del estudiante: 150
60
72
30
Tamao del Grupo Grande:
Tamao del Grupo Reducido:
Pgina web de la asignatura:
N Horas presenciales:
Semestre:
Curso:
Mdulo:
Experimentalidad:
Idioma en el que se imparte:
Materia:
Grado/Mster en:
Centro:
Asignatura:
Cdigo:
Tipo:
EQUIPO DOCENTE
LENGUAJES Y CIENCIAS DE LA COMPUTACIN
LENGUAJES Y SISTEMAS INFORMTICOS
Mail Telfono Laboral Despacho Horario Tutoras
Coordinador/a: BLAS
CARLOS RUIZ JIMENEZ
PABLO LOPEZ OLIVAS
FRANCISCO GUTIERREZ
LOPEZ
JOSE ENRIQUE
GALLARDO RUIZ
bcruiz@uma.es
plopez@uma.es
fgutierrez@uma.es
jegallardo@uma.es
952132795
952133305
952133314
952133305
-
3.2.50 - E.T.S.I.
INFORMTICA
3.2.46 - E.T.S.I.
INFORMTICA
-
Primer cuatrimestre: Martes 09:45 - 14:45,
Viernes 10:40 - 11:40 Segundo cuatrimestre:
Lunes 10:45 - 12:45, Mircoles 10:45 - 12:45,
Viernes 11:30 - 13:30
Primer cuatrimestre: Lunes 11:00 - 14:00,
Mircoles 11:00 - 14:00 Segundo cuatrimestre:
Martes 12:45 - 14:45, Lunes 10:30 - 12:30,
Viernes 08:00 - 10:00
Todo el curso: Lunes 10:45 - 12:45, Mircoles
10:45 - 12:45, Jueves 12:45 - 14:45
Primer cuatrimestre: Lunes 12:30 - 13:30,
Mircoles 12:30 - 13:30, Jueves 09:30 - 11:30,
Viernes 10:30 - 12:00, Jueves 11:30 - 12:00
Segundo cuatrimestre: Jueves 09:30 - 13:30,
Mircoles 12:30 - 13:30, Viernes 10:45 - 11:45
Nombre y Apellidos
rea:
Departamento:
RECOMENDACIONES Y ORIENTACIONES
Esta asignatura requiere conocimientos bsicos de matemticas y de lenguajes de programacin, y para su comprensin ser necesario haber
cursado las siguientes asignaturas de formacin bsica del primer curso: Fundamentos de la Programacin, Programacin Orientada a Objetos,
Estructuras Algebraicas de la Computacin y Matemtica Discreta.
CONTEXTO
Esta asignatura se imparte en el primer cuatrimestre del segundo curso de los tres grados de Informtica: Ingeniera Informtica, Ingeniera del
Software e Ingeniera de Computadores. En este mismo cuatrimestre se imparte tambin la asignatura Anlisis y Diseo de Algoritmos. Ambas
asignaturas completan el estudio de las tcnicas de programacin impartidas en las asignaturas de programacin de primer curso.
Las estructuras de datos son imprescindibles para que los algoritmos pueden describirse de manera eficiente, por ello existe gran coordinacin con la
asignatura Anlisis y Diseo de Algoritmos. Se describirn las estructuras de datos ms importantes de la programacin, as como las
implementaciones tpicas que se suelen utilizar en un lenguaje de programacin orientado a objetos y en un lenguaje funcional. La asignatura tiene
una fuerte componente prctica, y dedica un nmero importante de clases a prcticas de laboratorio, donde se resuelven problemas clsicos con el
uso de las estructuras de datos fundamentales.
COMPETENCIAS
1
2
Competencias generales y bsicas Competencias generales
Competencias especficas Competencias especficas
CG08
CG09
Conocimiento de las materias bsicas y tecnologas, que capaciten para el aprendizaje y desarrollo de nuevos
mtodos y tecnologas, as como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
Capacidad para resolver problemas con iniciativa, toma de decisiones, autonoma y creatividad. Capacidad para
saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesin de Ingeniero Tcnico en
Informtica.
DESCRIPCIN DE LA ASIGNATURA
Vicerrectorado de Ordenacin Acadmica
21/06/14
2013
GUA DOCENTE DE LA
ASIGNATURA
Pgina 2 de 5
2 Competencias especficas Competencias especficas
Formacin comn
CC05
CC06
CC07
CC08
CC17
Conocimiento, administracin y mantenimiento sistemas, servicios y aplicaciones informticas.
Conocimiento y aplicacin de los procedimientos algortmicos bsicos de las tecnologas informticas para disear
soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
Conocimiento, diseo y utilizacin de forma eficiente los tipos y estructuras de datos ms adecuados a la resolucin
de un problema.
Capacidad para analizar, disear, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo
el paradigma y los lenguajes de programacin ms adecuados.
Capacidad para disear y evaluar interfaces persona computador que garanticen la accesibilidad y usabilidad a los
sistemas, servicios y aplicaciones informticas.
CONTENIDOS DE LA ASIGNATURA
Introduccin a la programacin Funcional
Caractersticas habituales de los lenguajes funcionales
Introduccin a los tipos abstractos. Estructuras Bsicas y representaciones lineales.
rboles
Tablas hash
Grafos
El estilo de programacin funcional. Programacin Imperativa vs Programacin Funcional. Funciones puras e impuras. Ventajas de la
Programacin Funcional.
Introduccin a Haskell. Tipos bsicos. Listas y tuplas. Definiciones de funciones. Patrones. Funciones definidas parcialmente. Evaluacin de
expresiones. Ordenes de reduccin (normal, aplicativo y perezoso). GHC y GHCi.
Polimorfismo y sobrecarga. Tipos numricos. Parcializacin. Definiciones locales. Eficiencia. Parmetros Acumuladores.
Tipos Algebraicos. Induccin sobre Listas y otras estructuras algebraicas. Correccin de funciones. Pruebas con QuickCheck.
Programacin con funciones de orden superior. Composicin de funciones, map, filtros, plegados. Secuencias Aritmticas y Listas por
Comprensin.
Sobrecarga: introduccin a las clases de tipos. Mdulos
Tipos de datos concretos y tipos de datos abstractos. Especificacin de un tipo abstracto. Ejemplos.
Pilas, colas, colas con prioridad, listas, conjuntos, multiconjuntos y diccionarios (asociaciones). Implementaciones lineales de los tipos bsicos en
un LF y en un LOO. Iteradores sobre listas. Aplicaciones tpicas: evaluacin de expresiones.
rboles. Definiciones y terminologa. Representacin y operaciones en un LF.
rboles binarios. Autnticos , perfectos y completos. Relacin entre el nmero de nodos y la altura. Recorrido recursivo de rboles binarios.
Montculos. Propiedad de orden del montculo (Heap-Order Prop.) Montculo binario. Implementacin en un LOO va arrays. Montculos zurdos.
Invariante y propiedades. Mezcla, implementacin de las operaciones y complejidad . Representacin e implementacin en un LF y en un LOO.
Representacin de Colas de prioridad con montculos. Construccin de un montculo en tiempo lineal. Heap Sort.
rboles binarios de bsqueda. Invariante y propiedades. Insercin, bsqueda y eliminacin en un ABB. Complejidad. Representacin e
implementacin en un LF y en un LOO. Tree Sort. Recorridos va iteradores.
rboles equilibrados. rboles AVL: Invariante y propiedades. Rotaciones. Insercin, bsqueda y eliminacin. complejidad . Representacin e
implementacin en un LF y en un LOO.
Implementacin de diccionarios va rboles de bsqueda. Complejidad.
Hashing. Colisiones. Funciones Hash; congruencia modular, polinmica. Resolucin de colisiones. Encadenamiento separado y Prueba lineal.
Factor de carga, rendimiento y reubicacin (rehashing).
Grafos dirigidos y no dirigidos. Terminologa y propiedades fundamentales. Representacin e implementaciones en un LF y en LOO. Exploracin
de grafos. Exploracin en profundidad y en anchura. Implementacin de los algoritmos en un LF y en LOO. Propiedades de los algoritmos de
exploracin. Aplicaciones: conexin, deteccin de ciclos, coloreado. Orden topolgico y sus aplicaciones.
ACTIVIDADES FORMATIVAS
Actividades Presenciales

Actividades No Presenciales

Actividades expositivas
Actividades prcticas en instalaciones especficas
Actividades de discusin, debate, etc.
Leccin magistral
Prcticas en laboratorio
Discusiones
Vicerrectorado de Ordenacin Acadmica
21/06/14
2013
GUA DOCENTE DE LA
ASIGNATURA
Pgina 3 de 5
Actividades No Presenciales

Actividades de documentacin
Actividades prcticas
Estudio personal
Bsqueda bibliogrfica/documental
Resolucin de problemas
Estudio personal
ACTIVIDADES DE EVALUACIN
RESULTADOS DE APRENDIZAJE / CRITERIOS DE EVALUACIN
- Entender los distintos conceptos y tipos de datos: concretos, algebraicos y abstractos.
- Identificar las fortalezas y debilidades del paradigma de programacin funcional comparndolas con las del paradigma orientado a objetos,
sabiendo eligir las soluciones ms apropiadas a distintos problemas utilizando ambos paradigmas, enfatizando la sencillez, la comprensin y la
eficiencia.
- Conocer e implementar las estructuras de datos fundamentales en un lenguaje orientado a objetos y en un lenguaje funcional. En particular, en los
lenguajes Java y Haskell.
- Aplicar los algoritmos fundamentales utilizando las distintas formas de representacin de tipos algebraicos y abstractos, en un lenguaje orientado a
objetos y en un lenguaje funcional.
- Conocer y saber aplicar las tcnicas apropiadas (y en particular las tcnicas de induccin) para el estudio de la complejidad y correccin de las
estructuras de datos, as como de los algoritmos sobre stas.
- Identificar los principales patrones de cmputo y estructuras, abstraerlos e implementarlos usando parametrizacin, funciones de orden superior y
polimorfismo.
PROCEDIMIENTO DE EVALUACIN
La asistencia a las clases de teora y a los laboratorios es obligatoria. Las posibles faltas puntuales debern ser justificadas.
Para aprobar la asignatura en cualquiera de las dos convocatorias ordinarias ser necesario obtener al menos 5 puntos sumando las calificaciones
obtenidas por cada una de las siguientes componentes:
- CC (Componente continua, para aquellos alumnos que realicen las prcticas y ejercicios programados durante el curso): hasta un mximo de 4
puntos, puntuables por los siguentes items: ejercicios y trabajo personal, tareas programadas en las prcticas de laboratorio, controles programados y
espordicos. La ponderacin de cada uno de los items se publicar al principio del curso.
- EF (Examen final), valorado sobre 10 puntos menos la calificacin obtenida por el apartado CC. Este examen se realizar el da establecido por el
centro y evaluar de modo exhaustivo todos los contenidos tericos y prcticos de la asignatura.
Para aprobar la asignatura en el resto de convocatorias extraordinarias ser necesario responder correctamente el 50% de los contenidos del examen
a celebrar siguiendo el calendario de exmenes fijado por el centro.
Con objeto de evaluar la componente continua CC, durante las clases de teora y en los laboratorios, el profesor propondr trabajos y ejercicios que el
alumno deber entregar resueltos de modo satisfactorio en tiempo y forma, siguiendo las instrucciones que se determinen. Ciertos ejercicios y todas
las prcticas de laboratorio debern resolverse en ordenador, por lo que ser imprescindible un conocimiento suficiente de los lenguajes y entornos
de programacin utilizados en los laboratorios.
BIBLIOGRAFA Y OTROS RECURSOS
Bsica
Algorithms: a functional programming approach; Fethi Rabbi y Guy Lapalme; Addison; 1999
Algorithms; Robert Sedgewick y Kevin Wayne; Addison-Wesley; 2011
Data Structures & Algorithms in Java; Michael T. Goodrich y Roberto Tamassia; John Wiley & Sons; 2006
Introduccin a la Programacin Funcional; Richard Bird; 2000
Introduction to Algorihms; T.H. Cormen, C.E. Leiserson, R.L. Rivest y C. Stein; McGraw-Hill; 2010
Material elaborado para la asignatura (transparencias, listados de ejercicios, cdigos ....) disponibles en el Campus Virtual
Razonando con Haskell; Blas Ruiz, Fco. Gutirrez, Pablo Guerrero y Jos Gallardo; Thomson; 2004
DISTRIBUCIN DEL TRABAJO DEL ESTUDIANTE
ACTIVIDAD FORMATIVA PRESENCIAL
Descripcin Horas Grupo grande
Leccin magistral
Prcticas en laboratorio
41,4
18,6
TOTAL HORAS ACTIVIDAD FORMATIVA PRESENCIAL 60
ACTIVIDAD FORMATIVA NO PRESENCIAL
Grupos reducidos
Vicerrectorado de Ordenacin Acadmica
21/06/14
2013
GUA DOCENTE DE LA
ASIGNATURA
Pgina 4 de 5
Descripcin Horas Grupo grande
Resolucin de problemas
Bsqueda bibliogrfica/documental
Discusiones
Estudio personal
30
5
5
30
Descripcin Horas
TOTAL HORAS ACTIVIDAD FORMATIVA NO PRESENCIAL
TOTAL HORAS ACTIVIDAD EVALUACIN
TOTAL HORAS DE TRABAJO DEL ESTUDIANTE
75
15
150
Grupos reducidos

S-ar putea să vă placă și