Domain-Learning with Computational Microworlds
(PyZX)
I loved Papert's Mindstorms. Part of why it resonated is simply because I like using programming to learn stuff. Not everyone likes that, but I think it's still worth exploring how domain specific languages can guide self-directed learning.
It's worth mentioning that Sam Ritchie already outlined, like, a lot of this, in The Dynamic Notebook and his ongoing effort to port SICM there.
- Are these Enabling Environments?
Examples
- Calculus with Julia
- Math 229 Projects (College of Staten Island course on calculus with julia)
- Statistics with Julia
- Computational thinking (modeling) with Julia
- Designing Sound (with Pd)
- Structure and Interpretation of Classical Mechanics (in Scheme)
- Functional Differential Geometry (in Scheme)
- Qiskit
- Programming Language Foundations in Agda
- Learning how to Prove: From the Coq Proof Assistant to Textbook Style
- Software Foundations (In Coq)
- Monotone Co-design Theory
- Probabilistic Programming
- ArviZ: Exploratory analysis of Bayesian models
- Edward
- Probabilistic Models of Cognition (taught with WebPPL, a probabilistic programming language)
- Xena Project (check their Lean "Natural Number Game")
- Logic & Proof in Lean
- PyZX
- Turtles Termites and Traffic Jams
- Arend Theorem Prover - Cubical Type Theory as an IntelliJ Plugin
- Wolfram U - learn domains through Mathematica
- https://github.com/quantumlib/Cirq
- https://github.com/SciML/Catalyst.jl
- Sagemath Interactions - some explorables with Sagemath
- Haskell+Music Theory
- Haskell Road to Logic, Maths, and Programming
- The Little Typer - type theory via bespoke "Pie" language
- Think Complexity
- All Hail Geometric Algebra! - (in Haskell)
- Math as Code - a bit disappointing in scope, but fun sentiment
- Fantasy Land - Algebraic JavaScript Specification
- ToonTalk - Infinite cardinality of sets
- Knuth's MIX for Art of Computer Programming
- Modeling Game Theory in Haskell - HAGL
- Exploring Mathematics with your Computer
Note: I'm neglecting tons of python stuff. Probably because I think type systems are useful for learning things :-)
Misc
-
Metalinguistic abstraction & DSL design
- taxonomy of bespoke languages for instructional texts
-
MathCell for embedding math in webpages.
(Literate Coq)
-
Literate Coq - Relatedly - misc.why-proof-assistants-bad
-
I'm struck by the un-Haskell-ness of this api. https://reanimate.github.io/
- you don't need to know the ins and outs of Haskell to use this "DSL"
Minecraft
- Robin Sloan - The Secret of Minecraft https://medium.com/message/the-secret-of-minecraft-97dfacb05a3c
-
Imagine yourself a child. Imagine yourself given one of these books: not merely a story of exploration and adventure, but a manual to such.
-
Imagine yourself a child, in possession of the secret knowledge.
-