Acceder a la página principal de la ETSEImagen decorativa
Algoritmos y estruc. de datos I / Fund. de programación II  

Programa de la asignatura

Objetivos

Los alumnos deben llegar a tener conocimiento de programación estructurada y de las estructuras de datos fundamentales, tanto desde el punto de vista del modelo teórico como de su representación en un lenguaje de programación.

Temario

  1. Algoritmos y programas
    • Introducción
    • Concepto de algoritmo
    • Análisis, diseño y programación de algoritmos
    • Representación de algoritmos
  2. Lenguajes de programación
    • Introducción a los lenguajes de programación
    • Lenguajes de bajo y alto nivel
    • Paradigmas de programación
    • Historia de los lenguajes de alto nivel
    • Traductores e intérpretes
  3. Programación en lenguajes de alto nivel
    • Características de un lenguaje de programación de alto nivel
    • Concepto de variable y constante
    • Tipos simples de datos
    • Expresiones
    • Estructura general de un programa
  4. Programación estructurada
    • Introducción. Teorema de la programación estructurada
    • Diseño de programas estructurados
    • Estructura secuencial
    • Estructura condicional
    • Estructura iterativa
  5. Subprogramas. Programación modular
    • Definición de módulo. Programación modular
    • Definición de subprogramas: Funciones
    • Ámbito de identificadores
    • Parámetros de un subprograma
    • Recursividad
    • Compilación separada
  6. Tipos de datos estructurados
    • Introducción
    • Vectores y matrices
    • Cadenas de caracteres
    • Estructuras
    • Equivalencia de tipos
  7. Ficheros
    • Concepto de fichero
    • Tipos de acceso
    • Ficheros binarios y ficheros de texto
    • Ficheros lógicos y ficheros físicos
    • Procesamiento de ficheros
  8. Gestión dinámica de memoria
    • Tipo de dato puntero
    • Asignación y liberación de memoria
    • Operaciones con punteros
    • Paso de parámetros por referencia mediante punteros
    • Relación entre vectores y punteros
    • Vectores dinámicos
    • Apuntes de programación - Errores frecuentes
  9. Introducción al estudio de algoritmos y su complejidad
    • Definición de complejidad y su medida
    • Recuperación de información: Búsqueda
    • El problema de la ordenación. Métodos de ordenación interna
  10. Tipos abstractos de datos
    • Tipos de datos
    • Estructuras de datos
    • Tipos abstractos de datos
    • Apuntes de programación - Clases en C++
  11. Pilas
    • Fundamentos
    • Representación
    • Aplicaciones
    • Apuntes de programación - Constructores y destructores de clase
  12. Colas
    • Fundamentos
    • Representación
    • Aplicaciones
  13. Listas (listas con punto de interés)
    • Fundamentos
    • Representación
    • Aplicaciones
    • Mejoras en la representación de listas enlazadas
    • Listas generalizadas
  14. Árboles
    • Fundamentos y terminología básica
    • Árboles binarios
    • Representación de los árboles binarios
    • Operaciones básicas
    • Recorrido de árboles binarios
    • Otras operaciones con árboles binarios
    • Árboles binarios hilvanados
    • Tipos especiales de árboles binarios: Árboles binarios de búsqueda y Montículos
    • Apuntes de programación - this / Comentarios acerca de new y delete
  15. Grafos
    • Fundamentos y terminología básica
    • Representación
    • Recorrido de grafos

[^subir]

Bibliografía

Resolución de problemas con C++
Savitch. Prentice Hall, 2000 (CI 681.3.06 SAV)

C++: Cómo programar
M. Deitel, P.J. Deitel, P.J. . Prentice Hall, 1999 (CI 681.3.06 DEI)

Programación en C++ : Algoritmos, estructuras de datos y objetos
Joyanes. MacGraw-Hill, 1999 (CI 681.3.06 JOY)

Data Structures and Algorithm Analysis in C++
A. Weiss. Addison-Wesley, 1999 (CI 681.3.06 WEI)

Estructuras de datos y algoritmos
V. Aho, J.E. Hopcroft, J.D. Ullman. Addison-Wesley, 1988 (CI 519.6 AHO)

Fundamentals of Data Structures in Pascal
Horowitz, S. Sanhi. Computer Science Press, 1990 (CI 681.3.06 HOR)

Estructuras de datos en C y C++
Langsam, M.J. Augenstein, A.M. Tenenbaum. Prentice Hall, 1997 (CI 681.3.06 C)

Estructuras de datos, algoritmos y programación orientada a objetos
L. Heileman. Mc Graw-Hill, 1998 (CI 681.3.06 HEI)

[^subir]

Método de evaluación

En primera convocatoria:

  • Examen escrito de teoría (70% de la nota final). Sabiendo que existirá un examen parcial en febrero que abarcará los temas impartidos durante el primer cuatrimestre del curso. Este examen permitirá eliminar materia a los alumnos que obtengan una calificación superior a 4 (sobre 10) y su peso sobre la valoración del apartado teórico será de un 30%, estando el 70% restante asociado con la materia del segundo cuatrimestre.
  • Evaluación del trabajo realizado en el laboratorio (30% de la nota final). Este apartado consta de la evaluación del trabajo realizado durante las sesiones (70% de la nota de prácticas) y un examen escrito individual sobre dicho trabajo (30% de la nota de prácticas). En el examen escrito hace falta obtener un mínimo de 3.5 para promediar. La asistencia a las prácticas es obligatoria y es imprescindible entregar todos los trabajos propuestos.
  • Se requiere un 4 (sobre 10) como nota mínima en cada uno de los dos apartados anteriores para promediar y poder aprobar la asignatura.

En segunda convocatoria:

  • Examen escrito sobre el temario de teoría.
  • Examen escrito sobre el trabajo práctico de laboratorio.
  • Sólo se deberán realizar ambos exámenes si se obtuvo un nota inferior a 5 (sobre 10) en las dos partes en la primera convocatoria. En caso contrario, sólo se deberá realizar el examen de la parte suspendida.
  • Se mantiene la relación de 70% para teoría y 30% para laboratorio sobre la calificación final y la nota mínima (4) en cada parte.

Todos los cursos hay un subgrupo especial de laboratorio (subgrupo 99) en el que podrán estar incluidos aquellos alumnos que, habiendo suspendido la asignatura durante el curso anterior, cumplan las siguientes condiciones:

  • Haber obtenido, durante el curso inmediatamente anterior, una nota mayor o igual a 5 (sobre 10) en la valoración total del trabajo de laboratorio de la asignatura (si la nota del examen de laboratorio fue superior a 4 y la media entre la nota del examen de laboratorio y la nota de las prácticas fue igual o superior a 5.)
  • Haberse presentado a alguna de las dos convocatorias del examen de teoría y haber obtenido al menos una nota de 2 (sobre 10) en alguna de ellas.

Si en el curso actual un alumno del subgrupo 99 suspende de nuevo la asignatura estará obligado a repetir los trabajos de laboratorio en el siguiente curso en el que se matricule.

[^subir]


[Última modificación: 14 febrero 2005]