|
|
Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
|
CI-1101 Programación I
|
En este documento están descritos los objetivos y
requisitos definidos para el curso en el Plan de Estudios de la
carrera. Cuando un profesor imparte el cursos define los
contenidos específicos, la bibliografía, forma de
evaluación y otros detalles. Las referencias a ese material
están en este cuadro:
| Año 1995 |
| I Semestre |
| II Semestre |
|
|
|
| Año 1998 |
| I Semestre |
| II Semestre |
|
| Año 1999 |
| I Semestre |
| II Semestre |
|
|
|
|
|
REQUISITOS
|
CI-1010
Introducción a Computación e Informática
| Horas: | 4 |
| |
Créditos: | 4 |
OBJETIVO
Proveer al estudiante la formación básica en
programación para su adecuado desempeño en los
cursos subsiguientes del área de programación,
fomentando en el estudiante habilidades generales para la
resolución de problemas de programación.
OBJETIVOS ESPECIFICOS
Al finalizar el curso, el estudiante será capaz de:
- Diseñar e implementar clases, algoritmos y estructuras
de datos de poca complejidad con base en algún
lenguaje de programación orientado a objetos.
- Estructurar los algoritmos por medio de jerarquías
funcionales o procedimentales.
- Comprender y usar esquemas procedimentales básicos (de
entrada y salida de datos, de bifurcación, de
iteración y de recursión), en el diseño
de algoritmos de poca complejidad.
- Comprender y usar esquemas de estructuras de datos
básicos (tanto de memoria estática como de
memoria dinámica) en el diseño de algoritmos de
poca complejidad.
- Comprender y usar esquemas de recursión en el
diseño de algoritmos de poca complejidad.
- Comprender y usar un grupo pequeño de clases
contenedoras (constituido al menos por arreglos, listas,
pilas, colas y árboles binarios ordenados) en el
diseño de algoritmos de poca complejidad.
- Usar con fluidez un ambiente de programación para la
elaboración de programas y para su depuración.
El ambiente deberá soportar tanto la
programación procedimental como la programación
por objetos.
- Comprender y aplicar esquemas básicos de
documentación interna y externa de programas.
CONTENIDOS
- Nociones básicas de sistema operativo, arquitectura de
un computador, lenguaje de programación,
algoritmo.
- Conceptualización y definición de clases,
atributos de clases, instancias de clases, tipos y
variables.
- Entrada y salida de datos.
- Estructuras básicas de
control: secuenciación, bifurcación,
iteración.
- Conceptualización e implementación de
métodos por medio de funciones (sin parámetros,
con parámetros de valor, con parámetros de
referencia).
- Distintos tipos de módulos: procedimiento,
función, clase, programa, unidad (es decir, un
conjunto de procedimientos o funciones y estructuras de
datos).
- Estructuras de datos basadas en arreglos.
- Estructura de una clase: parte pública, parte privada,
constructores y destructores.
- Funciones recursivas tales como: factorial, Fibonacci,
multiplicación de enteros, potencia de dos
números, máximo común divisor de dos
números, Torres de Hanoi; además, recorrido,
inserción y borrado sobre árboles
binarios.
- Esquemas genéricos de algoritmos de ordenamiento
básicos, tales como: burbuja, selección e
inserción. Idealmente, la implementación de
estos algoritmos debería estudiarse en el contexto de
arreglos básicos, así como de la clase
lista.
- Algoritmos de búsqueda secuencial y búsqueda
binaria.
- Diferencia entre memoria estática y memoria
dinámica.
- Funcionalidad de clases contenedoras básicas: arreglos
(unidimensionales y multidimensionales), lista, pila, cola,
conjunto, árbol binario ordenado.
- Implantación de clases contenedoras básicas:
arreglo, lista, pila, cola, conjunto y árbol binario
ordenado.
LIBRO DE TEXTO
Como lenguaje de programación en el curso se usa C++, por
lo que conviene que el estudiante adquiera un buen libro de texto
para el lenguaje, como por ejemplo el de
Deitel & Deitel, que está
escrito en lengua inglesa, aunque la
versión en español
también se puede usar, pese a que no toma en cuenta todos
los cambios y detalles que forman parte del C++ estándar.
Es conveniente que cada estudiante tenga acceso al
libro de Bjarne Stroustrup sobre C++, que es el lenguaje que
se usar como marco de referencia en todo el curso. Este libro
tiene un costo de unos $ 45, y se puede conseguir en
Internet. Cada estudiante es responsable de conseguir sus libros.
Además, en el sitio Internet del curso habrá
material adicional (como los
FAQ's).
C++: FAQ's e Hiperenlaces
BIBLIOGRAFIA
- Capper, D.M.
- "C++ for Scientists, Engineers and Mathematicians";
Springer-Verlag; 1996.
- Ceballos, Francisco J.
- "Programación Orientada a objetos con C++";
Addison-wesley Iberoamericana; 1993.
- Eckel, B.
- "Using C++"; Mc-Graw Hill; 1994.
- Deitel, H.M.; Deitel, P.J.
- "Cómo programar en C/C++, segunda edición",
Prentice-Hall, 1994.
ftp://ftp.prenhall.com/pub/deitel/C++_HTP/C++HTP2e/c++htp2e_examples.zip
- Deitel, H.M.; Deitel, P.J.
- "C++ How to Program, Third Edition",
ISBN-0-13-089571-7, Prentice-Hall, 2000.
http://www.deitel.com/
http://deitelandassociates.com/oldsite/books/2000/cpphtp3/cpphtp3_examples.zip
- Heileman, Gregory
- "Estructuras de Datos, Algoritmos y Programación
Orientada a Objetos"; Mc-Graw Hill; 1998.
- Ladd, S. R.
- "Components and Algorithms"; M & T; 1994.
- Stauggard, Andrew Jr.
- "Técnicas estructuradas y orientadas a objetos";
Prentice-Hall; 1998.
- Sedgewick, Robert
- "Algoritmos en C++"; Addison-Wesley; 1995
- Stroustrup, Bjarne
- "El lenguaje de programación C++ (2nda
edición)"; Addison-Wesley Pub. Comp.; 1993.
- Stroustrup, Bjarne
- "The C++ programming language (3rd ed)"; Addison-Wesley;
1998.
- Algún manual del ambiente de
programación que se use
MATERIAL DE REFERENCIA
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2000
Derechos de autor reservados © 2000