-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* create haskell-mooc.en.md * translation done * fix a typo in CN version * translation done * update * fix typo
- Loading branch information
Showing
2 changed files
with
39 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Haskell MOOC | ||
|
||
## Descriptions | ||
|
||
- Offered by: University of Helsinki | ||
- Prerequisites: None | ||
- Programming Languages: Haskell | ||
- Difficulty: 🌟🌟 | ||
- Class Hour: Varying according to the learner | ||
|
||
Functional programming is increasingly being integrated into modern programming languages. Streams in Java, Promises in JavaScript, and Record & Tuple in the draft phase of ECMAScript... When I was learning these things, I always felt like I was memorizing the behaviours of their API, and although I was able to write some programs using them, I never felt like I had mastered them. Why do they exist? Why are they like that? What is the idea behind their design? Learning functional programming will give you the answer. | ||
|
||
Its core ingredient is functional programming. Just like Java is probably the default choice for teaching object-oriented programming. | ||
|
||
This course will teach just enough Haskell syntax, library functions, and a small number of tools to explain the core program semantics and the core idea of functional programming. This will save you time not getting bogged down in the details of the language and its ecology, which I think is the biggest advantage of the course. | ||
|
||
Topics covered in the course: | ||
|
||
- Pure Function | ||
- Lazy Evaluation | ||
- Strongly Typed | ||
- Type Inferred | ||
- Curry | ||
- Monoid / Functor / Monad / Applicative | ||
|
||
If you have some programming experience, part 1 of the course is very easy. Most of the difficulties lie in part 2, after chap 13. Its exercises are great, which can give you a feeling of doing exercise of [CS61A](https://csdiy.wiki/%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/CS61A/). There are enough hints in the comments and the solutions will be given to you after submission, and you can ask questions or discuss them with others in the official Telegram community. | ||
|
||
## Course Resources | ||
|
||
- Course Website: <https://haskell.mooc.fi/> | ||
- Recordings: None | ||
- Textbooks: <https://haskell.mooc.fi/> | ||
- Assignments: <https://github.com/moocfi/haskell-mooc> | ||
- Community: <https://t.me/haskell_mooc_fi> | ||
|
||
## Personal Resources | ||
|
||
All the resources and assignments used by @showtheunli in this course are maintained in [showthesunli/haskell-mooc - GitHub](https://github.com/showthesunli/haskell-mooc). (It is highly discouraged to refer to other people's implementations when working on assignments.) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters