Advanced Functional Programming Languages & Verification
Instructor
Niki Vazou (niki.vazou@imdea.org)
Lectures
- Period: October - November, 2019 (9 * 2 hours lectures)
- Language: English
Discussion
- Class Slack Link: link
Description
This seminar presents advanced concepts of functional programming languages and verification using Haskell and Liquid Haskell as tools. The lectures will be grouped in three categories:
- Basic features of Haskell
- Lists, Types, and Higher Order Programming
- Real world development
- Type Classes
- Advanced Features
- Monoids & Foldables
- Functors & Applicatives
- Monads
- Liquid Haskell
- Intro to Refinement Types
- Programs as Proofs
- Natural Deduction
The class presents both the theory and applications of functional programming. Evaluation will be on class participation, programming assignments, and a project on the form of a tournament. The seminar follows the structure of https://nikivazou.github.io/CMSC498V/.
Academic Integrity
Students are not allowed to perform any of the following:
- CHEATING: fraud, deceit, or dishonesty in any academic course or exercise in an attempt to gain an unfair advantage and/or intentionally using or attempting to use unauthorized materials, information, or study aids in any academic course or exercise.
- FABRICATION: intentional and unauthorized falsification or invention of any information or citation in any academic course or exercise.
- FACILITATING ACADEMIC DISHONESTY: intentionally or knowingly helping or attempting to help another to violate any provision of this Code.
- PLAGIARISM: intentionally or knowingly representing the words or ideas of another as one’s own in any academic course or exercise.
Grading
- Class Participation (40%). In class participation and responses on questions.
- Homeworks (40%). Three comprehension, programming assignments.
- Tournament (20%). One tournament on a strategy game (like tic-tac-toe).