|
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
|