CS310-f16

From MCIS Wiki
Jump to: navigation, search
Haskellclass.jpg

This course studies pure functional programming in the Haskell language and the use of functional programming to build domain specific languages (DSLs): customized, application specific programming languages. This course starts with an introduction to Haskell and its essential ideas of lazy evaluation and type inference. Advanced functional programming topics will include type classes, monads and monad transformers, arrows, templates, dependent types, parser combinators, and multiple parameter type classes. The class will study existing DSLs and DSL implementation techniques, including languages for reactive programming, computer vision, hardware design, computer music, and parallel processing. Students will implement a DSL of their choice in Haskell.

I'm looking at using a new book (just publshed!): https://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/1316626229/ref=sr_1_1


Syllabus

Calendar

  • /Week 1 - Lambda Calculus and the theory of functional programming
  • Week 2 - Haskell and Type Systems
  • /Week 3 IO and Type Classes
  • /Week 4 Functional Programming
  • /Week 5 Monads
  • Week 6 (October 8, 10) - Parsing and Testing
  • /Week 7 Parsing


Final Projects

The final project in this class will be a DSL. Teams can have up to 3 people on them. All code must be in a public github repository.

Teams / project proposals are due Oct 28.

/Cryptography

/Games

/Sound Synthesis

/Econ Models

/Magic Cube 3D

/High Fantasy Chat Bot

/JS SVG in Haskell Environmentl

/Hobots

Assignments

Haskell Resources