Algoritmos y Estructuras de Datos
(Curso Académico 2018 - 2019)
Mostrar Todo


Nota informativa: Atendiendo a la normativa de Protección de Datos y propiedad intelectual en la que se limita la publicación de imágenes de terceras personas sin su consentimiento, aquellos que difundan grabaciones de las sesiones de clase sin previo consentimiento de las personas implicadas, serán responsables ante la ley del uso prohibido de las citadas grabaciones.



1. Datos descriptivos de la asignatura
  • Código: 139261021
  • Centro: Escuela Superior de Ingeniería y Tecnología
  • Lugar de impartición: 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: Segundo cuatrimestre
  • Créditos ECTS: 6,0
  • Modalidad de impartición: Presencial
  • Horario: Ver horario
  • Dirección web de la asignatura: Ver web de la asignatura
  • 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: MARCOS ALEJANDRO COLEBROOK SANTAMARIA

Grupo: Teoría, problemas, prácticas y tutorías
Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
Tutorías Primer cuatrimestre:
HorarioLugar
Lunes 16:00-18:00 (virtual), martes 16:30-18:00, y miércoles 16:00-18:30. El horario de tutorías es orientativo y prevalecerá el que se ponga en el aula virtual de la asignatura. 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. Escuela Superior de Ingeniería y Tecnología (área de despachos)
Tutorías Segundo cuatrimestre:
HorarioLugar
Lunes y viernes 14:30-16:30, y martes 14:30-16:30 (virtual). El horario de tutorías es orientativo y prevalecerá el que se ponga en el aula virtual de la asignatura. Las dos horas del martes 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. Escuela Superior de Ingeniería y Tecnología (área de despachos)
Teléfono (despacho/tutoría): 922845053
Correo electrónico: mcolesan@ull.es
Web docente: Ver web del docente
Grupo: Teoría, problemas, prácticas y tutorías
Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
Tutorías Primer cuatrimestre:
HorarioLugar
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. Escuela Superior de Ingeniería y Tecnología (área de despachos)
Tutorías Segundo cuatrimestre:
HorarioLugar
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. Escuela Superior de Ingeniería y Tecnología (área de despachos)
Teléfono (despacho/tutoría): 922845040
Correo electrónico: jriera@ull.es
Web docente: Ver web del docente
Grupo: Prácticas y tutorías
Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
Tutorías Primer cuatrimestre:
HorarioLugar
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. Torre profesor Agustín Arévalo, Segunda Planta
Tutorías Segundo cuatrimestre:
HorarioLugar
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. Torre profesor Agustín Arévalo, Segunda Planta
Teléfono (despacho/tutoría): 922845993
Correo electrónico: aperez@ull.es
Web docente: Ver web del docente

Profesor/a: ISRAEL LOPEZ PLATA

Grupo: Prácticas y tutorías
Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
Tutorías Primer cuatrimestre:
HorarioLugar
El horario de tutorías es orientativo y prevalecerá el horario que aparezca en el campus virtual. Lunes de 17:00 a 20:00 y martes de 16:00 a 19:00. Laboratorios DSIC 3 y 4.
Tutorías Segundo cuatrimestre:
HorarioLugar
El horario de tutorías es orientativo y prevalecerá el horario que aparezca en el campus virtual. Lunes, martes y miércoles, de 16:00 a 18:00. Laboratorios DSIC 3 y 4.
Teléfono (despacho/tutoría):
Correo electrónico: ilopezpl@ull.edu.es
Web docente: Ver web del docente
Grupo: Prácticas y tutorías
Área de conocimiento: Ciencia de la Computación e Inteligencia Artificial
Tutorías Primer cuatrimestre:
HorarioLugar
Lunes de 9:00-12:00, jueves de 9:30-12:30. Despacho de la 2ª planta de la ESIT - Secc. Ingeniería Informática
Tutorías Segundo cuatrimestre:
HorarioLugar
Lunes y jueves de 10:30-12:00, miércoles de 9:00-12:00. Despacho de la 2ª planta de la ESIT - Secc. Ingeniería Informática
Teléfono (despacho/tutoría): 922845047
Correo electrónico: enielsen@ull.es
Web docente: Ver web del docente
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

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 alumnado 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 alumnado, 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 0,00 30,0 [CG8], [CG9], [C12], [C13], [C14], [T13], [T21], [T23], [T25]
Clases prácticas (aula / sala de demostraciones / prácticas laboratorio) 17,00 0,00 17,0 [CG8], [CG9], [C12], [C13], [C14], [T9], [T12], [T13], [T21], [T23], [T25]
Realización de seminarios u otras actividades complementarias 2,00 7,00 9,0 [T7], [T9]
Realización de trabajos (individual/grupal) 0,00 28,00 28,0 [CG8], [CG9], [C12], [C13], [C14], [T1], [T12], [T13], [T16], [T20]
Estudio/preparación de clases teóricas 0,00 10,00 10,0 [CG8], [CG9], [C12], [C13], [C14], [T1], [T12], [T13], [T16], [T20]
Realización de exámenes 4,00 0,00 4,0 [T25]
Asistencia a tutorías 7,00 0,00 7,0 [C12], [C13], [C14], [T9], [T12]
Estudio autónomo individual o en grupo 0,00 45,00 45,0 [C12], [C13], [C14], [T1], [T12], [T16], [T20]
Total horas 60.0 90.0 150.0
Total ECTS 6,00
8. Bibliografía / Recursos

Bibliografía básica

Jesse Liberty, Rogers Cadenhead (2011) "Sams Teach Yourself C++ in 24 Hours" Pearson Education (5th Edition) 
L. Joyanes Aguilar (2008), \"Fundamentos de Programación. Algoritmos y Estructuras de Datos\", McGraw-Hill, 4ª ed.
M. Olsson (2015), \"C++ 14 Quick Syntax Reference\", Ed. Apress.

Bibliografía complementaria

B. Stroustrup (2002), \"El Lenguaje de Programación C++\", Addison Wesley.
G. Brassard, P. Bratley (1997), \"Fundamentos de Algoritmia\", Prentice Hall.

Otros recursos

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 alumnado, 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 alumnado 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 alumnado 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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
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.00
Semana 16 a 18: Evaluación Evaluación y trabajo autónomo del alumno para la preparación de la evaluación 3.00 0.00 3.00
Total 60.00 90.00 150.00
Fecha de última modificación: 04-07-2018
Fecha de aprobación: 06-07-2018