CS 3110
Functional Programming and Data Structures
Advanced programming course emphasizing functional programming, data structures, and software design. Topics include recursive and higher-order programming, algebraic data types and pattern matching, modularity and abstraction mechanisms, models of program evaluation, and type systems. Covers techniques for specifying, testing, and reasoning about program correctness, and for analyzing the performance and design tradeoffs of data structures and programs.
Topics
- Design programs using functional programming techniques, including recursion, immutability, higher-order functions, algebraic data types, and pattern matching.
- Apply principles of static and dynamic semantics to predict, explain, and reason about program behavior.
- Design and implement modular software systems using abstraction mechanisms that enforce well-defined interfaces and information hiding.
- Specify, test, and reason about program correctness using precise specifications, systematic testing, and mathematical reasoning.
- Analyze and evaluate programs and data structures with respect to efficiency, abstraction, and design tradeoffs, and select and implement appropriate solutions.
Official roster learning outcomes
Prerequisites & course information
CS 2110 or equivalent.
Sources
Catalogue variants
- Data Structures and Functional Programming · 4.0 · Undergraduate
- Functional Programming and Data Structures · 4.0 · Undergraduate