Computación II

Departamento Académico: Matemáticas e Informática

Última actualización 9 de agosto de 2007

Contenidos y objetivos
Contenidos y objetivos

CONTENIDOS RESUMIDOS

OBJETIVOS

Objetivos Direccionales:

  • Lograr que el alumno integre el recurso informático a su proceso de formación básica, científica - técnica.
  • Instruir al estudiante en el uso de la computadora como herramienta de trabajo.
  • Desarrollar el pensamiento lógico y crítico dentro de un contexto de trabajo grupal.

Objetivos Operacionales:

  • Resolver por medio de la computadora problemas de diversas asignaturas que integran la carrera.
  • Visualizar claramente los datos con que se cuenta y las incógnitas que se desean calcular.
  • Reconocer dentro de una amplia gama de métodos de resolución del problema las limitaciones de cada uno de ellos. Acotando datos y resultados de ser necesario.
  • Continuar su desarrollo en el diseño de programas iniciado en Computación I, con especial atención al estilo y la expresión, en la depuración y pruebas, sobre todo tratándose de programas de mayor extensión y razonamiento lógico.
  • Desarrollar y aplicar las técnicas para diseño de software orientado a objetos.
  • Diseñar y documentar todo el desarrollo de la implementación.
  • Crear la estructura de datos más adecuada para cada problema particular.
  • Expresar la estructura de datos y el algoritmo por medio de instrucciones de un lenguaje de programación.
  • Realizar un análisis crítico de los resultados arrojados por la computación para determinar su validez.
  • Utilizar los métodos gráficos para la interpretación de problemas y resultados.
  • Utilizar programas utilitarios para incrementar la eficiencia personal y profesional.
  • Interrelacionar críticamente el material bibliográfico.
  • Aplicar métodos numéricos a la resolución de problemas típicos de la Bioingeniería.
  • Adquirir capacidades de incorporación de bibliotecas realizadas por terceros a programas realizados por los alumnos.

volver


Programa y bibliografía

PROGRAMA ANALÍTICO

I - ELEMENTOS FUNDAMENTALES
Tema 1 Funciones: Razones para la utilización de funciones. Parámetros de funciones. Valores que devuelve. Prototipo de funciones. Funciones con parámetros con valor por defecto. Funciones con parámetros con valores por defecto. Sobrecarga de funciones.
Estructuras de datos indizadas. Arreglos de una dimensión. Manejo de arreglos. Arreglos multidimensionales.
Punteros: Direcciones físicas de memoria. Definición e inicialización de punteros. Punteros de diferenciación. Punteros estáticos. Punteros dinámicos. Relación entre punteros y arreglos. Punteros como parámetros de funciones.
Estructuras: Agregación de datos conteniendo elementos de distintos tipos. Uso de estructuras variables. Estructura de arreglos. Punteros a estructuras. Estructuras anidadas.

II – CLASES
Tema 2 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.

III – DISEÑO ORIENTADO A OBJETOS
Tema 3: 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.

IV - BIBLIOTECA DE COMPONENTES STANDARD STL
Tema 4: 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.

V - RECURSIVIDAD
Tema 5: 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.

VI - GRAFICACION
Tema 6: 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.

VII - INTRODUCCIÓN AL CÁLCULO NUMÉRICO
Tema 7: Fuentes de los errores. Errores de truncamiento y errores de redondeo. Somera idea de la propagación de los errores. 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.

BIBLIOGRAFÍA

  • 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 Graph.
    http://artic.eng.iastate.edu:88/SGI_Developer/OpenGL_PG/
  • Rebecca Wirf-Brock: "Designing Object Oriented Software". Ed. Prentice Hall. 1990.
  • Shoichiro Nakamura: "Métodos numéricos aplicados con software" Ed. Prentice Hall. 1992.

volver


Reglamento Interno

REGLAMENTO INTERNO

    Condiciones de regularidad

  • Adopta la condición de regular todo alumno que obtenga como mínimo 60% en cada uno de los parciales, habiendo presentado todos los prácticos solicitados durante el cuatrimestre en curso.
  • Condiciones de promoción

  • Adopta la condición de promocional todo alumno que obtenga un promedio de 80% y no menos de 70% en cada uno de los parciales, habiendo presentado todos los prácticos solicitados durante el cuatrimestre en curso..

    Condición de libre

  • Adopta la condición de libre todo alumno que que no alcance las condiciones de regularidad.

    De los parciales

  • Durante el cursado de la materia se tomarán dos parciales.
  • Se pueden recuperar ambos parciales, tanto para obtener la regularidad como así también para obtener la promoción.

    De las teorías y prácticas

  • Tanto la asistencia a las clases teóricas, coloquios y prácticas son absolutamente voluntarias. Solo se debe asistir a la clase práctica en la que se evalúe el practico correspondiente de la semana.

