Fundamentos de Programación
Fundamentos de Programación
Objetivos
Capacitar al estudiante para que comprenda y aplique el paradigma funcional en el diseño y
desarrollo de programas partiendo desde la formulación del problema hasta llegar a soluciones
bien estructuradas.
Metodología
Las clases se dictan con videobeam o proyector de acetatos. Existen monitores para asesorar en
la realización de los talleres y proyectos, que se realizarán en las salas de computo.
Para el diseño de programas se usan dos innovaciones pedagógicas: unas guía de diseño que
orientan al estudiante en todo el proceso y un ambiente de programación para principiantes, que
se adapta a medida que los usuarios se van volviendo más expertos.
Contenido
1. Introducción al curso.
2. Procesamiento de datos simples
a) Elementos de un programa, Programas Simples.
b) Expresiones Condicionales.
c) Datos simples.
d) Datos Compuestos I: Estructuras.
3. Procesamiento de datos arbitrariamente grandes
a) Datos Compuestos II: Listas.
b) Definiciones Recursivas : Los números
c) Datos Compuestos III: Arboles.
d) Definiciones locales.
4. Abstracción en el diseño
a) El problema de las múltiples funciones
b) Desarrollo de funciones abstractas.
c) Funciones como ciudadanos de primera
5. Recursión Generativa
a) Diferencias entre recursión estructural y recursión generativa.
b) Algoritmos de ordenamiento.
c) Diseño de funciones generativas.
d) Algoritmos de reintento.
6. Acumulación de conocimiento
a) La perdida de conocimiento.
b) Diseñando funciones que acumulan.
7. Cambiando el estado de las variables
a) La necesidad del manejo de memoria en las funciones.
b) Asignación de valores a variables.
c) Diseño de funciones con memoria.
8. Cambiando valores compuestos
a) Encapsulación.
b) Estructuras mutables: Diseño de funciones
c) Más estructuras: Vectores y Objetos.
Bibliografía
1. How to Design Programs, M. Felleisen, R. B. Findler, M. Flatt and S. Krishnamurthi, MIT-
Press 2001.
2. Structure and Interpretation of Computer Programs, H. Ableson and G. J. Susman, MIT-
Press 1985.