Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Lectures

Date Title Slides Other
Feb 21 (23) 1. Introduction Slides Log
Feb 28 (Mar 2) 2. Lists and trees Slides Log
Mar 7 (9) 3. Higher order functions SlidesLog
Mar 14 (16) 4. Pattern matching and immutability Slides Log RA-Lists
Mar 21 (23) 5. Streams and macros Slides Log
Mar 28 (30) 6. Mutable data and interpreters Slides Log Brainf*ck
May 4 (6) 7. Lambda calculus Slides
Apr 11 (13) 8. Introduction to Haskell Slides Log jarnik.hs hie.yaml
Apr 18 (20) 9. Haskell types Slides Log
Apr 25 (27) 10. Type classes Slides Log Json.hs
May 2 (11) 11. Monads and Haskell IO Slides Log
May 16 (18) 12. Monadic parsing Slides Log Parser.hs
May 23 (25) 13. State monad Slides Log State.hs brainfuck.zip IOState.hs

Lecture notes

As we proceed through the lectures, I will try to write down lecture notes so that you have most of the course material in a single place. However, I am unsure if I will manage to be on time with them due to other obligations. The lecture notes are available at the following website.

Old recorded lectures

Old recorded lectures from 2021 can be found here.

Other resources

[1] 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

[2] R. Kent Dybvig: The Scheme Programming Language, Fourth Edition, MIT Press, 2009. https://www.scheme.com/tspl4/

[3] Raul Rojas: A Tutorial Introduction to the Lambda Calculus. http://www.inf.fu-berlin.de/lehre/WS03/alpi/lambda.pdf

[4] Greg Michaelson: An Introduction to Functional Programming Through Lambda Calculus, Dover edition, 2011.

[5] Graham Hutton: Programming in Haskell, Cambridge University Press, 2016.

Functors, Applicatives, and Monads In Pictures: https://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.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

courses/fup/lectures/start.txt · Last modified: 2023/05/23 08:28 by xhorcik