CS 5965 – Functional Programming Studio
Spring 2016 | ||
Monday and Wednesday, 11:50am-1:10pm, WEB 1460 | ||
Instructor: |
| |
Office Hours: |
| by appointment (send e-mail) |
For general information, see the Course Description below.
Schedule
Jan 11 |
| Introductions; Sudoku Solver |
Jan 13-27 |
| Sudoku solvers, clients, and servers |
Feb 1 |
| |
Feb 3 |
| Sudoku code reviews; Dominion Protocol v1 |
Feb 8 |
| Monads [Sarah] |
Feb 10 |
| Lenses [William H.] |
Feb 17 |
| Initial dominion players; example v1 implementation |
Feb 22 |
| Closure compilation; see also Feely87 |
Feb 24 |
| Dominion players; Dominion Protocol v2 |
Feb 29 |
| Concurrent ML; see also references |
Mar 2 |
| Dominion code reviews; example v2 implementation |
Mar 7 |
| Functional data structures: Okasaki96; queues; AVL trees; HAMTs |
Mar 9 |
| Dominion v2 players; Dominion Protocol v3 |
Mar 21 |
| JavaScript promises [Zef]; example v3 implementation |
Mar 28 |
| Delimited continuations; see also Flatt07 |
Apr 4 |
| Scribble as a DSL |
Apr 11 |
| Project reports: Annie, Victor |
Apr 13 |
| Project reports: Erich, Kyle, William S., Chris |
Apr 18 |
| Project reports: Andrew, Dan, Sarah, Tobin |
Apr 20 |
| Thesis report: Dan; project reports: Zef, William H. |
Apr 25 |
| Project reports: Nick, Guannan, Tim, Pierce, Sam |
Course Description
This programming course is intended for students who have taken a programming-languages course and who are interested in gaining more experience with functional-programming languages and techniques.
There are no lectures or exams for the course. Students are graded on the completion of open-ended coding assignments and, equally importantly, class participation. Class participation includes presenting programs and discussing the presented work of other students.
Students may use any functional programming language for completing assignments, and diversity of language choices will be encouraged. Suitable functional languages include (but are not limited to) Racket, Haskell, Scala, OCaml, F#, SML, Erlang, Clojure, Common Lisp, Agda, Idris, and Elm.
Student Code and Academic Guidelines
All students are expected to follow the University’s student code. See also the College of Engineering’s academic guidelines.