Versión imprimible Curso Académico
Algoritmos y Estructuras de Datos
Curso 2017/18
1. Datos Descriptivos de la Asignatura
ASIGNATURA: Algoritmos y Estructuras de Datos CÓDIGO: 139261021
- Centro: Escuela Superior de Ingeniería y Tecnología
- Titulación: Grado en Ingeniería Informática
- Plan de Estudios: 2010 (publicado en 21-03-2011)
- Rama de conocimiento: Ingeniería y Arquitectura
- Itinerario/Intensificación:
- Departamento/s: - Área/s de conocimiento:
  • Ciencia de la Computación e Inteligencia Artificial
  • Lenguajes y Sistemas Informáticos
- Curso: 1
- Carácter: Obligatoria
- Duración: Cuatrimestral
- Créditos ECTS: 6.0
- Horario: http://www.ull.es/view/centros/etsii/Primero_5/es
- Dirección web de la asignatura: http://www.campusvirtual.ull.es
- Idioma: Español


2. Requisitos para cursar la asignatura
No existen requisitos para cursar la asignatura


3. Profesorado que imparte la asignatura
Profesor/a Coordinador/a: JORGE RIERA LEDESMA
- Grupo: Teoría, problemas, prácticas y tutorías
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
- Lugar Tutoría: Escuela Superior de Ingeniería y Tecnología (área de despachos)
- Horario Tutoría: El horario de tutorías es orientativo y prevalecerá el horario que aparezca en el campus virtual. Martes, miércoles y jueves de 10:00 a 12:00.
- Teléfono (despacho/tutoría): 922845040
- Correo electrónico: jriera@ull.es
- Dirección web docente: http://www.campusvirtual.ull.es
Profesor/a: MARCOS ALEJANDRO COLEBROOK SANTAMARIA
- Grupo: Teoría, problemas, prácticas y tutorías
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
- Lugar Tutoría: Escuela Superior de Ingeniería y Tecnología (área de despachos)
- Horario Tutoría: El horario de tutorías es orientativo y prevalecerá el horario que aparezca en el campus virtual. Lunes 11:30-12:30, 14:00-16:00 (virtual), y martes de 11:30-12:30, 14:00-16:00. Las dos horas del lunes por la tarde serán online debido a la participación en el Programa de Apoyo a la Docencia Presencial mediante Herramientas TIC, modalidad B Tutorías Online. Para llevar a cabo la tutoría online, se utilizará la herramienta Chat del Moodle.
- Teléfono (despacho/tutoría): 922845053
- Correo electrónico: mcolesan@ull.es
- Dirección web docente: http://www.campusvirtual.ull.es
Profesor/a: ALEJANDRO PEREZ NAVA
- Grupo: Prácticas y tutorías
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
- Lugar Tutoría: Torre profesor Agustín Arévalo, Segunda Planta
- Horario Tutoría: Presenciales Jueves de 16:00 a 20:00 Virtuales (Skype) Lunes de 09:00 a 11:00. Cualquier alteración sobrevenida se avisará a través del campus virtual.
- Teléfono (despacho/tutoría): 922845993
- Correo electrónico: aperez@ull.es
- Dirección web docente: http://www.campusvirtual.ull.es
Profesor/a: ISRAEL LOPEZ PLATA
- Grupo: Prácticas y tutorías
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
- Lugar Tutoría: Laboratorios DSIC 3 y 4.
- Horario Tutoría: El horario de tutorías es orientativo y prevalecerá el horario que aparezca en el campus virtual. Martes y miércoles, de 16:00 a 18:00.
- Teléfono (despacho/tutoría):
- Correo electrónico: ilopezpl@ull.edu.es
- Dirección web docente: http://www.campusvirtual.ull.es
Profesor/a: JOSE LUIS GONZALEZ AVILA
- Grupo: Prácticas y tutorías
- Departamento: Ingeniería Informática y de Sistemas
- Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
- Lugar Tutoría: Escuela Superior de Ingeniería y Tecnología (área de despachos)
- Horario Tutoría: Miércoles y Jueves 14:00-17:00. Cualquier cambio sobrevenido se anunciará en el campus virtual.
- Teléfono (despacho/tutoría):
- Correo electrónico: jlgavila@ull.es
- Dirección web docente: http://www.campusvirtual.ull.es


