CS 441 Functional Programming • 5 Cr.


This course introduces the foundations of functional programming and explores situations when using a Functional Programming language is most beneficial. Students will have the opportunity to apply elements of the functional programming style in daily programming tasks. Prerequisites: CS 211 and admission to BC CS program, or instructor's permission.


After completing this class, students should be able to:

  • Identify instances in which a functional programming language would be most beneficial
  • Apply, implement and write functional programs using different specific functional programming languages
  • Use generic types for functional programs
  • Develop purely functional programs, using recursion, pattern matching, and apply higher-order functions
  • Explain the characteristics of pure functional functions in functional programming
  • Combine functional programming with objects and classes
  • Apply equational, evaluation, and compositional reasoning techniques, and use mathematical and structural induction in proofs
  • Describe model and use infinite sequences with lazy evaluation