Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS 583 – Advanced Functional Programming Catalog Description: Advanced functional programming concepts and strategies, with a focus on techniques useful for the design and implementation of programming languages. Includes higher-order abstract syntax, functors and monads, generalized algebraic data types, functional data structures, and graph reduction. Credits: 4 Terms Offered: Winter Structure: Two 80-minute lectures per week. Faculty: Martin Erwig, Eric Walkingshaw Prerequisites: Graduate standing in Computer Science CS 581 – Programming Languages I Course Content: Equational reasoning Refactoring functional programs Higher-order abstract syntax Functors, applicative functors, monads, and monad transformers Phantom types and generalized algebraic data types (GADTs) Functional data structures Graph reduction Measurable Student Learning Outcomes: At the completion of the course, students will be able to … Prove that two expressions are equivalent using equational reasoning Refactor a functional program to remove redundancy, improve clarity, and support reuse Evaluate the extensibility of a functional program Design and implement a grammar with naming using higher-order abstract syntax Design and implement a typed grammar using phantom types and/or GADTs Apply the functor and monad patterns in the implementation of an interpreter Apply functional data structures in the implementation of functional programs Describe the evaluation of a functional program in terms of graph reduction Learning Resources: Free online book: Learn You a Haskell for Great Good. (http://learnyouahaskell.com/) Free online resource: Haskell Wikibook (https://en.wikibooks.org/wiki/Haskell) PhD Thesis: Purely Functional Data Structures, by Chris Okasaki, Carnegie Mellon University, 1996 (https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf) Evaluation of Student Learning: Homework and/or Quizzes (20%) Midterm Exams (40%) Final Project (40%) Students with Disabilities: Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 541-7374098. Link to Statement of Expectations for Student Conduct: http://studentlife.oregonstate.edu/studentconduct/offenses-0 12/8/2015