Hi Nick. Great to have you! There are several people here who have taught extensively, both at the K-12 and university level.
Responding to one point.
> I also see some of Johannes points, and agree that simply exploring mathematics without a computer would perhaps be most effective way for students to learn mathematics.
I wouldn't rush to an absolute answer either way. After all, "learn mathematics" is a very broad goal. There are certain to be parts that are best learned without a computer (come to think of it, this is true of computer science, as well!), but just as computing has changed the way we communicate, work, research, entertain, etc., is it really surprising that it would also change how we learn?
I care very much about mathematics education, and I'd point out that educators are facing a giant problem. Expressing ideas in any kind of formal system has historically led to great advances in understanding... but on a time frame far longer than students' attention spans. In the short term, the effort on formalism pays no rewards because it's more likely that results come from errors in the formalization rather than the original topic of curiosity. Or, if one tries to memorize instead of understand, then formalism can be worse than no effort at all (e.g., see classic results on teaching columnar arithmetic in to young students who lack the concept of place value). In the past, this problem has been "solved" through a mix of inequality and authority; mathematics has for much of history been taught to those with enough idle time, a comfortable enough life, and the right temperament and respect for authority to reach the point where there are benefits to the learning, and others have simply been left out. The consensus of the educational community in the last several decades is that this is no longer acceptable. So what do we do?
One answer is to try to artificially lure all students along the same path that was previously only suitable for a few. But another approach is to find a new path, where the rewards of expressing ideas formally are more readily accessible. And THAT is where computing comes in. In many ways - data analysis for the social sciences, computational modeling in biology or physics, and lots more - computing makes modeling things formally pay off. By building such a model, you create something that works: gives new insights into the data, lets you see the results of trial simulations in a biology model, and so on. But mathematics is the best fit of all -- both because it's always had the highest abstraction hump to begin with, and because by applying various kinds of declarative programming, expressing relationships in mathematics is defining a computationally relevant model. In that sense, it is at the heart of the whole enterprise.
I do agree that it's important to be cautious about what we're doing. It's all well and good to say that we're out to support mathematics, computational thinking (whatever that means this week), abstraction, and formal modeling; but too often, what these programs look like in practice is just shoving simplifications of the software engineering skill set into classes for general audiences. If you're spending most of your time teaching the syntax of Python or Java instead of thinking mathematically, then that's what your students are learning, too. Too many activities are built around today's software engineering careers, and not the educational opportunities that computing as a whole opens up.
I think listening to teachers is a great idea. At the same time, though, I'll caution you that teachers don't all share the same points of view. Just like in the rest of the population, there are teachers (yes, even math teachers) who range from technically savvy to full-on technophobes. And there are teachers who range from a flexible and broad view of mathematics and its relevance in the world to those who think "math" means the list of specific skills their students are directly tested on, and prefer to use their time coaching students on fruitful guessing strategies (yes... sadly, even math teachers). You might not get the reaction you're hoping for every time, so just keep an open mind as you connect with classrooms... and don't forget to listen to the students, too.
Based on what you've said, I'd recommend you check out
http://www.bootstrapworld.org. I'd also love to chat with you about my own project and curriculum, CodeWorld (
http://code.world), which I started working on around the same time about a decade ago. There are some differences in philosophy, but both are based on taking advantage of the overlap between mathematics and functional programming.