Haskell is considered to be a language with an extremely steep learning curve, and I'm not here to deny it. From my perspective, this is due to the fact that Haskell does not build on top on the shared ideas and values of common imperative and object-oriented languages, leaning more towards mathematical formalism and compositionality.
Even though there is continuously active research on introducing new advanced features in the language, Haskell is definitely not just a research tool. It is used effectively is many industrial settings to deliver critical business value.
With this course, I would like to present Haskell in a practical way, introducing the needed concepts as the need for them arises. We are going to do that by building together a concrete application and investigating the most common topics which arise in doing so.
I would like this course to feel more like a mob programming session among peers than like a traditional course with a teacher presenting the material and a listening audience. The structure and the content are inevitably predefined, but the value of the course will be in the conversations we will have.
I therefore encourage you to participate actively throughout the whole course, asking questions and providing remarks on the material we will explore.
I really hope you'll enjoy and have some fun!
Marco