4. Contextualización de la asignatura en el plan de estudio
- Bloque formativo al que pertenece la asignatura: Fundamentos Tecnológicos de Ingeniería Informática
- Perfil profesional: Ingeniero Técnico en Informática


5. Competencias
Competencias Específicas
[C12] Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
[C13] Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.
[C14] Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
Competencias Generales
[CG8] Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
[CG9] Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
Transversales
[T1] Capacidad de actuar autónomamente.
[T7] Capacidad de comunicación efectiva (en expresión y comprensión) oral y escrita, con especial énfasis en la redacción de documentación técnica.
[T9] Capacidad para argumentar y justificar lógicamente las decisiones tomadas y las opiniones.
[T12] Capacidad de relación interpersonal.
[T13] Capacidad para encontrar, relacionar y estructurar información proveniente de diversas fuentes y de integrar ideas y conocimientos.
[T16] Capacidad de planificación y organización del trabajo personal.
[T20] Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
[T21] Capacidad para el razonamiento crítico, lógico y matemático.
[T23] Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales.
[T25] Capacidad de análisis, síntesis y evaluación.


6. Contenidos de la asignatura
Contenidos teóricos y prácticos de la asignatura
MÓDULO I
0. INTRODUCCIÓN. ALGORITMOS Y ESTRUCTURAS DE DATOS
¿Qué es un Algoritmo? Definición formal de algoritmo. Ejemplos de Algoritmo. Representación de un Algoritmo.

1. REPASO
Estructuras selectivas. Estructuras repetitivas. Estructuras de datos. Vectores, estructuras, uniones. Gestión dinámica de la memoria. Memoria dinámica y punteros. Subprogramas. Funciones. Objetos. Clases y objetos. Funciones. Sobrecarga de funciones. Ficheros.


MÓDULO II
2. ALGORITMOS SOBRE MATRICES DENSAS Y DISPERSAS
Comparación de números enteros. Comparación de números reales. Recorrido de un vector. Búsqueda secuencial de un elemento. Contabilización del número de ocurrencias de un elemento dentro de un vector. Búsqueda del menor o mayor. Suma de los elementos de un vector. Suma de los elementos pares de un vector. Suma de los elementos impares e un vector. Comparaciones con elementos reales. Producto escalar de vectores. Implementación de una matriz sobre un vector. Recorrido de una matriz por filas. Recorrido de una matriz por columnas. Suma de los elementos de la matriz. Suma de los elementos tales que la suma de los índices es par. Recorrido de la diagonal principal. Recorrido de la diagonal secundaria. Recorrido de la submatriz triangular inferior. Recorrido de la submatriz triangular superior. Suma de matrices. Producto de matrices. Obtención de submatrices. Representación de matrices escasas. Multiplicación de matrices escasas.


MÓDULO III
3. TIPO ABSTRACTO DE DATOS LISTA ENLAZADA.
Especificación formal del TAD lista. Implementación del TAD lista mediante estructuras estáticas. Implementación del TAD lista mediante objetos dinámicos. Operaciones sobre listas simplemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada.

4. TIPO ABSTRACTO DE DATOS LISTA DOBLEMENTE ENLAZADA.
Especificación formal del TAD lista doblemente enlazada. Implementación del TAD lista doblemente enlazada mediante objetos dinámicos. Operaciones sobre listas doblemente enlazadas: inserción, extracción, recorrido y búsqueda. Implementación de una lista ordenada. Implementación de una lista circular.

5. TIPO ABSTRACTO DE DATOS PILA.
Especificación formal del TAD pila. Implementación del TAD pila mediante estructuras estáticas. Implementación del TAD pila mediante objetos dinámicos. Evaluación de expresiones aritméticas mediante pilas.

6. TIPO ABSTRACTO DE DATOS COLA.
Especificación formal del TAD cola. Implementación del TAD cola mediante estructuras estáticas. Implementación del TAD cola mediante objetos dinámicos.


