Repository for the course Programming II - ID1019
This course covered two crucial programming paradigms: functional programming and multi-threaded programming. Topics included recursion, pattern matching, and non-modifiable data structures in functional languages. The course aimed to enable us to use these techniques effectively. The course consisted of 9 mandatory assignments and 4 higher-grade assignments, 2 of which were completed and one that was only partially completed.
All assignments are contained within a folder with their name in the assignments folder. Below is a list of the assignments (with the folder name), together with a short description of them.
Mandatory exercises (in chronological order)
- Derivative - a derivative calculator.
- Environment - a key-value database.
- Evaluate - a calculator of basic mathematical expressions
- Operations - an exercise to see how recursion can be used to perform different list operations.
- Springs - the day 12 assignment of the 2023 Advent of Code (part 1).
- Ranges - the day 5 assignment of the 2023 Advent of Code.
- Mandelbrot - a Mandelbrot image generator.
- Huffman - a Huffman text encoder and decoder.
- Morse - surprise assignment with only 10 hours of completion time. A Morse code encoder and decoder.
Higher grade assignments (in chronological order)
- Interpretor - a meta interpreter supporting a small portion of the Elixir language.
- Higher order function (same file as operations assignment) - utilising higher-order functions (HOF) to implement the same functions as in the mandatory assignment (operations).
- Springs (same file as mandatory Springs assignment) - part 2 of the Advent of Code assignment. This assignment was only partially completed.