Contenidos Mínimos:

Diseño Orientado a Objetos. Archivos formas de acceso y organización. Sobrecarga de funciones. Programación genérica. Plantillas. Standard Template Library. Recursividad. Graficación. OpenGL. Transformaciones gráficas bidimensionales y tridimensionales. Proyección. Programación gráfica. Cálculo Numérico: Resolución de ecuaciones no lineales. Sistemas de ecuaciones lineales. Interpolación. Ajuste. Aproximación. Derivación e integración numérica. Ecuaciones diferenciales ordinarias.

Contenidos Ampliados:

I – CLASES
Clases y objetos: Clases como un eficiente tipo de dato definido por el usuario. Definición de una clase. Datos miembros. Funciones miembro. Constructores. Función constructor por defecto. Función destructor. Prototipos de funciones miembros. Funciones miembro sobrecargadas. Ámbito de la clase, El puntero “this”. Instanciación de objetos. Especificación de acceso: privado y público. Encapsulamiento. Ocultamiento de información. Datos miembro privados y públicos. Funciones miembro privadas y públicas.  Arreglos de objetos. Herencia. Polimorfismo.

II – DISEÑO ORIENTADO A OBJETOS
Metodología de Diseño Orientado a  Objetos. Introducción al diseño orientado a objetos. Diseño de  clases. Diseño dirigido por responsabilidades. Métodos. Mensajes.  Herencia. Técnicas de Diseño. Hallazgo de clases,  Identificación de responsabilidades, colaboraciones y jerarquías. Contratos.  Métodos gráficos para el registro del diseño.

III- BIBLIOTECA DE COMPONENTES STANDARD STL
Templates. Templates de funciones. Template de clases. Contenedores e Iteradores. Polimorfismo con templates. Contenedores de cadenas de caracteres. Búsqueda en cadenas de caracteres. Uso de iteradores. IOSTREAMS funciones de entrada/salida. Archivos iostreams. Buffers iostream. Template de funciones. El template Standard de C++ STL. Contenedores e Iteradores. Contenedores de strings. Iteradores. Secuencias básicas: vector, lista y deque. Maps. Multimaps. Algorithms.

IV- RECURSIVIDAD
Definición de recursividad. Aplicabilidad de este método para la resolución de problemas. Balance costo
adicional del cómputo frente a la facilidad de programación. Implementación computacional. Casos donde evitar este tipo de algoritmos. Rastreo inverso.

V.- GRAFICACION
Dispositivos de ingreso, almacenamiento, procesamiento y salida de gráficos. Primitivas de graficación. Implementación computacional. Coordenadas homogéneas. El Standard OpenGL. Definiciones. Creación de ventanas. Especificaciones de color. Cambio de tamaño y redibujo. Dibujo de puntos, líneas y polígonos. Patrones de relleno. Transformaciones bidimensionales. Representaciones tridimensionales. Transformaciones tridimensionales. Transformaciones de vértices. Transformaciones de vista. Transformación de modelo. Transformación de proyección. Ejemplos.

VI- PROGRAMACIÓN GUIADA POR EVENTOS
Conceptos de interfaz gráfica de usuario. Formularios. Mecanismos de manejo de eventos. Propiedades y distribución de controles. Manejo de eventos de ratón. Manejo de eventos del teclado. Menús. Controles. Ventanas de interfaz de múltiples documentos.
Tema 7: Manejo de excepciones. Las sentencias try y finally. Jerarquía de excepciones. Clases de excepciones definidas por el usuario.
Tema 8: Subprocesamiento múltiple. Estados de los subprocesos: Ciclo de vida de un subproceso. Prioridades. Sentencias para la creación y administración de subprocesos. Sincronización de subprocesos.

VII - INTRODUCCIÓN AL CÁLCULO NUMÉRICO
Fuentes de los errores. Errores de truncamiento y errores de redondeo. Conceptualizaciones teóricas de los métodos numéricos. Resolución de ecuaciones no lineales. Método de Bisección. Regula-Falsi. Newton-Raphson. Condicionantes de su aplicabilidad. Errores cometidos, velocidad de convergencia.
Resolución de sistemas de ecuaciones lineales. Métodos directos. Gauss. Gauss-Jordan. Factorización LU. Condicionantes de su aplicabilidad. Error cometido. Breve referencia a los métodos iterativos. Jacobi y Gauss-Seidel. Interpolación. Método de Lagrange. Método de Newton. Interpolación segmentaria: cúbica por segmentos. Características principales y algoritmos. Aproximación. Ajuste de curvas. Método de los mínimos cuadrados. Método minimax. Integración numérica. Método de los trapecios. Método de Simpson. Método de Gauss. Cotas de error. Ecuaciones diferenciales ordinarias. Método de Euler. Método predictor corrector. Método de Runge-Kutta. Comparación entre los errores de cada método. Uso de bibliotecas. Ejemplos de aplicación.

Bibliografia basica:


  1. -Deitel Harvey & Deitel Paul: Cómo Programar en C++ Ed. Pearson Prentice Hall Cuarta edición 2003.
    -OpenGL Programming Guide - The Official Guide to Learning OpenGL -  Silicon Graphics - http://arctic.eng.iastate.edu:88/SGI_Developer/OpenGL_PG/.

    -Rebeca Wirf-Brock “Designing Object Oriented Software” De. Prentice Hall. 1990.

    -Timothy Budd “Programación Orientada a Objetos” De. Addison Wesley Iberoamericana.
    -Hearn, A "Gráficos por computadora" Ed. Prentice Hall 1987.
    -Richard Wright “Programación en OpenGL- Una guía de referencia completa de OpenGL” Anaya Multimedia 1997
    .
    -Shoichiro Nakamura: "Métodos numéricos aplicados con software" Ed. Prentice Hall 1992.

 

Noticias

09.09.09

El viernes 11 de septiembre (feriado) a las 17:00 hs se corregiran puntos 1, 2 y 3 del TP. en el laboratorio de computacion.