Table of contents Functional and Concurrent Programming Introduction Getting Started with Elixir Recursion Lists Sorting Binary encoding Calculate Derivatives Lambda Calculus Lambda Calculus Operational Semantics Semantics Trees Binary Tree 2-3 Tree AVL Tree Splay Tree Data Structures Morse Encoding LZW Encoding Ray Tracer Concurrency Elixir Concurrency Mutual Exclusion Network Transport Layer Bitonic sorter Seminars Huffman Encoding Meta-Interpreter Mandelbrot Fractal Philosophers and Concurrency Small Web Server Problems Functional Programming Concurrency