Precalculus Essay Test

As something to do while waiting for new advisees at our first summer registration event, I attempted to turn a typical precalculus exam into an essay test – no calculations, just words.  Actually also diagrams.  You can see it at the end of this post.

What I found out:

  • Students would have to read too much.
  • The exercise helped me clarify what I really wanted them to know and is therefore recommended.
  • Sometimes just doing the problem is sufficient evidence of understanding.
  • I am dependent on the unit circle model for explaining and understanding trig functions.  Many of the problems were really to see if the students really knew it.
  • The questions were somewhat labored since I was converting a standard test rather than starting from zero.
  • The questions demanded precise language – never a bad discipline.
  • Students have to be primed and practiced for such an exam.
  • The test will be hard to grade.  I would need explicit rubrics for each problem – something I do naturally on the standard tests.

Precalc Test

Posted in Curriculum, Pedagogy, Teaching | Tagged | Leave a comment

Changing the Limits of Integration

It is possible to change the limits of a definite integral to any limits you want by using a linear u-substitution.  To go from the integral from a to b to the integral from a’ to b’, use a u-substitution of u = mx + c, with m = (b’ – a’)/(b – a) and c = (a’b – b’a)/(b-a) with du = mdx.  This technique is used in Gaussian Quadrature for instance.

This is simply a change of scale and a translation.  I was interested in what it looked like as the shape got deformed, always with the same area, to the targeted limits.  Here we ‘move’ a parabola from [3,6] limits to [-1,1] limits:  Moving Parabola to Adjust Integration Limits Here is the final frame:

Parabola now shifted to [-1,1]

Slightly more interesting was to watch this low three peaked object change to a narrow three peaked shape.  The scaling does not change the number of periods displayed because although the period changes, the plotting interval changes accordingly.

Three Peak Beginning Shape

Three Peak Ending Shape

You can watch the video here. That’s all.  I just used this exercise to learn how to create animations using Python.

Posted in Cool Ideas, Math Explorations | Tagged | Leave a comment

I Love Math – And It Makes Me Glad

I love the game of Go, I love golf, I love my wife, I love teaching, and I love math – and this makes me glad.

Eight years ago, I ended that sentence with the word, “sad.”  Eight years of minor and not so minor health problems. Eight years of increasingly ill golf buddies and relatives. Eight years of friends and relatives passed.  I have the sense that I am intently clinging to those activities and those people who give me the most pleasure. Now I marvel at those few new ideas that enter my brain.  I am paying closer attention to my friends, my students and my wife and sometimes reel in amazement at their creativity, their humor and their courage. I am still looking forward and striving to improve, though now there is a sense of impending limitation and fear of not finishing my small projects. So, I’m glad and grateful that I can still play and think and enjoy other’s company.  As you can see, I am no longer measuring or judging my performance. I am intentionally and self-consciously paying attention. I love living on the Earth in an Earth-designed body with an Earth-responsive brain and it makes me glad.

Posted in Rants | Leave a comment

Machine Learning – So, Explain Yourself

We humans are not giving up without a fight. Though computers are clearly outthinking us, see AlphaGo for example, we aren’t listening.  Cynthia Rudin, my latest hero, describes the issue in this video. Humans need reasons. In the paper, A Bayesian Framework for Learning Rule Sets for Interpretable Classification. Journal of Machine Learning Research (JMLR), 2017 Tong Wang, Cynthia Rudin, Finale Doshi, Yimin Liu, Erica Klampfl, and Perry MacNeille,  she and her researchers devised a machine learning method that provides compact understandable rules that define specified success. This post is a report on my experiments with the accompanying program that was posted here on github.

I first used their tic-tac-toe example to get all the Python parts running. The output, as I found out, was a set of rules defining what a win looked like. Then I decided to see if the method could generate the rules of the game of  Set in the same way. Set is played with a deck of cards. Each card has a symbol or symbols having four characteristics – number, shape, color, and fill type, each with three different possibilities. A set is three cards that have either all different or all the same possibilities for all four characteristics. To make the resulting rules from the program a little easier to understand, I chose to do the simulation with just three characteristics called a, b and c with three possibilities 0, 1 or 2 for each.

After messing around with random deals for a while, I found that the proportion (4%) of natural hits was too low for the program to handle. In my struggle, since nothing seemed to be working, I had added logical summaries to the input data columns. In essence, I preprocessed the information. Each deal of three cards was now accompanied by six columns describing whether each of the characteristics were all the same or all different. This felt like cheating. Since I had known what I was looking for, I set up columns that summarized those exact traits. For a while, I experimented with just this summary information. I had started by using all permutations of the deals, then changed to just all combinations since the program did just as well without the redundancy. The four percent success rate was not enough for the program to learn the distinctions so I turned the problem on its head and defined hits as non-sets. This lead to a succinct set of rules arrived at quickly. There were the three rules for non-Sets, to quote, “(‘cAllDifferent_neg’, ‘cAllSame_neg’) (‘aAllDifferent_neg’, ‘aAllSame_neg’) (‘bAllDifferent_neg’, ‘bAllSame_neg’)”. This translates as characteristic c can’t have all different traits and characteristic c can’t have all the same traits or  characteristic a can’t have all different traits and characteristic a can’t have all the same traits or characteristic b can’t have all different traits and characteristic b can’t have all the same traits. This is exactly how a human might describe the game of Set’s rules. Next I added columns for the specific characteristics on each card. The program properly ignored the more detailed information and reverted to the summary information since they gave a more compact set of rules. Finally, I eliminated the summary rules. The list of rules was longer than it needed to be and had evident overlap. It was tricky to parse, i.e., explain to myself. Anyway my learning curve has flattened out. Now I want to explore real data. This is in the works.

