# Does this count?

I gave a quiz this week to assess my students’ understanding of functions, finite and infinite, and functional notation, including the application of a function to a subset of its domain, and it didn’t go well. None of the students finished on time; they all thought it was too hard. As we push deeper into formally defined structures of math the students’ intuitive understanding of what is being asked by a question is beginning to fail them. We’re reaching that point where the logic of the vernacular and the comfort of counting numbers is impeding, rather than enabling, their interpretation of more abstract mathematical notations and structures.

This week we looked more closely at the notation and structure of relations. Every function is a relation, but not every relation is a function. Both are subsets of cross products, but there are rules that functions must follow that relations can ignore. (I sense that there might be an analogy here with life but I’ll leave that for another time.) What was a highlight of the week? A student asked me about the validity of using mathematical induction (counting) to prove that two general sets had the same cardinality. And after a discussion he understood that it wasn’t quite good enough since the sets were not constrained; they might not be finite and they might not be countably infinite, they might just be uncountable.   What was a low-light of the week? I made an error in writing one of the questions on the quiz. No matter how many times I reread a quiz, errors slip through. I also find this true in writing emails, or proofs, or papers, or programs, or blog posts, or anything at all. I remember rewriting a program to substantially reduce the size of an internal data structure—that was at a time when computer memory was much less abundant than today—and at the same time breaking, unintentionally, with a last-minute change, the reporting function of the same program, causing it to write out all messages in duplicate. When I went to demonstrate the savings in memory to the quality control group it was hard to convince them of the validity of the savings when everything they asked the program answered twice.

One other reflection on teaching. Reflection on teaching is hard work. But now I am reflecting on reflecting on teaching. Is there no end to this? Countably or unaccountably so?

# Functions and Rabbits and Birds

This week we looked at functions.

• How to define a function as a subset of a Cartesian product of two sets.
• How to define a function as an explicit transformation of an element of one set into an element of another set.
• How to define a function in a Venn-like diagram.
• What it means for a function to be one-to-one, or injective.
• What it means for a function to be onto, or surjective.
• What it means for a function to be both one-to-one and onto, or bijective.
• How to prove a function is injective, surjective or bijective.
• How to prove a bijection has a unique inverse.
• How to compose two functions to create a third.
• How to prove that the composition of two injective functions is injective.
• How to prove that the composition of two surjective function is surjective.
• How to prove that the composition of a function and its inverse is equivalent to the identity function on the domain of the function.
• How to define the cardinality of any set, finite or infinite (two sets have the same cardinality if and only if there exists a bijection from one to the other).
• How to show that a set is countable (find a bijection from the set to or from a subset of the the positive integers).
• How to show that a set is not countable (suppose it is and create a contradiction.)

When examining the structure of a system of mathematics we assume, define, and prove, looking for connections and abstractions. Is this the best way to learn a system of mathematics?   I don’t think it’s sufficient. It may be somewhat like learning a human language by studying its alphabet, words and rules of grammar without trying to use the language in dialog.   Or somewhat like learning a computer language by analyzing its keywords and expressions without writing and testing programs (a dialog with the compiler and the computer system). Not sufficient, but perhaps still necessary. Can you believe that the set of integers has the same cardinality as the set of even integers if you don’t understand the definition of cardinality which depends on the definition of bijection which describes a property of a mathematical construct called a function which can only be formally defined by an agreed definition of the word set?

Is it surprising that some students of discrete mathematics find the course too hard? Or is it surprising that some students of discrete mathematics find the course too easy?

This quarter, based on feedback from last quarter, I decided to add more interactive examples to my lectures. A number of my new examples look back on functions from continuous mathematics: linear, quadratic, exponential, logarithmic, etc. In discussing one-to-one and onto functions, I use a mix of polynomial functions that all students have seen in prerequisite courses and present general arguments, from graphs of the functions, as to why they are or are not injections or surjections. I also show, briefly, how the first derivative of a cubic function can be used to show that it is or is not an injection. This reference to a derivative engaged some of the students who had taken calculus, but, unfortunately, it panicked some of the students who had not taken calculus. I think this is another tension of teaching—how far can you step out into other, related areas of your subject to help students make connections, without creating separation anxiety?

