70 likes | 81 Views
This project requires learning a functional programming language and creating a significant program. Present an overview of the language and its interesting features. Proposal due on March 22nd.
E N D
But first... • Any homework questions?
Final project • Your final project is due on the final exam day for this class • Section 01: Wednesday, May 9 from 1-3pm • Section 02: Tuesday, May 8 from 3:30-5:30pm • For this project, you will need to: • Learn a primarily functional programming language (aside from Haskell) • Create a non-trivial program in that language • Present a brief overview of the language and two interesting things about it • First deadline: Language and program proposal due by Thursday, March 22
Functional programming languages • Most languages that you've used so far are imperative languages • There are two other programming language paradigms: functional programming and logic programming • Functional programming is focused on the idea of mathematical functions and generally tries to avoid side effects and changeable state • If functions have no side effects and no mutable state, multiple calls to the same function with the same arguments will produce the same output
Functional languages and this assignment • For this assignment, you will need to use either a purely functional language or use a language that has functional features in a primarily functional manner • Examples of functional languages include Lisp, Scheme, Clojure, Erlang, OCaml, F# • You can write functional code in C++11, JavaScript, Scala, and others • If you choose a non-functional language, you MUST be careful to write the vast majority of your code in a functional style • If your code isn't functional, your score will be docked!!
"Create a non-trivial program" • You will need to create a significant program (~200-500 lines) in this programming language • This program should do something useful • Think about your hobbies and interests! • Or think about issues affecting the world
Project proposal • Your proposal should: • Outline your language (NOT HASKELL) and explain why you feel it's a functional language (or explain how it can be written in a functional style) • List two specific resources (books, tutorials, YouTube videos, etc.) you'll be using to learn the language • Describe the problem that you're solving • Justify why the problem is appropriately difficult • List who is in your group (1-3 people) • I encourage you to check in with me ahead of time to get early feedback!