{"id":13508226,"url":"https://github.com/fptudelft/FP101x-Content-2015","last_synced_at":"2025-03-30T10:30:52.708Z","repository":{"id":150141035,"uuid":"44247257","full_name":"fptudelft/FP101x-Content-2015","owner":"fptudelft","description":"FP101x - Functional Programming MOOC 2015 Content Repository","archived":false,"fork":false,"pushed_at":"2015-12-20T20:47:19.000Z","size":10008,"stargazers_count":518,"open_issues_count":0,"forks_count":146,"subscribers_count":73,"default_branch":"master","last_synced_at":"2024-11-01T07:33:29.264Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fptudelft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-14T12:52:08.000Z","updated_at":"2024-08-31T10:00:30.000Z","dependencies_parsed_at":"2023-04-12T00:24:50.355Z","dependency_job_id":null,"html_url":"https://github.com/fptudelft/FP101x-Content-2015","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fptudelft%2FFP101x-Content-2015","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fptudelft%2FFP101x-Content-2015/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fptudelft%2FFP101x-Content-2015/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fptudelft%2FFP101x-Content-2015/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fptudelft","download_url":"https://codeload.github.com/fptudelft/FP101x-Content-2015/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246307603,"owners_count":20756473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:00:50.071Z","updated_at":"2025-03-30T10:30:47.989Z","avatar_url":"https://github.com/fptudelft.png","language":"Haskell","funding_links":[],"categories":["Haskell","Resources"],"sub_categories":["[Elm](http://elm-lang.org)"],"readme":"# FP101x - Functional Programming MOOC 2015 Content\n\nThis repository will host the content for the [Functional Programming course on EdX](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0).\n\nAs the course progresses we will put up more material here.\n\nWe encourage contributions from the community (e.g. translations, fixes, etc.).\n\n\nLectures\n--------\n\n| Title            | 360p | 720p | 1080p | Slides (PDF) | Slides (PPT) |\n|------------------|------|------|-------|-------|-------|\n| Book presentation | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-BookPresentation-ProgrammingInHaskell-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-BookPresentation-ProgrammingInHaskell-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-BookPresentation-ProgrammingInHaskell-video.mp4) | | |\n| 0. Introduction Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part1-video.mp4) | [0 (pdf)](slides/Chapter0.pdf) | [0 (ppt)](slides/Chapter0.pptx) |  \n| 0. Introduction Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter0-part2-video.mp4) | | |\n| 1. First Steps Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part1-video.mp4) | [1 (pdf)](slides/Chapter1.pdf) | [1 (ppt)](slides/Chapter1.pptx) | \n| 1. First Steps Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week0/FP101x-chapter1-part2-video.mp4) | | |\n| 2. Types and Classes Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part1-video.mp4) |  [2 (pdf)](slides/Chapter2.pdf) | [2 (ppt)](slides/Chapter2.pptx) |\n| 2. Types and Classes Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part2-video.mp4) | | |\n| 2. Types and Classes Part 3 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part3-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part3-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter2-part3-video.mp4) | | |\n| 3. Defining Functions Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part1-video.mp4) | [3 (pdf)](slides/Chapter3.pdf) | [3 (ppt)](slides/Chapter3.pptx) |\n| 3. Defining Functions Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-chapter3-part2-video.mp4) | | |\n| Jam Session - Functional Programming in Dart | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Dart-video.360.mp4) |  [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Dart-video.720.mp4) |  [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Dart-video.mp4) | | |\n| 4. List Comprehensions Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part1-video.mp4) | [4 (pdf)](slides/Chapter4.pdf) | [4 (ppt)](slides/Chapter4.pptx) |\n| 4. List Comprehensions Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter4-part2-video.mp4) | | |\n| 5. Recursive Functions Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part1-video.mp4) | [5 (pdf)](slides/Chapter5.pdf) | [5 (ppt)](slides/Chapter5.pptx) |\n| 5. Recursive Functions Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-chapter5-part2-video.mp4) | | |\n| Jam Session - Functional Programming in C# | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-CSharp-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-CSharp-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-CSharp-video.mp4) | | |\n| Jam Session - Functional Programming in Hack | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-ProgramLanguages-Hack-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-ProgramLanguages-Hack-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week2/FP101x-ProgramLanguages-Hack-video.mp4) | | |\n| 6. Higher Order Functions Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part1-video.mp4) | [6 (pdf)](slides/Chapter6.pdf) | [6 (ppt)](slides/Chapter6.pptx) |\n| 6. Higher Order Functions Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part2-video.mp4) | | |\n| 6. Higher Order Functions Part 3 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part3-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part3-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week3/FP101x-chapter6-part3-video.mp4) | | |\n| Jam Session - Church Numerals | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-StudentDemo-ExerciseHighOrderFunctions-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-StudentDemo-ExerciseHighOrderFunctions-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-StudentDemo-ExerciseHighOrderFunctions-video.mp4) | | |\n| 7. Functional Parsers and Monads Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part1-video.mp4) | [7 (pdf)](slides/Chapter7.pdf) | [7 (ppt)](slides/Chapter7.pptx) |\n| 7. Functional Parsers and Monads Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part2-video.mp4) | | |\n| 7. Functional Parsers and Monads Part 3 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part3-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part3-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter7-part3-video.mp4) | | |\n| 8. Interactive Programs Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part1-video.mp4) | [8 (pdf)](slides/Chapter8.pdf) | [8 (ppt)](slides/Chapter8.pptx) |\n| 8. Interactive Programs Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-chapter8-part2-video.mp4) | | |\n| Jam Session - Functional Programming in Kotlin | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-ProgramLanguages-Kotlin-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-ProgramLanguages-Kotlin-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week4/FP101x-ProgramLanguages-Kotlin-video.mp4) | | |\n| 9. Declaring Types and Classes Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part1-video.mp4) | [9 (pdf)](slides/Chapter9.pdf) | [9 (ppt)](slides/Chapter9.pptx) |\n| 9. Declaring Types and Classes Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part2-video.mp4) | | |\n| 9. Declaring Types and Classes Part 3 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part3-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part3-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter9-part3-video.mp4) | | |\n| 10. The Countdown Problem Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part1-video.mp4) |  [10 (pdf)](slides/Chapter10.pdf) | [10 (ppt)](slides/Chapter10.pptx) |\n| 10. The Countdown Problem Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part2-video.mp4) | | |\n| 10. The Countdown Problem Part 3 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part3-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part3-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week5/FP101x-chapter10-part3-video.mp4) | | |\n| Jam Session - Testing and Debugging with QuickCheck | [video](https://courses.edx.org/c4x/DelftX/FP101x/asset/Randomized_Testing.mp4) | | | | |\n| Jam Session - Functional Programming in Scala | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Scala-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Scala-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week1/FP101x-ProgramLanguages-Scala-video.mp4) | | |\n| 11. Lazy Evaluation Part 1 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part1-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part1-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part1-video.mp4) |  [11 (pdf)](slides/Chapter11.pdf) | [11 (ppt)](slides/Chapter11.pptx) |\n| 11. Lazy Evaluation Part 2 | [360p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part2-video.360.mp4) | [720p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part2-video.720.mp4) | [1080p](http://delftxdownloads.tudelft.nl/FP101x-FunctionalProgramming/Week6/FP101x-chapter11-part2-video.mp4) | | |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffptudelft%2FFP101x-Content-2015","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffptudelft%2FFP101x-Content-2015","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffptudelft%2FFP101x-Content-2015/lists"}