Programování v Haskellu zaměřené na řešení praktických problémů -- run-time systém, standardní knihovna, užitečné nástroje.
Poslední úprava: Kopecký Michal, RNDr., Ph.D. (04.06.2018)
Programming in Haskell aimed at practical problem solving -- run-time system, standard library, useful tools.
Poslední úprava: Kopecký Michal, RNDr., Ph.D. (04.06.2018)
Cíl předmětu -
Cílem je naučit se efektivně programovat užitečný a prakticky použitelný software v Haskellu. Součástí předmětu je přehled nejpopulárnějších knihoven a efektivních řešení složitých problémů pomocí funkcionálního programování.
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (06.01.2026)
The main goal is to teach efficient creation of useful and practical software in Haskell. The course covers several most popular libraries and some efficient solutions to complicated problems that exploit functional programming.
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (06.01.2026)
Podmínky zakončení předmětu -
Studenti v průběhu semestru vyřeší 3 domácí úkoly; cílem úkolů je implementace jednoduchého zadání jako samostatného programu. Očekávaný rozsah dostatečného řešení každého programu je méně než 500 řádek kódu, očekávaný čas mezi zadáním a termínem odevzdání každého úkolu je 3-4 týdny.
Zkouška bude probíhat ústně, formou krátké diskuze odevzdaných řešení. Studenti na zkoušce prokazují znalost konceptů použitých v řešeních jejich domácích úkolů, případně slovně doplní nedostatky. Vzhledem k formě a cílům zkoušky není použití vlastních materiálů nebo elektroniky povoleno. Témata zkoušky jsou plně pokryta materiály z přednášky poskytnutými na webu.
Nutné podmínky k zakončení:
1. Studenti musí odevzdat všechny domácí úkoly v termínu, v rozsahu alespoň minimálního vyřešení (konkrétní specifikace minimálního a doporučeného rozsahu řešení budou oznámeny při zadání domácích úkolů v průběhu semestru).
2. Studenti musí prokázat znalost a pochopení svých odevzdaných řešení u zkoušky; v případě nedostatečného rozsahu řešení musí prokázat schopnost samostatně doplnit úkol do doporučeného rozsahu.
Výsledná známka je odvozená z kvality a rozsahu řešení domácích úkolů (případně doplněných u zkoušky). Včasné odevzdání všech řešení v doporučeném rozsahu zpravidla odpovídá známce 1.
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (09.01.2026)
During the semester, students will solve 3 homework assignments; the aim of the homeworks is to implement a simple task as a self-contained program. The expected coding effort on each program is less than 500 lines of code; the expected time available for working on each assignment (between the task announcement and submission deadline) is 3 to 4 weeks.
The exam takes a form of short discussion of the submitted assignment solutions. At the exam, the students solely prove their own knowledge of the concepts used in their own submitted solutions, and amend their solutions in case of issues. Because of the form and goals of the exam, use of own materials or electronics is forbidden. All possible topics discussed in the exam are fully covered by the lecture materials (slides) shared on the course website.
Necessary conditions for successfully finishing the course:
1. Students must submit all homework solutions before the deadline. The quality of their solution (extent of the features implemented) must satisfy at least the minimal extent specification. The specifications of minimal and recommended extent of the homework solutions are provided together with the homework assignments.
2. Students must prove the knowledge and understanding of their submitted solutions at the exam; in case of insufficient solution quality (or extent of the features implemented) the students must prove their understanding of methods that would complete the task to the recommended solution extent.
After satisfying the necessary conditions, the student's grade is derived from the quality and extent of the homework solutions as verified or amended at the exam. Principially, submitting all homework solutions on time at the recommended extent (and proving the knowledge at the exam) guarantees the best grade.
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (15.01.2026)
Literatura -
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. http://book.realworldhaskell.org/read/
2. Learn You A Haskell For Great Good (community version). https://learnyouahaskell.github.io/
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (06.01.2026)
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. http://book.realworldhaskell.org/read/
2. Learn You A Haskell For Great Good (community version). https://learnyouahaskell.github.io/
Poslední úprava: Kratochvíl Miroslav, RNDr., Ph.D. (06.01.2026)
Sylabus -
Typový systém Haskellu, typové třídy, Hindley-Milnerův systém, Systém Fc