====== Lectures ====== ^ Date ^ Title ^ Content 2020 ^ Content 2019 ^ |Feb 18 (20)| 1. Intro | {{ :courses:fup:lectures:lecture1_2020.pdf |Slides}} {{ :courses:fup:lectures:lexture1log_2020.txt | Log}} | {{ :courses:fup:lectures:lecture1_2019.pdf |Slides}} {{ :courses:fup:lectures:lecture1log.txt |Log}}| |Feb 25 (27)| 2. Lambda abstraction | {{ :courses:fup:lectures:lecture2_2020.pdf |Slides}} {{ :courses:fup:lectures:lecture2log_2020.txt |Log}} | {{ :courses:fup:lectures:lecture2_2019.pdf |Slides}} {{ :courses:fup:lectures:lecture2log.txt |Log}}| |Mar 3 (5)| 3. Higher order functions | {{ :courses:fup:lectures:lecture3_2020.pdf |Slides}} {{ :courses:fup:lectures:lecture3log_2020.txt |Log}} | {{ :courses:fup:lectures:lecture3.pdf |Slides}}{{ :courses:fup:lectures:lecture3log.txt |Log}} | |Mar 17 (19)| 4. Closures and lazy evaluation | {{ :courses:fup:lectures:lecture4_2020.pdf | Slides }}{{ :courses:fup:lectures:benwood-racket-lexical-closures_subset.pdf |Ben Wood's slides}} {{ :courses:fup:lectures:lecture4log_2020.txt |Log}} [[https://youtu.be/uca7419CwX8|Czech lecture]] [[https://youtu.be/FZkq41exmHk|English lecture]]| {{ :courses:fup:lectures:lecture4.pdf |Slides}}{{ :courses:fup:lectures:benwood-racket-lexical-closures_subset.pdf |Ben Wood's slides}}{{ :courses:fup:lectures:lecture4log.txt |Log}} | |Mar 24 (26)| 5. Imperative aspects of Scheme| {{ :courses:fup:lectures:lecture5_2020.pdf |Slides}} {{ :courses:fup:lectures:lecture5log_2020.txt |Log}} [[https://youtu.be/-qni0QLZEnk|Czech lecture]] [[https://youtu.be/da6cMarh6_I|English lecture]]| {{ :courses:fup:lectures:lecture5_2019.pdf | Slides}} {{ :courses:fup:lectures:lecture5log.txt |Log}} | |Mar 31 (Apr 2)| 6. Imperative Scheme and parallelism| {{ :courses:fup:lectures:lecture6_2020.pdf | Slides}} {{ :courses:fup:lectures:lecture6log_2020.txt |Log}} {{ :courses:fup:lectures:lecture6_r5rs.txt |R5RS}} {{ :courses:fup:lectures:lecture6_threads.txt |Threads}} [[https://youtu.be/ELZjdkKvTe8|Czech lecture]] [[https://youtu.be/Nz1FDToCNCo|English lecture]]| {{ :courses:fup:lectures:lecture6_2019.pdf | Slides}} {{ :courses:fup:lectures:lecture6log.txt |Log}} | |Apr 7 (16)| 7. Lambda calculus|{{ :courses:fup:lectures:lecture7_2020.pdf |Slides}} [[https://youtu.be/FUy7mxWNoWo|Czech lecture]] [[https://youtu.be/rhoZPFi7qns|English lecture]][[https://arxiv.org/abs/1503.09060 | Reading ]]| {{ :courses:fup:lectures:lecture7.pdf | Slides}} [[https://arxiv.org/abs/1503.09060 | Reading ]] | |Apr 14 (23)| 8. Introduction to Haskell| {{ :courses:fup:lectures:lecture8_2020.pdf | Slides}} [[https://drive.google.com/file/d/1Apz7m-JLc1OpJH4Qom6waUGNgEQbKca5/view?usp=sharing| English lecture]] | {{ :courses:fup:lectures:lecture8_2019.pdf |Slides}}{{ :courses:fup:lectures:lecture8log.txt |Log}} | |Apr 21 (30)| 9. Haskell types | {{ :courses:fup:lectures:lecture9_2020.pdf |Slides}} [[https://drive.google.com/file/d/1Uybv0UF6mP01C8WdHeu_KsGESAOyOSc8/view?usp=sharing|Czech lecture]] [[https://drive.google.com/file/d/11AmZ50BhJMmPyfZ66K2cmcweuFvp0iw4/view?usp=sharing|English lecture]] | {{ :courses:fup:lectures:lecture9_2019.pdf |Slides}}{{ :courses:fup:lectures:lecture9log.txt |Log}} | |Apr 28 (7)| 10. Type Classes and Other Features | {{ :courses:fup:lectures:lecture10_2020.pdf |Slides}} [[https://drive.google.com/file/d/1qYEN4k_OYA1KhSDftZa040pmWfmPjIiW/view?usp=sharing | Czech lecture]] [[ https://drive.google.com/file/d/1peAU65c_yGSE5t7T7qme9VFbTiDiQKRt/view | English lecture]] | {{ :courses:fup:lectures:lecture10_2019.pdf |Slides}}{{ :courses:fup:lectures:lecture10_2019log.txt |Log}} | |May 12 (14)| 11. Haskell IO | {{ :courses:fup:lectures:lecture11_2020.pdf |Slides}} [[https://drive.google.com/file/d/1-2uolZHK0OQIjIp7G0StbfDJN_gONzBD/view?usp=sharing | Czech lecture]] [[https://drive.google.com/file/d/1OtJw7XmwtL1c4UdnzZ9xEBcM88XdEZmq/view?usp=sharing | English lecture ]] | {{ :courses:fup:lectures:lecture11_2019.pdf |Slides}} {{ :courses:fup:lectures:lecture11log2.txt |Log}} {{ :courses:fup:lectures:hangman2.txt |Hangman}}| |May 19 (21)| 12. Haskell monads | {{ :courses:fup:lectures:lecture12_2020.pdf |Slides}} {{ :courses:fup:lectures:expr_ghc.hs.txt |expr.hs}} [[https://drive.google.com/file/d/1M0i4nxAYGDSO9OTovI5fecxOSJCJ5ork/view?usp=sharing|Czech lecture]] [[ https://drive.google.com/file/d/1V51D8Y1TNVEv40Bg8gfrROrUCwn73FBw/view?usp=sharing | English lecture]] | {{ :courses:fup:lectures:lecture12_2019.pdf | Slides}} {{ :courses:fup:lectures:lecture12log.txt | Log}} {{ :courses:fup:lectures:listmonad.txt |listMonad}} {{ :courses:fup:lectures:expr.txt | expr}} {{ :courses:fup:lectures:lasse_eval.hs.txt |}} {{ :courses:fup:lectures:lasse_l12.hs.txt |}}| |May 26 (28)| 13. FP in the Real World | {{ :courses:fup:lectures:lecture13_2020.pdf |Slides}} {{ :courses:fup:lectures:adamszlachta-haskell-scala_subset_2020.pdf | Scala}} {{ :courses:fup:lectures:johnhughes-map-reduce_subset.pdf |MapReduce}} [[https://drive.google.com/file/d/1CQSqSyP2LnpNeVKoB8W-v-cJCBURDBbq/view?usp=sharing | Czech lecture ]] [[https://drive.google.com/file/d/1MlvQOa8rPnFJ5002j1uJzZhTqgf_j4mH/view?usp=sharing | English lecture ]]| {{ :courses:fup:lectures:fpp.pdf |}} {{ :courses:fup:lectures:fppatavast.pdf |}} [[https://github.com/sideeffffect/haskell-json-service|Demo]] | /* |Feb 27 (Mar 1)| 2. Lambda abstraction |{{ :courses:fup:lectures:lecture2.pdf |Slides}} {{ :courses:fup:lectures:lecture2log.txt |Log}} | |Mar 6 (8)| 3. Higher order functions |{{ :courses:fup:lectures:lecture3.pdf |Slides}}{{ :courses:fup:lectures:lecture3log.txt |Log}} | |Mar 13 (15)| 4. Closures and lazy evaluation |{{ :courses:fup:lectures:lecture4.pdf |Slides}}{{ :courses:fup:lectures:benwood-racket-lexical-closures_subset.pdf |Ben Wood's slides}}{{ :courses:fup:lectures:lecture4log.txt |Log}} | |Mar 20 (22)| 5. Imperative aspects of Scheme|{{ :courses:fup:lectures:lecture5.pdf |Slides}}{{ :courses:fup:lectures:lecture5log.txt |Log}} | |Mar 27 (29)| 6. Imperative Scheme and paralellism|{{ :courses:fup:lectures:lecture6.pdf |Slides}}{{ :courses:fup:lectures:lecture6log.txt |Log}} | |Apr 3 (5)| 7. Lambda calculus|{{ :courses:fup:lectures:lecture7.pdf | Slides}} [[https://arxiv.org/abs/1503.09060 | Reading ]]| |Apr 10 (12)| 8. Introduction to Haskell|{{ :courses:fup:lectures:lecture8.pdf |Slides}}{{ :courses:fup:lectures:lecture8log.txt |Log}}| |Apr 17 (19)| 9. Haskell types |{{ :courses:fup:lectures:lecture9.pdf|Slides}} {{ :courses:fup:lectures:lecture9log.txt |Log}}| |Apr 24 (26)| 10. Other Haskell Language Features | {{ :courses:fup:lectures:lecture10.pdf |Slides}} {{ :courses:fup:lectures:lecture10log.txt |Log}} | |May 3 (15)| 11. Haskell IO | {{ :courses:fup:lectures:lecture11.pdf |Slides}} {{ :courses:fup:lectures:lecture11log2.txt |Log}} {{ :courses:fup:lectures:hangman2.txt |Hangman}}| |May 10 (17)| 12. Haskell monads | {{ :courses:fup:lectures:lecture12.pdf |Slides}} {{ :courses:fup:lectures:lecture12log.txt | Log}} {{ :courses:fup:lectures:listmonad.txt |listMonad}} {{ :courses:fup:lectures:expr.txt | expr}}| |May 21 (24)| 13. FP in the Real World | {{ :courses:fup:lectures:lecture13.pdf | Slides }} [[http://scalacamp.pl/data/haskell-scala-handout.pdf | Scala ]] [[http://www.cse.chalmers.se/edu/course/pfp/Material/MapReduce/slides.pdf | Map Reduce]] [[ https://docs.gimp.org/en/gimp-using-script-fu-tutorial-script.html | Gimp ]] | */ ====== Other resources ====== [1] R. Kent Dybvig: The Scheme Programming Language, Fourth Edition, MIT Press, 2009. https://www.scheme.com/tspl4/ [2] Greg Michaelson: An Introduction to Functional Programming Through Lambda Calculus, Dover edition, 2011. [3] Harold Abelson and Gerald Jay Sussman and Julie Sussman: Structure and Interpretation of Computer Programs, MIT Press, 1996. https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html Lexical scopes: https://docs.racket-lang.org/guide/eval.html Lazy evaluation: https://sites.ualberta.ca/~jhoover/325/CourseNotes/section/Scheme_3.htm Streams: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html Side effects in scheme: https://courses.cs.washington.edu/courses/cse341/05au/lectures/scheme-side-effects.html "Objects" in scheme: http://sarabander.github.io/sicp/html/3_002e1.xhtml All sorts of materials on Haskell: https://haskell.org/documentation/ Creating Haskell types: http://learnyouahaskell.com/making-our-own-types-and-typeclasses Haskell pattern matching: https://www.haskell.org/tutorial/patterns.html Haskell modules: https://www.haskell.org/tutorial/modules.html Haskell IO: https://wiki.haskell.org/Introduction_to_IO Haskell IO: https://wiki.haskell.org/IO_inside Haskell Monads: https://www.schoolofhaskell.com/user/bartosz/basics-of-haskell/10_Error_Handling Haskell Functors: http://learnyouahaskell.com/functors-applicative-functors-and-monoids