If you're looking to try it out in a simple way, you could probably dynamically load different functionality or modules with environment variables. But I'm also looking for a good resource
When I was working as a math tutor I would sometimes have to explain composition to a student for an introductory algebra class. When it finally clicked to them that you could pass functions into other functions many other concepts seemed to come to them more easily. Those were some of my favorite moments at that job.