A picture of Markus Kloimwieder.

Markus Kloimwieder

Prior to being a Clojure freelancer, Markus shared a desk with other traders (some of them fellow physicists) in an Austrian bank for 10 years. There he started to replace his Excel sheets with re-frame apps. Before that he was implementing trading systems in banks all over Europe whilst covering his lack of financial knowledge with a masters course in Oxford. At CERN in Geneva, he wrote his diploma thesis and got to know C++ but never really understood when to use which OO pattern.

@

Functional Physics: Code Along with Visual Blocks

By Markus Kloimwieder

The task of formulating a mathematical problem as a computer-executable program and debugging that program is a powerful exercise in the process of learning theoretical physics. Numerous physics books, such as “The Structure and Interpretation of Classical Mechanics” (SICM) by Sussman and Wisdom [1], use code snippets along with traditional mathematical formulae. Some lecturers show coded physics examples on slides or in Jupyter notebooks. However, it is hard for many physics students to grasp code in real time, let alone code along in such lectures, because they initially lack the required coding skills and often need to install lots of unfamiliar software. This video [2] shows a Clojure based environment where physics examples from the SICM book are presented as graphical puzzles. No software other than a web-browser is needed to code along and play with the puzzles [3]. Coding is performed by the lecturer by moving and connecting visual blocks without the need to type anything on the keyboard, the intention being that viewers follow in real-time. Given that the puzzles are readily prepared by a programmer, the proposed environment enables any domain-identified person to use interactive coding in a physics lecture. [1] https://mitpress.mit.edu/books/structure-and-interpretation-classical-mechanics-second-edition [2] http://www.kloimwieder.com/videos/MAVA_compress_210210_150928.mp4 [3] https://kloimhardt.github.io/cljtiles.html