Published using Google Docs
CS 410/510 Top: Advanced Functional Programming
Updated automatically every 5 minutes

CS 410/510 Top: Advanced Functional Programming

Credit Hours:

4/3

Course Coordinator:

Katie Casamento

Course Description:

Examines advanced topics in the paradigm of functional programming. General subjects covered include type theory, theories of side-effect handling, runtime semantics of functional programs, and functional language design; specific potential topics include generalized algebraic data types (GADTs), substructural types (including linear types), programming with dependent types, theorem proving with dependent types, monadic effect handling, comonadic abstract machines, algebraic/extensible effect handling, functional program optimization, formal semantics of nonstrict and nonterminating programs, implementation of functional languages, applications of category theory to program design, hygienic macro systems, and homoiconic syntax.

Prerequisites:

CS 457/557 Functional Programming

Goals:

Upon successful completion of this course, students will be able to:

  1. Apply principles of pure functional software design and analysis to develop applications with strong logical guarantees of correctness.
  2. Describe and apply advanced type system features, including but not limited to: higher-kinded types, higher-rank types, dependent types, and linear types.
  3. Compare and contrast different theories and implementations of effect systems, including monad transformers and algebraic effects.
  4. Program in a total functional language subject to a conservative termination checker.
  5. Read and apply concepts from academic literature in the study of functional programming and type theory.

Major Topics:

Textbooks:

N/A

References: