CS 6963 – Functional Programming Studio
Spring 2021 | ||
Monday and Wednesday, 3:00pm-4:20pm, virtual (link in Canvas) | ||
Instructor: |
| |
Office Hours: |
| by appointment (send e-mail) |
Schedule
Jan 20 |
| Introductions and Sudoku Solver and Generator |
Jan 25 |
| Language and Sudoku presentations: Yo, Gavin, Bradley |
Jan 27 |
| Language and Sudoku presentations: Jairon, Nathan, Calvin |
Feb 1 |
| Language and Sudoku presentations: Ryan, Megan, Hayden |
Feb 3 |
| Language and Sudoku presentations: Emerson, Sona, Carson, Alex |
Feb 8 |
| |
Feb 10 |
| |
Feb 17 |
| Santorini presentations: Matthew, Yian, Mei |
Feb 22 |
| Santorini presentations: Nathan, Gavin, Yo |
Feb 24 |
| Santorini presentations: Zach, Abhi, Josh, Saivamshi |
|
| |
Mar 1 |
| |
Mar 3 |
| Closure compilation; see also Feely87 |
Mar 8 |
| no class |
Mar 10 |
| Santorini with cards presentations: Carson, Sona, Heydon, Josh |
Mar 15 |
| Santorini with cards presentations: Ryan, Braeden, Saivamshi |
Mar 17 |
| Santorini with cards presentations: Emerson, Bradley, Alex |
Mar 22 |
| Project proposals: everyone |
Mar 24 |
| |
Mar 29 |
| Functional data structures: Okasaki96; queues; AVL trees; HAMTs |
Mar 31 |
| no meeting |
Apr 5 |
| no meeting (non-instructional day) |
Apr 7 |
| Concurrent ML; see also references |
Apr 12 |
| |
Apr 14 |
| Project reports: Ryan, Gavin, Sona, Jairon |
Apr 19 |
| Project reports: Hayden, Megan, Carson, Yian |
Apr 21 |
| Project reports: Alex, Saivamshi, Josh |
Apr 26 |
| Project reports: Abhi, Zach, Calvin, Emerson, Braeden |
Apr 28 |
| Project reports: Mei, Nathan, Bradley, Yo |
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 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 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.