One of my mainstays, when it comes to teaching Python, is the Composable class.
I worked on this Python type with Steve Holden back in the day, when he was writing his four part Python curriculum for O'Reilly School of Technology. His version of Composable shows up in Chapter One of the fourth course: http://archive.oreilly.com/oreillyschool/courses/Python4/Python4-01.html#s_03 My current version of the Composer class, used as recently as last night in my Session 8-of-10 for Saisoft.net, is embedded in this Jupyter Notebook, which should render in any browser: http://nbviewer.jupyter.org/github/4dsolutions/Python5/blob/master/ComposingFunctions.ipynb The usefulness of the Composer class is multifaceted: * It demonstrates operator overloading, providing meaning / behavior for both __mul__ and __pow__. * Algebraically, composition is a basic operation and relates to "piping" in the bash shell. Composing functions is core to lambda calculus. [1] When the output of a first function becomes the input to a next, that's composition. Example: $ ls *.py | wc -l which outputs the number of Python source code modules in a given directory. Notice how the pipe operator is used to get output from the command on the left to the command on the right. * Finally, Composable is usable as a class decorator, turning the decorated function into a composable one. So introducing composition of functions is an excuse to learn / reinforce many Python concepts. Kirby [1] per previous posts, whereas lambda calc is a highly specialized subject, if repurposed to contrast with delta calc i.e. conventional calculus, it becomes a marketing / publishing term for the kind of discrete math / compsci that states are starting to mandate. As a high schooler taking algebra, you might want to continue with more lambda than delta calc, depending on career plans.
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig