Functional Programming

Functional Programming Syllabus

Functional Programming

Lecture Notes (LN)

Week 1: Introduction to Functional Programming!

Lecture Notes

Week 2: Introduction to Lambda Calculus

Lecture Notes

Week 3: Higher-Order Functions in Lambda Calculus

Lecture Notes

Week 4: Recursion and Y-Combinator

Lecture Notes

Week 5: Generator, Decorator, and HOFs in Python

Lecture Notes

Week 6: Itertools and Functools

Lecture Notes

Week 7: Introduction to Haskell

Book

Will Kurt, Get Programming with Haskell, Manning Publications (2018)

Lesson 1, 2, 3, and 6.

Week 8: Mid-term Exam

Please hit the books…!

Week 9: Haskell -

Assitant Lesson 7, 8, and 9

Week 10: Haskell -

Assistant Lesson 12, 13, 16, 17, and 18

Week 11: Introduction to Rust

Group Assignment data type; function; Ownership & borrowing (immutability); closures & iterator

Week 12: Rust

Group Assignment map, filter, fold; match & if let; and other tools for pattern matching

Week 13: Rust

Group Assignment ADT; Option, Result; functional error handling

Week 14: Rust

Group Assignment Chaining iterator; parallel iterator (Rayon)

Week 15: Rust/Project-based learning

Group Assignment Functional Concurrency & Multi-Processing; Asynchronous & Functional Streams; Higher-Order Functions in Concurrency

Week 16: Final Exam (Project Presentation)

Good Luck..!