Mark (PPS) gave me an opportunity to simulate a real math/CS course in a moodle. A moodle [link to Moodle] is a webspace, customized to face both teacher (course author) and students (course readers). As a teacher, I'm able to add text objects, quiz objects, link objects and so on (popup driven, point and click). Students watch my course evolve (or remain static once finished). I also collaborate with other teachers, optionally. So yes, it's a nifty system, one of many such, and prototypical of things to come.
The moodle I'm working on is called Python for Algebra Students, meaning I'm taking a "programming to learn" versus a "learning to program" approach. We start with Sequences, which motivate defining functions, which motivates class/object syntax, allowing us to customize our own objects. Once we're able to roll our own, it's on to: rational number type (not native to Python, though decimal is); polynomial type (they form a ring, getting to that); vector type (preview -- more later); then a quick leap into fractals (through complex + trig), group theory (group, ring, field) and number theory (EA, totatives, Euler's Theorem).
Calculus is getting shoved over to Physics (where we might also use Python -- or VPython).
Having a moodle allows me to invite collaborators to look over my shoulder as I develop the above in some detail, and in such a way as to encourage new teachers to explore in this direction. I think younger kids hunger for more crypto for example, and what better way to give it to 'em than to head in the direction of explaining RSA in terms of Fermat's Little and Euler's Theorems? Like in the bestseller In Code.