Atributos
Sigla: 
CI-1101
Créditos: 
4
Horas: 
4
Clasificación: 
Curso propio
Objetivo general: 

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 específicos: 

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, Fibbonacci, 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.
Bibliografía: 
  1. Staugaard, A.C. Técnicas Estructuradas y Orientadas a Objetos. Prentice-Hall, 1998.
  2. Deitel, H.M. Cómo programar en C/C++. Prentice-Hall, 1994.
  3. Ceballos, J. C++ Programación Orientada a Objetos, Addison-Wesley, 1993.
  4. Heileman, G.L. Estructuras de Datos, Algoritmos y Programación Orientada a Objetos. Mc-Graw Hill, 1998. 5. Sedgewick, R. Algoritmos en C++. Addison-Wesley, 1995.
  5. Ladd, S. R. Components and Algorithms. M & T, 1994.
  6. Capper, D.M. C++ for Scientists, Engineers and Mathematicians. Springer-Verlag, 1996. 8. Eckel, B. Using C++. Mc-Graw Hill, 1994.
  7. Strostrup, B. El C++ Lenguaje de Programación. Addison-Wesley, 1993.
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.