Este es el tercer curso de programación en la carrera de Ingeniería de Sistemas. Se enfatiza en estructuras de datos, que permitan organizar en memoria principal conjuntos de datos, de tal manera de manejarlos efectiva y eficientemente según el problema que se trate. Del mismo modo, en este curso se enseñan las técnicas básicas de diseño y análisis de algoritmos.

  • Instructor: Leandro Rabindranat Leon - lrleon punto ula punto ve
  • Preparador: Erik Velasquez - velasquezerik at ula punto ve
  • Delegado: Freddy Marrero - fredmarrerosvp at hotmail punto com

Reuniones de proyecto: gerentes, ayudante docente y profesor: los viernes de 5-6 pm en CEMISID. Asistencia obligatoria

Foro de discusión para el proyecto

Para el curso se emplea la biblioteca Aleph. La versión fuente más reciente puede descargarse de aquí.


Últimas noticias

  • 27/09/2011: Notas definitivas aquí.
  • 30/6/2011: Notas 1er parcial
  • 13/4/2011: forma para el proyecto aquí. Cada grupo debe llenarla y firmarla.
  • 12/4/2011: personas que no tengan grupo deben consignar cuestionario lleno e impreso. Pulse aquí para descargarlo
  • 6/4/1011: Reunión gerentes proyecto: viernes 15 de abril.

Evaluación

Las evaluaciones, con sus porcentajes sobre la nota definitiva entre paréntesis, son las siguientes:

  • Tres exámenes parciales (50%): se elimina la peor calificación
  • Proyecto de programación (20%) bajo las siguientes condiciones:
    1. Grupos de máximo 6 personas. Cada grupo debe designar un "gerente" del proyecto, quien será el interlocutor y vocero del grupo
    2. Sistema operativo Linux, compilador GNU gcc, biblioteca Aleph
    3. Interfaz gráfica con biblioteca QT
    4. Fecha de entrega: jueves 19 de mayo de 2011
    5. Corrección proyecto:
      1. No compila o no cumple ningún requerimiento ==> cero de calificación
      2. Cumplimiento de requerimientos: 50%
      3. Manual del usuario: 10%
      4. Documento de diseño: 5%
      5. Estilo de codificación: 10%
      6. Interfaz usuario: 10%
      7. Nota apreciativa: 10%
      8. Pulse aquí para leer mis consideraciones sobre la importancia de hacer un proyecto y su evaluación
    6. Evaluación general de laboratorio (15%)
    7. Nota apreciativa (15%)

Programa

    1. Abstracción y programación: tipos dabstractos de datos, clases, herencia, polimorfismo, programación genérica
    2. Secuencias: arreglos, listas enlazadas, pilas, colas y recursión
    3. Análisis de algoritmos
      1. Notación O:
      2. Métodos de ordenamiento: selección, inserción, rápido (quicksort), mezcla (mergesort)
      3. Algoritmos dividir conquistar
    4. Árboles
      1. Definiciones generales: árbol, representaciones en memoria, árbol binario, recorridos, correspondencia entre árboles y árboles binarios.
      2. Algoritmos básicos
      3. Conceptos matemáticos
      4. Árboles binarios de búsqueda
      5. Árboles binarios con rango
      6. Heaps
      7. Treaps
      8. Árboles binarios de búsqueda aleatorizados
    5. Tablas Hash
      1. Conceptos generales
      2. Estrategias de manejo de colisiones
      3. Diseño de funciones hash
      4. Tablas hash lineales

Bibliografía

  • Tejiendo Algoritmos - Leandro Rabindranath Leon
  • Estructura de datos y algoritmos - Alfred V. Aho, John E. Hopcroft, Jefrey D. Ullman - Addison-Wesley. Iberoamericana: Sistemas Técnicos de Edición, 1988. ISBN 968-6048-19-7
  • Programming Pearls - Jon Bentley. Addison-Wesley Professional. ISBN-10: 0201657880

Todas las estructuras de datos y algoritmos enseñados en este curso están disponibles en la biblioteca Aleph.


Otros

  • Horarios: lunes y miércoles de 10 AM a 12 PM
  • Laboratorio: sábados de 8 - 10 AM
  • Lista de clase
 
 

PR-3 A 2011