SubjectsSubjects(version: 837)
Course, academic year 2018/2019
   Login via CAS
Programming in Haskell - NPRG068
Title in English: Programování v Haskellu
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2018
Semester: winter
E-Credits: 3
Hours per week, examination: winter s.:2/0 Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Additional information:
Guarantor: Mgr. Miroslav Kratochvíl
Class: Informatika Bc.
Classification: Informatics > Informatics, Software Applications, Computer Graphics and Geometry, Database Systems, Didactics of Informatics, Discrete Mathematics, External Subjects, General Subjects, Computer and Formal Linguistics, Optimalization, Programming, Software Engineering, Theoretical Computer Science
Annotation -
Last update: RNDr. Michal Kopecký, Ph.D. (04.06.2018)
Programming in Haskell aimed at practical problem solving -- run-time system, standard library, useful tools.
Aim of the course -
Last update: RNDr. Michal Kopecký, Ph.D. (04.06.2018)

The main goal is to develop the introduction to Haskell from the Non-procedural programming course, and learn to create useful and practical software in Haskell. The course covers several most popular libraries and some efficient solutions to complicated problems that exploit functional programming.

Course completion requirements - Czech
Last update: Mgr. Miroslav Kratochvíl (27.08.2018)

Studenti do konce semestru vypracují malý projekt v Haskellu, pracovat lze i ve skupinách (s rozumnou úpravou velikosti projektu).

Zkouška bude probíhat z větší části formou diskuze o řešení tohoto projektu. Témata zkoušky budou plně pokryta materiály z přednášky poskytnutými na webu.

Literature -
Last update: RNDr. Michal Kopecký, Ph.D. (04.06.2018)

1. Bryan O'Sullivan, Don Stewart, and John Goerzen: Real World Haskell - Code You Can Believe In. O'Reilly, November 2008, ISBN-10: 0596514980, ISBN-13: 978-0596514983.

2. Learn You A Haskell For Great Good.

Syllabus -
Last update: Mgr. Miroslav Kratochvíl (10.06.2018)
  • Haskell type system, typeclasses, Hindley-Milner system, System Fc
  • Monads, State, Monad transformers
  • Haskell programs from inside in GHC: Core, STG, thunks, WHNF, seq, compilation, modularization
  • Cabal and Stack
  • Standard IO library
  • Standard typeclasses
  • Standard containers, Text and ByteString
  • Connection to UNIX, optparse
  • Parsing combinators, parsec
  • Pretty printing
  • Parallelism, STM, parallel frameworks
  • Server applications -- Scotty, Yesod, Servant
  • Lens library, Prism, Iso, Traversal
  • Overview of several lazy data structures: Finger construction, lazy queues, ...
  • Simple graphical output: Gloss, JuicyPixels
  • Testing: HSpec, Quickcheck, Conduit
  • Functional reactive programming

Charles University | Information system of Charles University |