PLAGIO Y COLABORACIÓN EN LOS PROYECTOS

En las entregas de trabajos prácticos el alumno debe demostrar lo que él es capaz de hacer y no el trabajo de otra persona. Por otro lado es claro que no es posible trabajar completamente aislado del resto del curso, sin poder siquiera hablarle a un compañero. El objetivo de este ítem es simplemente establecer una guía acerca de que cosas pueden realizarse en colaboración con otros compañeros y que cosas son consideradas plagio o copia del trabajo de otros. Si estas reglas son violadas se considerará que el alumno ha incurrido en un acto de deshonestidad académica cuya sanción mínima, a nivel cátedra, es la automática pérdida de la regularidad. Ante todo se define que se entiende por colaboración y plagio en proyectos de programación.
El término plagio describe la situación en que alguien presenta un trabajo como suyo y el trabajo ha sido copiado a otra persona, con conocimiento o no de ésta. El plagio en los proyectos de programación incluye la copia de código fuente, datos, documentación o cualquier parte del proyecto. El plagio es simplemente no permitido y será severamente sancionado. La colaboración se da cuando uno o más estudiantes trabajan juntos en una fase del proyecto de programación. ¡Trabajar juntos no significa que un estudiante hace el trabajo y los otros lo copian! La colaboración está permitida solo en algunas situaciones y bajo ciertas condiciones. Para dejar aún más clara la idea de colaboración en proyectos de programación se detallarán las etapas más importantes del desarrollo de un programa y la posibilidad de trabajar en colaboración en cada una de ellas:

Etapa del proyecto Colaboración permitida
Análisis preliminar del problema SI
Desarrollo del algoritmo SI
Desarrollo de un plan para la prueba SI
Estilo de Programación NO
Corrección del programa previa a la compilación NO
Interpretación de los errores de compilación SI
Interpretación de los errores en tiempo de ejecución SI
Diseño y redacción del caso de estudio NO
Documentación e informe NO

volver


Equipo de Cátedra

Profesor Titular:
- Aldo Daniel Sigura

Profesor Adunto:
- Javier E. Diaz Zamboni

Jefes de Trabajos Prácticos:
- Tomás Molas
- Daniel Beber

Auxiliares de Docencia de 1ra categoría:
- Jose Alberto Biurrun Manresa

Auxiliares de Docencia de 2da categoría:
- Cristóbal Fresno
- Roberto Leonarduzzi
- Enzo Medina

Colaboradores:
- Gastón Marquez
- Jordán Insfran
- Virginia Zaidenberg
- Maria Fernanda Tellería

Becario de formación de RRHH:
- Isidro Moreno Marchese

Nuestro equipo de cátedra participa en la docencia de las materias: Introducción a la Programación, Informática Básica, Estructura de datos e Interface de usuarios. Materias correspondientes al plan vigente de la nueva carrera Licenciatura en Bioinformática, de nuestra Facultad de Ingeniería.

volver


Horarios de Cursado y Cronograma 1º Cuatrimestre 2007

Clases de Teoría:
Viernes de 17:30 a 19:30. Docentes: A. Sigura - J. Diaz Z. - 

Clases de Coloquio:
Viernes de 19:30 a 21:00. Docentes: A. Sigura - J. Diaz Z.- C. Fresno

Clases de Práctica en Laboratorios de Computación:
Comisión 1: Martes 17:00 a 19:30 (T. Molas)
Comisión 2: Martes de 19:30 a 22:00 (D. Beber T. Molas)
Comisión 3: Jueves de 17:00 a 19:30 (T. Molas)
Comisión 4: Jueves de 19:30 a 22:00 (T. Molas)
Clases de Resolución de Problemas:
Comisión A: Miércoles 10:30 a 13:00 (E. Medina J. Diaz)
Comisión B: Viernes de 15:00 a 17:30 (R Leonarduzzi)

Clases de Consulta:
Consultar en cartelera de cátedra

Cronograma del 2do cuatrimestre del año 2007

volver


Material para alumnos

Para acceder al material para los alumnos siga este vínculo

Grupo compu2consultas en Yahoo Groups

volver


Programa y bibliografía
Reglamento Interno
Equipo de cátedra
Horarios de cursado y Cronograma
Material para alumnos
Grupo en Yahoo Groups