Programming course I attended as first year graduate on Faculty of Electrical Engineering and Computing in Zagreb.
This is an introductory course to Haskell, an advanced purely-functional programming language. Functional programming languages allow for the development of robust, concise programs in a short amount of time. The key advantages are higher-order functions as an abstraction mechanism and an advanced type system for safety and reusability. The course teaches basic functional programming in Haskell and the basic functional programming concepts. The course starts with language constructs and data types, moves to higher-order functions and algebraic data types, and concludes with IO data streams and monads. Students gain practical experience by solving numerous programming tasks given during the lectures and as take-home assignments. The goal of the course is not only to teach a new programming language, but also to teach a new programming paradigm and a radically different and mathematically sophisticated approach to programming.
- Define basic concepts of functional programming in Haskell
- Explain the syntax and semantics of a Haskell program
- Use Haskell to solve simple practical problems
- Apply functional idioms and functional design patterns
- Use available programming libraries to solve complex problems
- Compare alternative Haskell programs to determine which are better according to selected criteria
- Design Haskell programs
- [Glasgow Haskell Compiler] (https://www.haskell.org/ghc/)
- [The Haskell Tool Stack] (https://docs.haskellstack.org/en/stable/README/)
- [Cabal build system] (https://www.haskell.org/cabal/)