HSMW Algorithms and Data Structures Course from the University of Applied Science Mittweida in the subject algorithmic theory that took place in 2018.
NOTE: Commentary might appear in German.
Algorithms are the bedrock of any computational process. Their role is central in making decisions, performing calculations, and processing data. The course dove deep into the theory of algorithmic computation and ventured into the intricate world of algorithms, their characteristics, and their efficiency.
We probed the realm of searching and sorting algorithms, assessing their efficiency and role in structuring data. We also gained a deep understanding of various data structures that aid in organizing data and manage parallelism.
- Characteristics of algorithms
- Measuring efficiency of algorithms
- Search and sort algorithms
- Data structures for organizing data
- Hash tables, Heaps and Tries
- Algorithmic design techniques
- Parallel and Randomized algorithms
All project folders have their own project description and showcase.
The first two projects focus on basic data structures and search algorithms. They include terminal-based applications like array and matrix measures and lists and search applications. These projects introduce practical tools for array creation and formatting, matrix calculations, semi-magic square checking, and an intricate Snail Matrix Algorithm. A double-linked list framework and a search algorithm benchmark are also part of the toolbox.
Array and Matrix Measures
- Array Creation and Formatting Tool
- Matrix Calculation Tool
- Semimagic Square Checker
- Snail Matix Algorithm
Lists and Search Applications
- Double Linked List Framework
- Search Algorithm Benchmark Tool
Projects 3 to 5 use the Unity game engine and are standalone project, showcasing the power of visualization in understanding complex algorithms. Unity can render graphics in real-time, which is perfect for visually interpreting the process and flow of algorithms. In these projects, you can explore visual implementations of the selection and insertion sort algorithms and inspect and build a graphical representation of a spanning tree generated from a given graph.