• Introducción

    La asignatura Programación Avanzada cumple un rol formador de la capacidad crítica y creativa del futuro profesional, e instruye en la utilización del ordenador como una herramienta para que este desarrolle sus actividades potenciando sus logros.

    Programación Avanzada, junto con Fundamentos de Programación y Algoritmos y Estructuras de Datos son materias que conforman el tronco principal en la formación del futuro graduado. Aportan los conocimientos teóricos y prácticos para el manejo de las herramientas computacionales, fomentando la tarea creativa como una actividad metódica y sistemática, exigiendo la definición del problema, método de resolución, diseño e implementación de la solución e interpretación de los resultados.

    Al aplicar estos conocimientos en la solución de problemas de otras disciplinas, permite la interrelación entre las distintas áreas curriculares.

    Sobre esta base, los docentes de cada área podrán planificar tareas y trabajos en donde se estimule al alumno a aplicar las herramientas informáticas para la resolución de problemas.

    Los contenidos seleccionados se adaptan a los sugeridos para los cursos introductorios a Computer Science y Programming de la ACM/IEEE-CS los cuales son actualizados periódicamente en función de los rápidos avances en la tecnología informática.

    Equipo docente

    Profesor Titular

    Dr. Bioing. Javier E. Diaz Zamboni

    Profesor Adjunto

    Bioing. Jordán F. Insfrán

    Profesores Jefes de Trabajos Prácticos

    Bioing. Diana Vertiz del Valle (de licencia)

    Esp. Bioing. Juan Francisco Rizzato

    Auxiliar Docente Alumna/o

    Giovanna Viñoli Miotti

    Contenidos

    Programa de contenidos
    Unidad 1 – Programación orientada a objetos.
    Clases y objetos. Definición de una clase. Miembros de clase e instancia: atributos y métodos. Métodos especializados: constructores y destructores. Especificación de acceso. Instanciación de objetos. Contención. Herencia. Clases abstractas. Polimorfismo. Depuración de errores. Unidades de testeo.
    Unidad 2 – Análisis y diseño orientado a objetos.
    Elementos fundamentales y secundarios del modelo de objetos. Introducción al diseño orientado a objetos. Diseño dirigido por responsabilidades. Pruebas del diseño. Herramientas de documentación del análisis y diseño: UML. 
    Unidad 3 – Biblioteca estándar.
    Introducción a la biblioteca estándar del lenguaje. Tipos integrados. Principales algoritmos y estructuras de datos incorporadas. Iteradores. Persistencia de datos. Interacción con el sistema operativo.
    Unidad 4 – Manejo de excepciones.
    Introducción al manejo de excepciones: definición de unidad de trabajo (función), precondiciones y postcondiciones. Lanzamiento y procesamiento de excepciones. Excepciones de la Biblioteca Estándar. Excepciones definidas por el usuario.
    Unidad 5 – Graficación.
    Fundamentos matemáticos para la graficación: primitivas geométricas, transformaciones geométricas y coordenadas homogéneas. Manejo de color en gráficas. APIs para visualización de información y datos científicos.
    Unidad 6 – Interfaces de usuario.
    Introducción a interfaces de usuario. Interfaz de consola. Interfaz gráfica de usuario. Manejo de eventos. Componentes gráficos.
    Unidad 7 – Algoritmos computacionales y numéricos.
    Algoritmos recursivos: Búsqueda binaria, ordenamiento rápido. Algoritmos numéricos: bisección, diferencia finita e integración numérica.
     

    Metodología de Evaluación durante el Cursado

    La evaluación se realiza en dos partes, las cuales en conjunto permiten indagar las capacidades adquiridas en resolución de problemas, habilidades de programación y manejo de conceptos de la asignatura. Para lograr esto, por un lado, los alumnos deben desarrollar, entregar y defender Trabajos Prácticos, y por otro, completar una evaluación de conceptos.

    Regularidad

    Evaluación de Trabajos Prácticos

    Los alumnos deberán resolver, entregar, defender en forma teórico-práctica de manera grupal tres trabajos prácticos con la guía y supervisión del JTP. Los trabajos prácticos se realizan en grupos de dos personas. La defensa se realizará en los horarios de las clases de práctica, debiendo estar presentes los integrantes del grupo. La aprobación de los trabajos prácticos es grupal, por lo que cada miembro del grupo debe responder correctamente a las preguntas formuladas por los docentes. En caso de que un grupo no apruebe algún trabajo práctico puede volver a defender en la siguiente instancia de entrega y defensa.

    Respecto al trabajo práctico integrador se realizarán entregas parciales por etapas organizadas por el docente a cargo de la práctica.

    Evaluación de conceptos

    Esta evaluación está dividida en dos exámenes parciales basados en cuestionarios de carácter teórico-práctico de resolución individual, los cuales deben ser aprobados con una nota mayor o igual al 60%. En caso de no aprobar, podrán recuperarse en instancias evaluativas semejantes al finalizar el período de cursado.

    Promoción:

    La promoción se alcanza realizando la defensa teórico-práctica del diseño y desarrollo realizado en el trabajo práctico integrador a lo largo del curso. Durante la defensa el alumno deberá exponer individualmente de forma oral el trabajo práctico, justificando su diseño, implementación y pruebas, respondiendo correctamente a las preguntas que formulen los docentes basándose en la documentación presentada.

    Se tendrá en cuenta durante la defensa: 

    • La correcta explicación del problema global que está resolviendo mientras muestra el funcionamiento del programa. El alumno debe exponer al nivel de un usuario final, evitando los detalles del diseño y desarrollo.
    • Un adecuado nivel de cumplimiento de requisitos funcionales y robustez del programa.
    • Un adecuado dominio del diseño y desarrollo del programa haciendo uso de la documentación de diseño del código del proyecto.
    Para el acceso a la defensa del examen de promoción se requerirá al alumno:
    • Haber cumplido los requisitos de regularidad.
    • Entregar y presentar la documentación del diseño de las soluciones de los problemas y del código.
    • Entregar y presentar el código fuente de los programas solicitados, los cuales deben ejecutarse sin errores.

    Metodología de evaluación en exámenes finales

    Regulares

    El examen final consta de las siguientes etapas eliminatorias:

    1. Aprobar un cuestionario de evaluación de carácter teórico-práctica con un puntaje mayor o igual al 60%.
    2. Presentar la documentación del diseño de las soluciones de los problemas y del código.
    3. Presentar el código fuente de los programas solicitados, los cuales deben ejecutarse sin errores.
    4. Aprobar la defensa teórico-práctica del trabajo práctico integrador correspondiente a su cursado con un puntaje mayor o igual al 60%.

    Durante la defensa el alumno deberá exponer individualmente de forma oral el trabajo práctico, justificando su diseño, implementación y pruebas, respondiendo correctamente a las preguntas que formulen los docentes basándose en el material presentado. Se  tendrá en cuenta durante la defensa: 

    • La correcta explicación del problema global que está resolviendo mientras muestra el funcionamiento del programa. El alumno debe exponer al nivel de un usuario final, evitando los detalles del diseño y desarrollo.
    • Un adecuado nivel de cumplimiento de requisitos funcionales y robustez del programa.
    • Un adecuado dominio del diseño y desarrollo del programa haciendo uso de la documentación de diseño del código del proyecto.

    Libres

    El examen final consta de las siguientes etapas eliminatorias:

    1. Aprobar la defensa de la entrega de los trabajos prácticos de la presente planificación.
    2. Continúa con etapas eliminatorias de examen final para regulares.

    Los alumnos que rindan libres deberán presentar y defender los Trabajos Prácticos implementados en el cuatrimestre inmediato anterior. En este caso, los alumnos deben coordinar con antelación con el responsable de la asignatura, o el profesor que este disponga, la entrega de los TPs.

    La defensa de la entrega de los trabajos prácticos consiste en dar cuenta del correcto planteo de las soluciones a los programas de los trabajos prácticos y de su correcta ejecución.

    Condiciones de regularidad

    Serán reconocidos como alumnos regulares aquellos que hayan aprobado los trabajos prácticos, y los cuestionarios de evaluación con nota mayor o igual a 60%.

    Serán reconocidos como alumnos promocionados aquellos que hayan regularizado y aprobado con nota mayor o igual al 60% la defensa del trabajo práctico integrador.

    Todas las instancias de evaluación para alcanzar la regularidad contarán con su correspondiente recuperatorio.