On Friday we were studying synthetic substitution/division in Algebra 2.&nbsp; <br>After going through the algorithm and after showing through factoring why it worked, I had them look at this code:<br><br>def evaluate(polynomial, x):<br>

&nbsp;&nbsp;&nbsp; value = 0<br>
&nbsp;&nbsp;&nbsp; for coefficient in polynomial:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value = value*x + coefficient<br>&nbsp;&nbsp;&nbsp; return value<br><br><i>polynomial </i>is a list of coefficients.<br><br>This algorithm is identical to the factoring analysis I showed them.&nbsp; To then create the function &#39;divide&#39; is a simple matter of returning a list of coefficients rather than one final value.<br>

<br>This &#39;concept map&#39; shows exactly the same thing as the diagram in our text, but it would be even more accurate to initialize <i>value</i> as polynomial[0] and to then make the for-loop &#39;for coefficient in polynomial[1:]&#39;, but I thought that in an environment where programming in math classes is still considered something alien, the indexing might cause some silly grade-anxiety reactions.&nbsp; How sad that this has to be an issue.<br>

<br>But I figure that for the kids that are interested, and there are some, looking at indexing and splicing might be enticing.<br><br>This has been my experience - looking at math concepts I have long
taken for granted and thinking about how to express them in computational
form as interacting functions/classes has shed new light on my own
understanding.&nbsp; I can&#39;t help think that this would be invaluable for
education.<br><br>- Michel<br>