I am very much of the opinion that the way we teach math here is fundamentally broken. Here are a few places where I think it can be fixed:
1. Use Greek geometry to help teach children how to experiment in math. Consider texts like Plato's Meno as an inspiration. Projects at the elementary school level could replicate Socrates' solution for finding a square with half the area as the original square (and its--easier--natural extension, a square with double the area). Projects can grow more complex* until e.g. a fifth or sixth grader can prove the Pythagorean Theorem. Using Greek math also helps introduce a deeper understanding of ratios (fractions), something teachers have confided in me American students have gotten progressively worse at.
2. Emphasize the relation, not the input and output. This is for arithmetic. Right now our arithmetic is rote, tabular, a strict interpretation of inputs into outputs. But the core of mathematical analysis is relational. Operators are nothing more than a statement of relation: We need to find a way to teach as such, instead of getting bogged down in numbers to an inordinate degree.
3. Reclaim the ancients' works. Of particular note, there is no reason whatsoever why Euclid's Elements, the standard textbook on geometry for more than two millennia, is not used in high school classrooms today. Likewise, analytic geometry should be based on Descartes' La géométrie (with van Schooten commentary and an augment of Fermat etc. papers and more illustrations); algebra, al-Khwarizmi's Compendious Book. Euler's textbooks can also be considered, but his treatment of trigonometry with complex numbers is perhaps a bit too Baroque for a modern audience. The flow algebra -> analytic geometry -> calculus also needs to be emphasized, as it is actually quite a bit more natural than most people realize. There is a case to be made that the middle school curriculum can run Euclid -> al-Khwarizmi -> Descartes, with standard calculus instruction occurring no later than the sophomore year of high school (and is a freshman subject for most students).
4. Rebuild the calculus pedagogy. One of the reason why calculus is perceived to be "hard" is because it begins with limits, but limits are discussed with insufficient tools for their analysis; by the time differentiation and integration are gotten around to, too many minds have been closed to those operations' ease and intuitive arising. Instead the pedagogy should begin with the easier operations, and once a good handle has been gotten on differentiation and integration proceed to the discussion of limits, why they matter, and how calculus operators both depend on limits and make calculating limits bearable. In addition, calculus needs to be used to cement the relational nature of math, as the elementary system is just an augment of unary function operators on analytic geometry (the only unary operation most students are exposed to prior is arithmetical negation--the difference between 2 and -2). Making use of Newton's, Leibniz's, the Bernoulli's' etc. papers is also useful, although at this point the textbooks begin to massively improve in quality.
5. Make discrete mandatory, and prerequisite to linear algebra. There are several reasons for this: (1) discrete math effectively functions as Intro to Higher Math; (2) a lot of linear algebra is essentially set theory and function theory in vector spaces; (3) with programming-language knowledge now needed even in the fine arts (according to UArts students) understanding its underpinnings is more important than ever; and (4) being able to perform in other types of discrete math, like combinatorics, is becoming increasingly necessary in our modern-day world. Understanding iterated operations and floor and ceiling functions, for example, should be SAT-level expectations.
6. Embrace models. Current mathematical pedagogy ill prepares us to actually put math to real-world use--the construction of models. This is universally covered in the various applied disciplines, but being able to construct simple models such as speed v. time (yielding velocity, acceleration, and jerk) or simple binary-string-based programs should be a skill shared by all high-school graduates. Grasping the principles needed in such modeling allows students to develop significantly more complex models to fit and extrapolate available data.
7. Embrace tradition. My final major critique is that most (not all) math teachers I've had have had little interest in exploring the tradition of math. While there are always students that complain about classroom trivia, it does a serve an important pedagogical purpose: It links learners to the discipline's tradition, helps open avenues for exploration, is often entertaining and a break from the hard work of the day, and generally makes the discipline more human, and therefore more interesting. This is true throughout most disciplines--it is hard to imagine a physics class, for example, without mention of Galileo or Newton or Einstein, or a philosophy class without Descartes, Spinoza, Leibniz, or Nietzsche; why, then, does the mathematical pedagogy persist on undervaluing its human component?
My experience with math is that when I graduated high school, I had a deep, fundamental, abiding hatred of it; it took nearly a decade to learn what I needed to to overcome this hatred. Mathematics is not valued in our society (but nor is literature); the problems turn on deep-seated pedagogical issues that tend to idealize math as a sterile, mechanical thing, instead of embracing its true nature as a very human endeavor, and a very human logical construct. To teach math right--teachers must humanize it, no matter how great the temptation otherwise.
*For example, utilizing Archimedes' method of exhaustion to find a range for π (for fifth graders, for example).