MÓDULO IV
7. RECURSIVIDAD Y BACKTRACKING.
Concepto de recursividad. Tipos recursivos de datos. Simulación de recursividad mediante una pila. Diseño de algoritmos recursivos. Eliminación de la recursividad. Divide y vencerás. Búsqueda exhaustiva sistemática. Proceso general de los algoritmos "vuelta atrás".


MÓDULO V
8. ALGORITMOS SOBRE CONJUNTOS
Representación de conjuntos. Inserción de elementos en un conjunto. Eliminación de elementos en un conjunto. Unión de conjuntos. Intersección de conjuntos. Diferencia de conjuntos. Diferencia simétrica de conjuntos.
Actividades a desarrollar en otro idioma
- Profesor/a:
-Temas (epígrafes):


7. Metodología y volumen de trabajo del estudiante
Descripción
La asignatura se desarrollará en torno una parte teórica y una pare práctica. La parte teórica consistirá en clases magistrales con resolución de problemas.

Durante la ejecución de la parte práctica, el alumno debe seguir un guión que le conducirá al desarrollo de diverso código informático en lenguaje de programación C++. La ejecución de dichos códigos deberá quedar plasmada en los informes que elabore el alumno, y que deberán ser entregado en el aula virtual. Posteriormente, el profesorado de la asignatura evaluará la consecución de los objetivos fijados en los guiones.


Actividades formativas en créditos ECTS, su metodología de enseñanza-aprendizaje y su relación con las competencias que debe adquirir el estudiante
Actividades formativas Horas presenciales Horas de trabajo autónomo Total Horas Relación con competencias
Clases teóricas  30.00      30  [CG8], [CG9], [C12], [C13], [C14], [T21], [T23], [T25]
Clases prácticas (aula / sala de demostraciones / prácticas laboratorio)  17.00      17  [CG8], [CG9], [C12], [C13], [C14], [T9], [T12], [T21], [T23], [T25]
Realización de seminarios u otras actividades complementarias  2.00   7.00   9  [T7], [T9]
Realización de trabajos (individual/grupal)     28.00   28  [CG8], [CG9], [C12], [C13], [C14], [T1], [T12], [T16], [T20]
Estudio/preparación clases teóricas     10.00   10  [CG8], [CG9], [C12], [C13], [C14], [T1], [T12], [T13], [T16], [T20]
Realización de exámenes  4.00      4  [T25]
Asistencia a tutorías  7.00      7  [C12], [C13], [C14], [T9], [T12]
Estudio autónomo individual o en grupo     45.00   45  [C12], [C13], [C14], [T1], [T12], [T16], [T20]
Total horas  60   90   150 
Total ECTS  6 


8. Bibliografía / Recursos
Bibliografía básica
N. Wirth (1993), "Algoritmos + Estructuras de Datos = Programas", Ediciones del Castillo.
L. Joyanes Aguilar (2008), "Fundamentos de Programación. Algoritmos y Estructuras de Datos", McGraw-Hill, 4ª ed.
Bibliografía complementaria
B. Stroustrup (2002), "El Lenguaje de Programación C++", Addison Wesley.
G. Brassard, P. Bratley (1997), "Fundamentos de Algoritmia", Prentice Hall.


9. Sistema de evaluación y calificación
Descripción
La Evaluación de la asignatura se rige por el Reglamento de Evaluación y Calificación de la Universidad de La Laguna (BOC de 19 de enero de 2016), o el que la Universidad tenga vigente, además de por lo establecido en la Memoria de Verificación inicial o posteriores modificaciones.

La evaluación del alumnado se realizará de acuerdo a los siguientes apartados:
1. Evaluación continua: seis trabajos prácticos individuales, entregados a lo largo de las clases prácticas de la asignatura.
2. Prueba final de evaluación.

La consecución de los objetivos se valorará de acuerdo con los siguientes criterios:
a. Evaluación continua (40%).
b. Realización de un examen final (60%).

Para proceder a la evaluación final del alumno, ambos apartados (a) y (b) contribuirán a la nota final si y sólo si se ha obtenido una calificación de al menos el 50% en el apartado (b). En caso contrario sólo se tendrá en cuenta la nota obtenida en el apartado (a).

La calificación alcanzada en el apartado (a) será válida para todas las convocatorias del curso académico en que ha sido obtenida.

