CS 6525 – Functional Programming Studio
Spring 2024 | ||
Monday and Wednesday, 3:00pm-4:20pm, GC 5680 | ||
Instructor: |
| |
Office Hours: |
| by appointment (send e-mail) |
Schedule
Jan 8 |
| Introductions and Sudoku Solver and Generator |
Jan 10 |
| |
Jan 17 |
| Language and Sudoku presentations: Kincaid, Bhargav, Sameer |
Jan 22 |
| Language and Sudoku presentations: Chloe, Marcus, Stefan, Ashton |
Jan 24 |
| Language and Sudoku presentations: Yash |
Jan 29 |
| |
Jan 31 |
| Language and Sudoku presentations: Adwait, Ethan, Atreya |
Feb 5 |
| |
Feb 7 |
| Functional data structures: HAMTs; RRB-Trees; Okasaki96; queues; AVL trees |
Feb 12 |
| Game presentations: Marcus, Sameer |
Feb 14 |
| Game presentations: Lanhai, Atreya, Ethan, Adwait |
Feb 21 |
| Game presentations: Khagan, Yash, Kincaid |
Feb 26 |
| Game presentations: Bhargav, Ashton, Atreya |
Feb 28 |
| Game presentations: Stefan, Matthew |
Mar 11 |
| Dependent types: Chloe |
Mar 13 |
| Initial plans for final projects |
Mar 18 |
| Closure compilation; see also Feely87 |
Mar 20 |
| |
Mar 25 |
| Project WIP presentations: Kincaid, Stefan, Sameer |
Mar 27 |
| Project WIP presentations: Khagan, Ethan, Ashton |
Apr 1 |
| Project WIP presentations: Adwait, Yash, Atreya |
Apr 3 |
| Project WIP presentations: Marcus, Bhargav, Lanhai |
Apr 8 |
| no class meeting |
Apr 10 |
| no class meeting |
Apr 15 |
| Project presentations: Kincaid |
Apr 17 |
| Project presentations: Marcus, Ethan, Stefan |
Apr 22 |
| Project presentations: Yash, Adwait, Ashton, Bhargav, Sameer, Lanhai, Atreya, Khagan |
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. The course is not intended as an introduction to functional programming.
There are no exams and almost no lectures 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. Hence the “studio” part of the (unofficial) course name: the intent is for the course to work like an art studio course, but for functional programming.
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
For information on withdrawing from courses, appealing grades, and more, see the college’s academic guidelines. For information on repeating a class, co-requirements, academic misconduct, and more, see the department’s policies and guidelines.