This repository does not host source code itself.
Instead, it provides a curated index of software projects I have developed that are particularly well suited for educational purposes. These applications are designed to support structured learning, conceptual exploration, and hands-on experimentation across a variety of technical and scientific domains.
The aim of these projects is not only to provide functional software, but also to serve as pedagogical tools. Each application prioritizes transparency, conceptual clarity, and direct control, allowing learners to observe underlying mechanisms, experiment actively, and develop a deeper understanding of the subject matter.
| Application | Usage | Prerequisites | Learning Objectives |
|---|---|---|---|
| Waage | Classroom / Practice | Basic understanding of algebra and equations with up to three variables | Interactive visualization of equations with up to three variables using a "balance" model (circle, triangle, square) that tilts according to equation values, helps learners understand the concept of equality and relationships between variables in a tangible, visual way. |
| Galton Brett | Classroom / Practice | Basic understanding of probability and statistics | Interactive visualization of the famous Galton board, allows users to explore probability, randomness, and the emergence of the normal distribution through simulation. |
| Prime_factorizer | Classroom / Practice | Basic understanding of integer arithmetic | Demonstration tool for performing prime factorization of user-input integers (up to 2³²), helps learners understand factorization processes, number decomposition, and fundamental properties of integers. |
| Vedische Multiplication | Self-Study / Practice | Basic understanding of integer arithmetic | Demonstration of an alternative multiplication method for very large integers, allows users to explore non-standard algorithms and understand efficiency and stepwise calculation techniques. |
| Induktion | Classroom / Practice | Basic understanding of mathematical proofs and induction principles | Collection of exercises for practicing proofs by mathematical induction, helps learners understand the method, structure, and logical reasoning involved in complete induction. |
| Fixed_Comma | Classroom / Practice | Basic understanding of fixed-point arithmetic | Application for visualizing and performing calculations with fixed-point numbers, allows users to set bit width and decimal position, while automatically displaying the resulting numerical ranges, helping learners understand precision and limitations. |
| Application | Usage | Prerequisites | Learning Objectives |
|---|---|---|---|
| Bitverknuepfung | Classroom / Practice | Basic knowledge of Boolean algebra | Tool for evaluating Boolean expressions and visualizing their truth tables and Karnaugh maps, helps learners understand logical simplification and digital logic design principles. |
| Digiman 2 | Classroom / Practice | Basic understanding of digital logic (AND, OR gates) | Interactive simulation of digital circuits, from basic logic gates to flip-flops and shift registers, allows users to explore circuit behavior and sequential logic concepts. |
| Sortieren2 | Classroom / Practice | Basic understanding of sorting algorithms | Interactive visualization of sorting algorithms including Quicksort, Bubblesort, and Selection Sort, helps learners explore algorithmic behavior, comparisons, and step-by-step sorting processes. |
| Anty_Krypt | Classroom / Practice | Basic understanding of classical cryptography and frequency analysis | Tool for analyzing encrypted texts, determining the key length via the coincidence matrix, and calculating the key and decrypted text using frequency analysis, helps learners understand cryptanalysis techniques and classical cipher structures. |
| Baum | Classroom / Practice | Basic understanding of binary trees and tree traversal algorithms | Visualization of binary trees, including AVL trees, with traversal demonstrations, allows users to explore tree structure, balancing, and traversal techniques interactively. |
| Graphen_algos | Classroom / Practice | Basic understanding of graph theory and algorithms | Interactive demonstration of graph algorithms including Dijkstra, Prim, and Kruskal, helps learners explore shortest paths, minimum spanning trees, and algorithmic behavior in graph structures. |
| SQL | Self-Study / Practice | Basic understanding of relational databases and SQL queries | Interactive demo with exercises for working with SQL databases, allows users to practice query writing, data retrieval, and basic database manipulation in a hands-on environment. |
| HeapSim | Classroom / Practice | Basic understanding of memory management and allocation strategies | Tool for simulating various memory allocation algorithms (First Fit, Best Fit, Next Fit, etc.) and analyzing their runtime behavior under different allocation schemes, such as block-wise allocation or dynamically growing arrays, helps learners explore efficiency and fragmentation concepts. |
| TuringMachine | Self-Study / Practice | Basic understanding of theoretical computer science and automata theory | Demo for entering the transition table of a Turing machine with full emulation, allows users to experiment with state transitions, tape operations, and computation processes; additionally, the MeelyMore automaton can be visualized to explore alternate automata behaviors. |
| Loop | Self-Study / Practice | Basic understanding of formal languages and computability theory | Implementation of an interpreter for the µ-recursive language Loop, a strictly terminating theoretical language, allows users to experiment with formally computable functions and explore the principles of bounded computation and non-Turing-complete systems. |
| QProgrammer | Self-Study / Practice | Basic knowledge of Pascal syntax | Editor for writing code in a subset of FreePascal, featuring integrated exercises that are automatically evaluated by a built-in testing system, helps users practice syntax, problem-solving, and code correctness in a guided environment. |
| Application | Usage | Prerequisites | Learning Objectives |
|---|---|---|---|
| FIR_IIR | Classroom / Practice | Basic understanding of digital signal processing and filter theory | Tool for specifying FIR and IIR filters, applying them to both user-defined signals and imported data, and visualizing the results graphically, helps learners explore filter behavior and core signal processing concepts. |
| ImageShop | Classroom / Practice | Basic knowledge of image processing concepts | Interactive tool for chaining image manipulation algorithms using a built-in mini interpreter, allows users to explore the impact of operation order (e.g., translation, rotation) and apply filters such as RGB adjustments, posterization, and more, helping learners understand procedural image processing workflows. |
| Spectrum_analyzer | Classroom / Practice | Basic understanding of Fourier analysis and audio signal processing | Tool for visualizing the Fourier spectrum of audio files, with an interactive feature that allows users to modify ("paint over") the spectrum and regenerate the resulting audio, helps learners understand spectral representation and signal manipulation. |
| Application | Usage | Prerequisites | Learning Objectives |
|---|---|---|---|
| Tippsy3 | Self-Study / Practice | No prior knowledge required | Structured training of touch typing (10-finger system), helps improve typing speed, accuracy, and develop muscle memory. |
| Vokabel | Self-Study / Practice | Basic understanding of vocabulary learning techniques | Application for learning and practicing vocabulary, allows users to review, test, and reinforce language skills through interactive exercises. |
| Fingerspeed | Self-Study / Practice | Basic knowledge of the alphabet and typing skills | Program where users type the letters A-Z as quickly as possible in the correct order, with a high-score system, helps learners improve typing speed, accuracy, and hand-eye coordination. |
| Minipaint | Self-Study / Practice | Basic knowledge of using a touchscreen or mouse | Extremely minimalist painting program, especially suited for touchscreen devices and young children, helps learners explore creativity and basic digital interaction in a simple, intuitive environment. |
In addition to this collection of educational software, you may find the following repositories of interest:
-
Research
Repository for the publication of my "pseudo-scientific" analyses on various technical and computational topics. -
TheCodingTrain
Implementation of numerous educational videos from the YouTube channel The Coding Train, covering topics in programming, algorithms, and creative coding.
I welcome suggestions, educational feedback, and improvement proposals. Please feel free to submit them via GitHub issues.