Course Outline
Introduction to Haskell
- Platform and tools
- Hello World program
- A bit of history
Haskell syntax
- Functions
- Case distinction and pattern matching
- Layout (indentation)
- Control structures (if, case, let, where)
Type system
- Basic types
- Simple function types
- Polymorphism
- Higher order functions
- Custom types
- Numbers in Haskell
- Type classes
Building programs
- IO handling
- Module system
- Packages and libraries
- Compiling applications
Examples and case studies
- Eight queens puzzle in Haskell
- Dynamic programming and memoization in Haskell
- Simplified parsing of CSV files
- An HTTP client
Requirements
Familiarity with at least one other programming language. Programming experience.
Testimonials
I really liked that there were a lot of practical exercises in which you could put the learned immediately into action.
Daniel Bubla
The atmosphere was very nice, much more relaxed conversation than classic teaching style. Also, several of the techniques, especially those I doubt would hold up or be worth it (effort-gain-wise) under “real world” work conditions (as mentioned above) made me reflect on my coding style, and why I do or don't do some things (both on topics presented int he course and related ones), which I don't do that often (needed the impetus) but is really useful, even if I come to the conclusion that my style already suits my needs well.