Tópicos de programación avanzada
COMPUTACIÓN DE ALTO DESEMPEÑO, PROCESAMIENTO MULTIMEDIA

Tópicos de programación avanzada

ACERCA DEL CURSO

El fin del curso es enseñar un panorama general de las técnicas de análisis y diseño, las principales estructuras de datos que sustentan la instrumentación de algoritmos y un recorrido por distintos tipos de algoritmos.

En este curso se estudiarán técnicas avanzadas de programación de computadoras, con énfasis en la programación orientada a objetos, desarrollo de estructuras de datos, estructuras de control, referencias, arreglos, clases, conceptos de estructuras de datos, conceptos importantes de recursión su implementación y su aplicación al desarrollo de algoritmos. Se tocará también temas de herencia, interfaces. Se estudiarán distintos problemas clásicos (por ejemplo, búsqueda y ordenamiento) y soluciones comunes, además de conceptos básicos de estructuras de datos y estructuras de datos básicas.
UNIRSE AL CURSO

Plan de Aprendizaje

  • Análisis de algoritmos
    1. Repaso a estructuras de datos básicas
    2. Análisis de algoritmos por asíntotas
    3. Análisis amortizado
  • Métodos de diseño de algoritmos
    1. Perspectivas de diseño
    2. Dividir/Combinar
    3. Algorítmos ávidos
    4. Programación dinámica
  • Estructuras de datos de soporte a los algoritmos
    1. Grafos y digrafos
    2. Heaps
  • Grafos y algoritmos
    1. Nociones fundamentales, recorridos y aplicaciones
    2. Grafos dirigidos
      1. Conectividad
      2. Ordenamiento topológico
    3. Árboles abarcadores mínimos
    4. Caminos mínimos
  • Patrones de Diseño

 

Objetivos del curso

Objetivos, temas y tareas en los que se envuelve este curso le permitirán, entre otras cosas:

  • Conocer en términos generales lo que representa la disciplina de computación con sus áreas fundamentales.
  • Según problemas que se estudien en cada área o tema y experimentar gracias al desarrollo de programas para resolver los mismos.
  • Conocer las operaciones fundamentales que puede llevar a cabo la computadora, lo que implicará, implícita o explícitamente, el tipo de instrucción que se puede esperar en un algoritmo a ser ejecutado por la computadora.
  • Poder entender programas escritos en cualquier lenguaje de programación y poder entender otras instrucciones y partes del lenguaje no discutidas en clase: sus reglas gramaticales y su efecto al ser ejecutadas por la computadora (lo que ésta hace cuando las ejecuta).
  • Poder desarrollar algoritmos para resolver problemas de complejidad mediana en los que se requieran estructuras de datos simples y técnicas de programación básicas, y codificar dichos algoritmos.
  • Conocer sobre aplicaciones comunes en las que la computadora es de gran utilidad y distintas técnicas para trabajar con problemas relacionados: (por ejemplo, ordenamiento y búsqueda de datos).

 

Bibliografía

  • Tejiendo Algoritmos – Leandro Rabindranath Leon
  • Graph Theory and Its Applications – Gross and Yellen – Chapman and Hall/CRC. ISBN: 978-1584885054
  • Algorithms in C, Part 5: Graph Algorithms, 3rd Edition – Sedgewick – Addison-Wesley Professional. -10: 0-201-31663-3
  • Combinatorial Optimization: Algorithms and Complexity – Christos H. Papadimitriou and Kenneth Steiglitz – Dover Publications. ISBN-10: 0486402584
  • Introduction to Algorithms – Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein – The MIT Press – ISBN-10: 0262033844

 

Docentes

 

Dr(c). Cristian José López Del Alamo
Phone: +51 054 282700 +51 054 285298
Fax: citec@unsa.edu.pe
Francisco Velasco 125
Parque Industrial de Arequipa