This week I also had several students from previous classes ask me questions, in the study center, on notation that confused them. After an exchange of questions and answers—to help me understand what they did not understand—it became clear to me that the students could see the trees but not the forest. Unfortunately, it did not become clear to them that this was the case—I couldn’t get them to stop circling the trees. Perhaps, it’s like looking at one of those ambiguous pictures that can be seen, for example, as either a rabbit or a bird. I saw the rabbit; they saw the bird. Maybe we needed to explore the definitions of class, order, family, genus and species (sets after all) and prove that we were, figuratively, mapping our mental expressions of two different species using two different one-to-one and onto visual functions. Or, maybe not.

# Musings on the Midterm

This week the students sat for their midterm. And sat. And sat. None of them finished completely in the allotted time. Every submitted test had at least one question only partially answered. No student left early (which is a good sign since students tend to leave early when the test is too hard or too easy—maybe this was the Goldilocks test).

I find it difficult to create good tests. In part because I’m not sure what a good test is, especially before I give it (and isn’t that disrespectful—me giving the test and not the students taking it—and what does that mean, to ‘take a test’–this reflection on teaching can, I’m afraid, become a gaze into a carnival hall-of-mirrors).  Perhaps I recognize a good test, after the fact, when I grade it? Is it good when the grade distribution is normal? Or when it is not normal? Is it good when a student reaches a correct answer but only through a torturous, almost incomprehensible chain of reasoning?  Is it good when a student easily gives the correct answer but ignores the request for justification?

Maybe I’m so unsettled today because of the lesson that followed the midterm, set theory. We started our discussion of sets with the Russell paradox that arises from imagining a set S that contains all sets that don’t contain themselves. I’ll let you explore the question, ‘Is set S an element of set S?”

What do I try to balance when writing and endlessly editing a test? (Yes, many parts of teaching seem to never end.) [Aside (I teach math after all). This week we also studied the halting problem in computer science—can we write a universal program that will be able to determine from the description of any program and a list of data to be processed by the program, whether or not the program will halt or run endlessly. The answer is related to the Russell paradox.]  Back to balance–for sure I don’t write a balanced test by measuring it using some exotic formula with multiple variables—as much as that might appeal to me as a math teacher. I think I must cite the tired analogy of riding a bicycle—some actions are done unconsciously once the skill has been learned—and how does one learn the skill? Can it only be through trial and error?  And who is the judge of attainment?  [In the manner of Socrates, when you don’t have an answer, ask another question.]

What do I try to balance?  What are some tensions that create a balance?  What is the gravity of testing that calls for balance?

• Coverage: “This test covered too much.” versus “You picked the one area I didn’t study.”
• Difficulty: “Yes, I’ve seen all this before.” versus “When did you show us that?”
• Challenge: “Look at me, I’m finished really early.” versus “Is it still possible to withdraw?”
• Grading: “I’ll have your results tomorrow.” versus “The don’t pay me enough for this job.”
• Gravity: “I need an A.” versus “What have I learned?”

That’s enough; before I further test your patience and my balance.

# Almost Mid Quarter

This week we continued the topics of sequences, iteration and recursion.  I cooked up an in-class activity on the implementation of recursive function calls in programming languages, but at the last minute decided it was not quite ready to serve.  Maybe next quarter.

We derived, as a class, a recursive formula that models the actions of an old game, “The Towers of Hanoi.”  The game has three poles in a row and disks of different sizes, each with a hole at its center.  The disks start in a wedding-cake arrangement on the leftmost pole and must be moved to the same arrangement on the rightmost pole, following two simple rules:  only one disk can be moved at a time and a larger disk cannot be placed on a smaller disk.  It’s a lesson that begs to be tried in person with a model.  I made do with the board.  Maybe next quarter.

An interesting side note on the teaching of the Towers of Hanoi.  The explicit formula for the recursive sequence that models the moves needed to move n disks is  2^n – 1.  For 64 disks this formula, on a standard calculator will give you the estimate,

1.844674407 x 10^19

Writing a simple, recursive program in the Haskell computer language, however, will give an exact answer.

Here’s the program (the recursion is the reference to the function hanoi within the definition of the function hanoi):

hanoi n = if  (n == 1) then 1 else (2*hanoi (n-1) +1)