El alumno podrá renunciar a la incorporación de las calificaciones de las pruebas superadas de la evaluación continua en la calificación final, al objeto de examinarse de nuevo de ellas. Esta renuncia habrá de comunicarse por escrito al profesorado antes del inicio del periodo de exámenes fijado en el calendario académico y, de efectuarse, tendrá carácter definitivo en las restantes convocatorias de ese curso. En caso de renuncia a la calificaciones de las pruebas superadas de la evaluación continua o de no haberlas superado, el alumno deberá realizar un examen práctico que suplirá la evaluación continua.

Estrategia Evaluativa
TIPO DE PRUEBA COMPETENCIAS CRITERIOS PONDERACIÓN
Pruebas objetivas  [CG8], [CG9], [C12], [C13], [C14], [T1], [T7], [T9], [T12], [T13], [T16], [T20], [T21], [T23], [T25]   • Nivel de conocimientos adquiridos
• Adecuación a lo solicitado
• Concreción en la redacción 
 60% 
Informes memorias de prácticas  [CG8], [CG9], [C12], [C13], [C14], [T1], [T7], [T9], [T12], [T13], [T16], [T20], [T21], [T23], [T25]   • Nivel de conocimientos adquiridos
• Adecuación a lo solicitado
 
 20% 
Valoración de las actividades prácticas en el laboratorio  [CG8], [CG9], [T1], [T7], [T9], [T12], [T13], [T16], [T21], [T23], [T25]   • Nivel de conocimientos adquiridos
• Adecuación a lo solicitado 
 20% 


10. Resultados de Aprendizaje
 Diseñar e implementar algoritmos en un lenguaje de programación para la resolución de problemas de diversa índole.
Desarrollar un código en un lenguaje de programación que recoja las especificaciones establecidas en los enunciados de práctica.
Desarrollar parcialmente algoritmos en un lenguaje de programación, de acuerdo con las especificaciones dadas en el aula. 


11. Cronograma / calendario de la asignatura
Descripción
 La asignatura participa en el Programa de Actividad Docente On-line Modalidad A, con la carga que se especifica en el cronograma.
La virtualización parcial de la asignatura (dos horas de sesenta) se desarrolla durante algunas prácticas. En ellas el alumno debe visualizar videos explicativos en lengua inglesa y española, y seguir un guión que le conducirá al desarrollo de diverso código informático en lenguaje de programación C++. La ejecución de dichos códigos deberá quedar plasmada en los informes que elabore el alumno, y que deberán ser entregado en el aula virtual. Posteriormente, el profesorado de la asignatura evaluará la consecución de los objetivos fijados en los guiones. 


Segundo Cuatrimestre
SEMANA Temas Actividades de
enseñanza aprendizaje
Horas
de trabajo
presencial
Horas
de trabajo
autónomo
Total
Semana 1:  Temas 0   Clases teóricas
Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 3.00   4.00   7 
Semana 2:  Tema 1

 
 Clases teóricas
Clases prácticas
Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 3:  Tema 1
Práctica 1
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 4:  Tema 2
Práctica 2
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 5:  Tema 2
Práctica 3 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 3.00   4.00   7 
Semana 6:  Temas 2
Práctica 4
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 7:  Temas 3
Práctica 5
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 8:  Tema 4
Práctica 6
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 9:  Tema 5
Prácticas 7
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 10:  Tema 6
Práctica 8
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 11:  Tema 7
Práctica 9
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 12:  Temas 7
Práctica 10
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 13:  Tema 8
Práctica 11
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   6.00   10 
Semana 14:  Tema 8
Práctica 12
 
 Clases teóricas
Clases prácticas
Realización de trabajos (individual/grupal) Estudio/preparación clases teóricas
Estudio autónomo individual o en grupo 
 4.00   7.00   11 
Semana 15:  Repaso    Repaso general de la asignatura
Ejercicios de repaso general de la asignatura Realización de exámenes de años anteriores 
 3.00   4.00   7 
Semanas 16 a 18:  Evaluación   Evaluación y trabajo autónomo del alumno para la preparación de la evaluación   3.00      3 
Total horas 60 90 150

Fecha de última modificación: 27-07-2017
Fecha de aprobación: 27-07-2017