"For example, we teach students in high school that if the product of two polynomials is zero, then to solve we set each one separately equal to zero. Yet this does not hold with nonzero numbers. For example, working in polynomials with real coefficients, we know that f(x) * g(x)=0 implies either f(x) = 0 or g(x) = 0. Yet it is not the case that if f(x) * g(x) = 4, then either f(x) = 2 or g(x) = 2."<p>Does this really require knowing abstract algebra? Seems obvious to anyone doing any sort of multiplication that if the output is 0 then one of variables/functions has to be 0, if it is nonzero then the variable/function can be anything but 0.
Very cool: closure + associativity + identity + inverse properties we use for addition and multiplication = group structure. See <a href="https://en.wikipedia.org/wiki/Group_(mathematics)#Definition" rel="nofollow">https://en.wikipedia.org/wiki/Group_(mathematics)#Definition</a><p>Simplify and connect for the win!
Great. Teach kids some rote manipulations. Things they will have forgotten if they later stumble upon some math. Or will have to relearn in college math.<p>Will the same mistake happen with the learning to code in school movement? Or will there be a sensible connection between abstract computer science and high school coding?