ESCUELA DE CIENCIAS DE LA CI-1201 PROGRAMACION II
COMPUTACION E INFORMATICA Prof. Alan Calderón C.
UNIVERSIDAD DE COSTA RICA II Semetre 1998
OBJETIVO GENERAL
Desarrollar en el estudiante sus habilidades y su interés
personal por la elaboración sistemática, diseño, construcción y
afinamiento de algoritmos y programas, haciendo énfasis en la
especificación, diseño e implementación de módulos reutilizables.
OBJETIVOS ESPECIFICOS
Al finalizar el curso el estudiante será capaz de:
1. Diseñar e implementar programas, algoritmos y estructuras de
datos de mediana complejidad utilizando las técnicas básicas
de programación modular de sistemas.
2. Crear programas usando módulos y componentes reutilizables
usando los fundamentos teóricos de programación procedimental
y programación por objetos.
3. Programar diferenciando el nivel de abstracción y el de
representación.
4. Aplicar métodos para la prueba y depuración de módulos.
5. Aplicar estándares de documentación interna y externa.
CONTENIDOS y METODOLOGIA
En este curso se estudiarán métodos de trabajo en equipo que
suponen una división de las responsabilidades en términos de
programadores de aplicaciones y programadores de herramientas. Bajo
este contexto se analizarán los conceptos de abstracción (de datos y
de funciones) y de encapsulamiento, herencia, polimorfismo y
composición entre clases. Se estudiarán métodos de especificación de
clases y de funciones, así como métodos de verificación y prueba de
clases y de funciones.
El curso se desarrollará en cuatro etapas: 1) apropiación de
los elementos básicos del lenguaje C++ (sin los aspectos de
programación orientada a objetos), 2) uso y documentación de clases
contenedoras básicas (se estudiará la implementación de pila, lista,
arreglo, bag, set, hashTable y algún tipo de árbol balanceado), 3)
diseño y derivación de una clase contenedora 4) prueba y depuración de
una clase contenedora.
En el ambiente de programación Borland C++ 3.1 se estudiará:
1) el uso de los distintos módulos que provee el ambiente de
programación Borland C++ (archivos *.cpp, *.h, projects, etc), 2) el
uso de las opciones relevantes del compilador, 3) el manejo de la
memoria dinámica, 4) la derivación y la composición de clases, 5) así
como los distintos tipos de polimorfismo y su uso.
EVALUACION
I Participación....... 10%*
II Examen Parcial... 20% (24 de octubre de las 3 a las 6 de la tarde).
III Examen Final...... 25% (En el periodo de exámenes finales).
IV Tarea 1.............. 10%
V Tarea 2.............. 10%
VI Tarea 3.............. 15%
VII Tarea 4.............. 10%
*NOTA: Se espera una participación activa del estudiante que refleje
un compromiso real con su propio proceso de aprendizaje. Esta nota de
participación queda a criterio del profesor quien valorará aspectos
como: 1) interés evidenciado (participación en clase, preguntas,
consultas, problemas encontrados), 2) entrega a tiempo de tareas
programadas, 3) entrega de tareas cortas (que no tienen peso asignado
en la nota), 4) cumplimiento oportuno de responsabilidades dentro de
los equipos de trabajo.
BIBLIOGRAFIA
1) Ceballos, Francisco J. Curso de Programación C++ (Programación
Orientada a Objetos) Addison-wesley Iberoamericana.: 1993.
Altamente recomendado por tratar a fondo el lenguaje así como la
implementación de clases contenedoras complejas.
2) libro de Nancy Coghi. Muy recomendable pues trata a profundidad
aspectos de estructuras de datos usando el lenguaje C++. Tiene
utilidad en el curso siguiente, CI-1303 Estructuras de datos.
3) libro de prentice. Útil como introducción al lenguaje C++.
4) libro de Deitel. Útil como introducción al lenguaje C++.
5) Joyanes Aguilar, Luis. Borland C++ (Manual de Bolsillo).
McGraw-Hill.:1993. Es un manual de referencia bastante útil.
6) Stroustrup, Bjarne. El lenguaje de programación C++ (2nda edición)
Addison-Wesley Pub. Comp.:1993. Excelente libro escrito por quien
diseñó el lenguaje C++, pero está dirigido a personas con cierto
conocimiento de C++.
7) Weiskamp, Keith et. al. Programación Orientada a Objetos con Turbo
C++. Megabyte: 1993.