2.5.3 FPL/Programación Funcional

Temas:
Core

Non Core

Aprendizaje esperado (Learning Outcomes):
Core:

  1. Desarrollar algoritmos básicos que eviten asignar a estados mutables o considerar igualdad referencial [Crear]
  2. Desarrollar funciones útiles que tomen y devuelvan otras funciones [Crear]
  3. Explicar un ejemplo simple de una expresión lambda implementada usando una máquina virtual, como una máquina SECD, mostrando el almacenamiento y recuperación del entorno [Explicar]
  4. Interpretar correctamente las variables y el ámbito léxico en un programa que usa clausuras de funciones [Interpretar]
  5. Usar mecanismos de encapsulación funcional como clausuras e interfaces modulares [Usar]
  6. Comparar y contrastar ejecución con estado (stateful) vs sin estado (stateless) [Comparar]
  7. Definir y usar iteradores y otras operaciones en agregados, incluyendo operaciones que toman funciones como argumentos, en múltiples lenguajes de programación, seleccionando los idiomas más naturales para cada lenguaje [Definir]
NonCore:
  1. Ilustrar la reducción de grafos usando una expresión $\lambda$ con una subexpresión compartida [Aplicar]
  2. Ilustrar la ejecución de una expresión $\lambda$ anidada simple usando una máquina abstracta, como una máquina ABC [Aplicar]
  3. Ilustrar estrechamiento (narrowing), residuación y unificación semántica usando ejemplos ilustrativos simples [Aplicar]
  4. Ilustrar las construcciones de concurrencia usando ejemplos de programación simples de conceptos conocidos, como un búfer siendo leído y escrito concurrentemente o secuencialmente [Aplicar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM