Fundamentos y Estructuras de Programación (300CIP002)

 

Información Básica

  • Créditos: 4
  • Horas de Clase: 4 / semana
  • Horas de trabajo independiente: 5 / semana
  • Horas de Laboratorio al semestre:
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

En este curso se estudiarán los fundamentos de los lenguajes de programación de alto nivel y se hará énfasis en tipos abstractos de datos. La asignatura brinda las bases para la solución de problemas que pueden abordarse usando como herramientas un computador, lenguajes de alto nivel y estructuras de datos clásicas (listas, pilas, colas, árboles y grafos). Por ser el segundo curso en la línea de programación, el componente práctico será intensivo a nivel de desarrollo de algoritmos y su análisis.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Describir y tratar los diferentes tipos de problemas que existen en ciencias de la computación.
    1. Reconocer el Cálculo Lambda y diseñar y ejecutar Máquinas de Turing simples.
    2. Identificar los diferentes tipos de problemas en ciencias de la computación (e.g. tratables, intratables, indecidibles).
    3. Calcular la complejidad de algoritmos iterativos.
    4. Reconocer diversas técnicas y estrategias para solucionar problemas mediante algoritmos.
  2. Identificar las principales características de los lenguajes de programación de alto nivel.
    1. Describir la estructura de un lenguaje de programación.
    2. Explicar la secuencia de compilación de un programa.
    3. Identificar, explicar y corregir bugs en programas.
    4. Experimentar con manejadores de excepciones e interfaces gráficas de usuario.
    5. Construir programas con apuntadores y referencias.
    6. Reconocer las características de las variables en un lenguaje de programación.
  3. Diseñar e implementar soluciones a problemas computacionales mediante el uso de Tipos Abstractos de Datos (TADs).
    1. Diseñar la solución a problemas construyendo TADs acordes con el problema.
    2. Utilizar e implementar los TADs básicos (listas, colas, pilas, árboles, grafos).
    3. Implementar algoritmos recursivos y reconocerlos como aspecto fundamental en computación.

Contenido

Capítulo 1: Noción de Problema

Sesión Horas de Clase Tópicos Bibliografía
1 2 Presentación del Curso e Introducción.Problemas, Historia, Cálculo-Lambda, Máquina de Turing.Problemas Tratables e Intratables.Complejidad [1]
2-5 8 Cálculo de Complejidades [1]
6 2 Estrategias de solución de problemas.Estrategias de Implementación. [1]

Total de Horas: 12.

Capítulo 2: Noción de Lenguaje

Sesión Horas de Clase Tópicos Bibliografía
7-9 6 Lenguajes de Alto Nivel.Compiladores y Máquinas Virtuales.Depuración.Tratamiento de Excepciones.Interfaces Gráficas de Usuario (Eventos). [1],[5]
10-12 6 Lenguaje C.Referencias y Apuntadores.Declaraciones y Tipos. [1],[2]

Total de Horas: 12.

Capítulo 3: Noción de Tipo Abstracto de Datos

Sesión Horas de Clase Tópicos Bibliografía
13-14 4 TAD’s [1,3]
15-16 4 TAD Lista.Utilización del TAD Lista. [1],[3]
17-18 4 Implementación del TAD Lista (Estructuras enlazadas, Vectores, Cursores) [1],[3]
19-20 4 TAD Pila y TAD Cola [1],[3]
21-24 8 TAD Arbin (Arboles Binarios) [1],[3]
25-26 4 TAD Arbol N-ario [1],[3]
27-30 8 TAD Grafo (Grafos dirigidos) [1],[3]

Total de Horas: 36.

Matriculación

  1. 2012-2: 16
  2. 2013-1: 15

Recursos

Bibliografía

  1. Gerardo M. Sarria M. Fundamentos y Estructuras de Programación. Notas de Clase. Borrador en línea aquí
  2. Harvey Deitel and Paul Deitel. Como programar en C/C++. 2da edición. Prentice Hall Hispanoamericana. 1994.Signatura Universidad Javeriana: 005.133D325c e1
  3. Jorge Villalobos. Diseño y manejo de estructuras de datos en C. McGraw-Hill Interamericana. 1996.Signatura Universidad Javeriana: 005.73V714d e1
  4. Bradley N. Miller and David L. Ranum. Problem Solving with Algorithms and Data Structures using Python. Franklin, Beedle & Associates Incorporated. 2006.Signatura Universidad Javeriana: 005.133M647p e1
  5. Terrence W. Pratt and Marvin V. Zelkowitz. Programming Languages. Design and Implementation. Fourth Edition. Prentice-Hall. 2001.Signatura Universidad Javeriana: 005.13P912p 2001 e1

Instalaciones

Salón de clase con computador y proyector.

Material de este semestre