[UCR]
[/\]

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 1996
I Semestre
II Semestre
 
Año 1997
I Semestre
II Semestre
 
Año 1998
I Semestre
II Semestre
 
Año 1999
I Semestre
II Semestre
 
Año 2000
I Semestre
II Semestre
 
Año 2007
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:

  1. 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.
  2. Estructurar los algoritmos por medio de jerarquías funcionales o procedimentales.
  3. 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.
  4. 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.
  5. Comprender y usar esquemas de recursión en el diseño de algoritmos de poca complejidad.
  6. 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.
  7. 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.
  8. Comprender y aplicar esquemas básicos de documentación interna y externa de programas.

 

CONTENIDOS

  1. Nociones básicas de sistema operativo, arquitectura de un computador, lenguaje de programación, algoritmo.
  2. Conceptualización y definición de clases, atributos de clases, instancias de clases, tipos y variables.
  3. Entrada y salida de datos.
  4. Estructuras básicas de control: secuenciación, bifurcación, iteración.
  5. 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).
  6. Distintos tipos de módulos: procedimiento, función, clase, programa, unidad (es decir, un conjunto de procedimientos o funciones y estructuras de datos).
  7. Estructuras de datos basadas en arreglos.
  8. Estructura de una clase: parte pública, parte privada, constructores y destructores.
  9. 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.
  10. 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.
  11. Algoritmos de búsqueda secuencial y búsqueda binaria.
  12. Diferencia entre memoria estática y memoria dinámica.
  13. Funcionalidad de clases contenedoras básicas: arreglos (unidimensionales y multidimensionales), lista, pila, cola, conjunto, árbol binario ordenado.
  14. 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

[DiM-88]           Di Mare, Adolfo: Convenciones de Programación para Pascal, Reporte Técnico ECCI­01­88, Proyecto 326­86­053, Escuela de Ciencias de la Computación e Informática, Universidad de Costa Rica, 1988.
      http://www.di-mare.com/adolfo/p/convpas.htm


[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2000
Derechos de autor reservados © 2000
[home] <> [/\]