Download CS 583 - Cat II Syllabus

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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