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