Shrimp is an embedded domain specific language for Haskell where programs are expressed as flowcharts. Its purpose is to demonstrate the feasibility of trace-based programming in an educational setting. It provides tracing capabilities and other functionalities such as checking whether a program's execution coincides with an explicitly given trace in order to facilitate the application of trace-based programming.
Machine Program Interpreter (MPI)
MPI is a general interpreter for machine programs on arbitrary models of computation consisting of a command-line interface written in Haskell and a web interface to facilitate its use in a classroom setting so students don't have to install additional software. Custom models of computations can be added by implementing them in Haskell. It is currently under development.
Algorithmic Thinking and Programming Course
A course intended for people with no or little background knowledge in programming. During the course the learner has to develop algorithms for simple tasks such as arithmetics and implement them. The implementation of the algorithms is treated as a separate step and the learner is shown how a program can be constructed from traces. An outline of the course and the conceptual framework are described in the paper Separating Algorithmic Thinking and Programming. Initial runs of the course with various test persons have been successful. I'm working on an interactive web-based variant of the course suitable for self-learning.