What have I learned? 1) The method of assigning added negation columns saves time and gives fewer, shorter rules. 2) Looking for rules that define non-hits is sometimes more efficient. 3) It is sometimes useful to preprocess the data into partial summary logical new columns. 4) Using someone else’s program without a understanding every line leaves a residue of uncertainty.

Also, a shout out to the Jupyter notebook system which made working with Python much easier and more organized. This type of notebook is particularly useful for the kind of casual experimenting that I did. Each time, I copied portions of the program’s run results and pasted them with some comments into a new HTML cell as documentation. The result was a crude narrative which I drew on for the above.

Posted in Cool Ideas, Math Explorations | Tagged | Leave a comment

Science Problems with an Apology

I added these two problems to the Precalculus homework list as part of my effort to incorporate science examples in my classes.

Science Problems for Precalculus

Science Problems for Precalculus

They were taken from solutions to some physics exercises and intended to give more practice on multi-variable systems. Afterwards I shared a copy with our science people accompanied by an apology. I had stripped the problems of meaning. They just sit there lifeless, without any scientific justification or reasoning. Our students will still benefit from seeing problems that are closer, if only in notation, to the ones they will see in their science courses. Anyway, if you think about it, the problems are least one level above the algebra abstraction where all variables are x and y.
I just got an email from our physics professor. He asked me to reword the first problem to emphasize that the tangent of theta is a function of several variables. What a good idea. This is a point of view that we introduce too late in mathematical curricula. I can’t wait to discuss this stuff with my students tomorrow.

Posted in Curriculum, Teaching | Tagged | Leave a comment

An Optimization Excursion

A student, Emily Wimmer, walked into my office.  She was trying to make sense of an optimization algorithm.  We worked it out and off she went to write a MATLAB program to test the algorithm on a well-behaved function. Of course, just as a mathematician instinctively looks for an counterexample to “break” a proof, I started to imagine a function that would be hard to optimize, in this case,  a prototypical hilly landscape with lots of local optima.  My idea was to use slightly perturbed Chebyshev polynomials over a restricted domain.  With a little tweaking, I had my hilly terrain.

The function is specified in this python code.

# Hilly Landscape Function

def T10X(x):
x = x +.2
y = -(512*x**10-1300*x**8+1120*x**6-400*x**4+50*x**2-1)+1*x**12+.4
return y

def T10Y(x):
y = (512*x**10-1285*x**8+1120*x**6-400*x**4+50*x**2-1)-1*x**12 – .2
return y

def func2dplot(x,y):
f = -T10X(x)*T10Y(y)
return f

In the course of this investigation I found these images of awesomely weird functions and learned about python’s scipy library of optimization methods.  I tried one of them, “basinhopping,” on my function.  Hence the garish ball locating the “optimum” on the graph above.  It is evidently not the global maximum.  Thus I “broke” that particular optimization method.

All this was an excursion in the middle of excursions.  I was working on a machine learning application.  Then Emily came in with an interesting problem.  Before I could think through that problem, a biology professor had a question about curve-fitting survival curves.  I got that one lined out, then returned to the optimization.  Now I can get back to my machine learning application but who knows what other interesting problem will walk through the door.

By the way, the Jupyter system of interspersing python code and HTML has been highly useful for all these types of explorations. Recommended.

Posted in Cool Ideas, Math Explorations | Tagged | Leave a comment

Teaching Choices

Last week we had a few sixth graders visit our elementary algebra classroom.  While my students were taking their daily quiz, I put this on the board for the youngsters.  I went to the back of the room and explained the question. I  put 2D Boxcar on the screen for those that didn’t want to think about the problem.  Fairly soon I got the answer (Done without paper and pencil b-t-w).  So I changed the problem to 

This was a choice.  When I talk to individual youngsters about math, I try to build an argument.  For example, to show that multiplying by eight is easy, I might ask this series of questions.

In the example above, I wasn’t going for the basic structure.  If so, I would have asked them to solve

next.  Instead I asked for the solution to


thinking that they would have to perturb the previous answer (and use fractions) or maybe try adding the right sides and dividing by two.  My next problem would have been

Most of this was done unconsciously since I was handing out papers and tending to other aspects of class management.

Posted in Classroom Happenings, Pedagogy, Teaching | Tagged | Leave a comment