# Why Is Discrete Math Hard To Teach?

* A new approach to teaching discrete math *

René Descartes and François Viète are mathematicians who have something in common, besides being French. Let’s get back to that shortly.

I am about to teach our basic discrete math class to computer science majors, and need some advice.

At Tech this class has been taught for years by others such as Dana Randall. She is a master teacher, and her rankings from the students are always nearly perfect. Alas, she is on leave this spring term, and I have been selected to replace her.

I know the material—it’s a basic course that covers the usual topics:

Summary: Fundamentals of numbers, Sets, Representation, Arithmetic operations, Sums and products, Number theory

General: Fundamentals of numbers, Sets, Representation, Arithmetic operations, Sums and Products, Number Theory;

Proof Techniques: Direct Proofs, Contradiction, Reduction, Generalization, Invariances, Induction;

Algorithmic Basics: Order of Growth, Induction and Recursion;

Discrete Mathematics: Graph Theory, Counting, Probability (in relation to computability).

My dilemma is how to make teaching fun for me, make it fun for the students trying to learn this material, and do half as well as Dana. Well maybe as well.

This dilemma made me think about a new approach to teaching discrete math. I would like to try this approach on you to see if you like it. Any feedback would be most useful—especially before I launch the class this January.

## Insight I

First an answer to what Descartes and Viète have in common. Viète introduced at the end of 16th century the idea of representing known and unknown numbers by letters, although he was probably not the first. That is possibly Jordanus de Nemore. Descartes decades later created the convention of representing unknowns in equations by x, y, and z, and knowns by a, b, and c. This was much better than Viète’s idea of using consonants for known values and vowels for unknowns.

What does this have to do with teaching discrete math? Everything. I believe that we may confuse students by mixing two notions together. The first is that math in general, and discrete math in particular, requires students to *learn a new language*. The above rules for what are variables and what are constants is an example language rule that one must learn.

Let me phrase this again:

View learning discrete math as learning a new language.

In order to be successful students must learn the basics of a language that has many symbols they need to know—for example “”—and also many words and terms that have special meanings. Think about the word “odd.” In usual discourse this means:

different from what is usual or expected; strange.

But in a discrete math course, an odd natural number is one that is not divisible by . I once told a story here about what an “odd prime is”: of course, it’s just a prime that is not .

## Learning A Language

If you accept that learning the language of math is fundamental, then you should accept that we may be able to use methods from teaching *real* languages. So I looked into how people learn new languages—how, for example, an English speaker might learn German. One of the main principles is that there are four parts to learning any new language. We must be able to:

- Read the language;
- Write the language;
- Speak the language;
- Listen to the language.

That these all are important seems obvious, but in years of teaching discrete math I never spent any time explicitly on these skills. I never worked on speaking, for example, nor on the other skills. Yet to learn a new language one must be facile in all of the above. So this January perhaps I will do some of the following:

- Have students read math aloud in class.
- Have students write down math as I say it.

Another exercise might be to have students select from math statements and identity which say the same thing. Or which are ill-formed statements; or rewrite a statement without using a certain symbol or word.

For example, which of the following statements does not say the same thing as the rest:

- .
- If is a finite set of numbers, then there is a prime .
- If are primes, then there is a prime so that for some .

Some comments about the math language itself. It is filled with symbols that act as shorthand for terms or words—students must learn these. The concepts are difficult for some, but this is increased by the use of some many special symbols. Also the math language uses “overloading” quite often. That is the same exact symbol may mean different things, which means that students must use the global context to figure out what the word or symbol mean. This is nothing special, since many languages do the same thing. But it does add to the difficulty in understanding the language. A simple example is “i”: is this a variable?; is it the square root of ; or is it or something else?

** Insight II **

A student who knows her math language is in a good position to make progress. But discrete math is more than just a new language. It includes the notion of “proof.” Notice that it seems that one can become facile in math as a language without understanding proofs. This is perhaps the most radical part of this approach to teaching discrete math. I wonder, and ask you, whether decoupling the language from the ability to understand and create proofs is a good idea. What do you think?

The point here is that we view proofs as reasoning about statements in the math language. It is a type of rhetoric. Recall that according Aristotle, rhetoric is:

The faculty of observing in any given case the available means of persuasion.

Rhetoric was part of the medieval Threefold Path whose meeting point is Truth, and which prepared students for the Fourfold Path of arithmetic, geometry, music, and astronomy. Thus rhetoric came *before* mathematics in the classic curriculum—recall “mathematics” meant astronomy back then—and before proofs as taught in geometry. I feel it should be so now.

Of course one of the central dogmas of mathematics is that our reasoning about statements is precise. If one proves that statement implies , then one can be **sure** that if is true, then so is . We expect our students to learn many types of reasoning, that is many types of proof methods. They must be both able to understand a proof we give them andto create new proofs. They must be facile with rhetorical arguments in the new math language.

Proofs will still be a central part of the course. But it will not be the only part. And it will not be entangled with the learning of the math language. I hope that this separation will make learning discrete math easier and more fun.

## Open Problems

A colleague once had a student near the middle of the semester ask this question: what is the difference between

and

I must add that this is from a colleague who is a terrific teacher. Perhaps this shows that stressing the math language aspect is important. Ken chimes in to say that he experienced issues at almost this level teaching this fall’s graduate theory of computation course, which he treats as much like a discrete mathematics course as the syllabus allows. He emphasizes not so much “language” as “type system” (per his post last February) but completely agrees with the analogy to *rhetoric*.

What do you think of this approach to teaching discrete math?

I think both of those insights are right on spot and will yield positive results. So much of pre-university math is about manipulating symbols without being able to attach meaning to them. It passes as common wisdom that mathematics is hard because of the abstraction level. Experiments have shown that logical problems with identical structure appear trivial when grounded in everyday concepts, but very hard when grounded in even basic mathematical concepts. Since language can be seen as essentially a tool for abstraction, this perspective of mastering abstractions the same way we naturally master new languages is right on the mark. Please report back on the experience!

I also believe that teaching proof as rhetoric/persuasion is a valuable insight and it works as well. I remember my math professors actually conditioning us to approach proofs in this way, as convincing an adversary. However, I’m not sure how useful that’ll be in the case of discrete math. I remember from my undergraduate studies that the style of proofs in analysis or logic are very much like this – deep, long arguments where you work against an imaginary adversary. But in some other subjects, proofs are sometimes closer to mere calculations. So there are proofs that are more about “showing” (de-monstration) and others more about “persuading”.

One thing I’ve learned is that while some of us respond well to the “fight an adversary” metaphor (as I do), some students are put off by that, and so I try to balance it out with the “cooperate with a community to come to agreement” metaphor as well.

If you give them Outlines of the Proof and then give them parts of the proof where

they have to fill in what is missing, you will build their self-confidence and understanding

of where the particular proof is going.

Very nice article.

My memory of taking “Discrete Math” and teaching it is:

a) Too mucc of a Hodge-Podge of topics and too many topics.

b) The use of, for most students, new mathematical language that is taught too quickly

and too abstractly.

c) Proofs by Contradiction/Induction need to be, if they can be, fully justified.

d) How to devise/derive a proof and make the steps of the proof as clear as possible

so there is no doubt of what you have proved or almost proved…

Take the needed and sufficient time to show the students how to write out a proof in English, and then translate into English/Mathematical language and then in Abstract language.

It will take time and patience but it will pay off enormously.

Many students operate in a fog in courses like this and their answers/proofs on the exams

demonstrate that the course moved too quickly – slow down and strive that your students

understand what they have learned rather than that they cover a multitude of topics with

little true understanding.

My website http://www.abstractmath.org might give you some insights into teaching discrete math. Maybe not One Big Insight, but some little ones. I have written this and some of its predecessors over many years and my primary experience was teaching discrete math at Case Western Reserve University, so the website is somewhat biased in the discrete direction. The chapters called The Languages of Math, Understanding Math, and Doing Math might be the most useful.

By the way, all the material in abstractmath.org is licensed under Creative Commons, so you can reuse it and change it.

Charles Wells

At Waterloo, we teach this material over three one-semester classes: one class for “General” and “Proof techniques”, one class for “Algorithmic Basics”, and one class for “Discrete Mathematics”, in approximately that order. I think doing all these topics in one class is much too much unless your students have substantial prior knowledge. However, the optimal strategy should still be the same, regardless of how many semesters you use to cover the material.

I would suggest that the analogy with real languages is imperfect, because most (say) beginning German students have a pretty good idea how to speak English, and English is semantically very similar to German. But most beginning math students don’t have any idea how to speak any language having even vaguely the same meaning as mathematics. That’s why we usually teach proofs alongside the learning of the math language. It is not enough just to have students translate their existing mental knowledge of the English language into another similar language. What is needed is for students to construct new mental knowledge of a new, entirely dissimilar language. Proofs are the central meaning of mathematics. Students need to be able to compose proofs in order to compose sentences in mathematics. There is no way to compose proofs in English and then translate them into mathematics, whereas (on the other hand) one can quite easily compose sentences in English and then translate them into German. Making matters worse is that math proofs look like they’re written in English, but they’re not; they just re-use English words with slight but highly significant differences in meaning.

You can find a copy of our course notes for the first class (and some of the later classes) at https://alephsub0.files.wordpress.com/2014/02/135_course_notes_f12.pdf

I have not studied discrete math per se but have studied the topics in a scattered fashion while working through the math requirements for an engineering degree.

I like math but it was hard for me. A few comments:

— High teacher ratings do not necessarily translate to learning.

— Some students have more of a natural aptitude for math than others. I didn’t have much natural aptitude. You can only do so much with the students who don’t, no matter your teaching abilities. Do what you can then let it go.

— Some students have more of a motivation to study than others. This can overcome lack of aptitude. You can only do so much with the students who do not have much motivation.

I think you are on the right track and can trust your intuition.

In teaching proofs I think that we too often get enamored with telling students about the variety of clever proof techniques (e.g. non-constructive proofs such as the proof that sqrt(2) is irrational) before students have a grounding and sense of how to work proofs on their own.

The structure of English proofs is also often confusing, particularly in the use of “Let” sentences which change meaning depending on the quantifier (in the existential case introducing dependencies that are often not written out but should be) and the use of “any” which can mean different quantification depending on context. It is important to make these differences clear.

This why starting with formal, almost program-like proofs helps; in other words, proofs are like programs in a new programming language that they can understand. This is the very opposite of the “convincing argument” approach – though proofs clearly are convincing. The critical aspect of the formal system I prefer is that it is a NATURAL DEDUCTION system which mimics the way mathematics is written in English – it has a direct proof rule involving the notion of a proof subroutine that has an assumption and conclusion (as well as scope and information hiding) for introducing implication. To simplify proof search I also like to keep things to SIMPLE rules, one for tearing apart each connective/quantifier, one for introducing it (plus equivalences of course). (Both of these properties are missing from the formal systems in almost all the textbooks I have seen – their quantifier rules are also often stated in an unsound way; introducing a formal system in such a course without connection to the way English proofs are written is a waste of time.)

Finding even propositional proofs is an NP-hard problem, so of course proofs are a matter of strategies and tactics rather than a fixed procedure. I like to suggest that students focus on the logical structure of what they are being given and on the structure of what is being proved in order to figure out how to proceed. The overall strategy I suggest is to figure out a proof based on working from both ends by (1) applying the tearing apart rules to the givens in a forward direction and (2) working backwards from the end of the proof by seeing how the proof rules could allow one to build up the goal and then trying to get the two to meet in the middle.

That first part which involves getting students to take a multilayered set of definitions and be able to break them down into their true meaning is a big part of the battle but the notion of writing the last part of the proof and working backwards to guide the structure of the rest of the proof to be filled in the middle is also important.

One of the reasons that I like the above approach is that it makes the structure of induction proofs, which are one of the most mysterious and magical aspects of proofs in English, seem a completely normal approach to the problem (given the induction axiom/proof rule which everyone can easily accept and understand).

I don’t stick with the formal stuff for long but always suggest it as a way for students to think about proof strategies when they are stuck.

Good points.

I very much like the notion of rhetoric leading in to proofs. I think, for all its formalisms and symbol-shunting, math is a very human experience and endeavor. Contextualizing it via human understanding and rhetoric before making sure it’s rigorous in the mathematical language sounds like a great idea that will give them an intuition for the field that fits within their own context and understanding.

As far as math as languages goes, though, I would be wary of the faith in the ability of “use methods from teaching real languages.” Not because the analogy doesn’t extend to that, but because our pedagogy for teaching new languages is really really bad. I think people into the learning and human internalization of language really aren’t happy with how language is generally taught.

That is, grammatical rules, syntax, structure, tenses, and all that is NOT how children learn language at all. Humans are really good at pattern matching and kids seem to learn this way through immersion and real-life interactions. Checking off the four bullet points in a formal way generally seems not to facilitate language internalization in a great way.

To translate that back to math pedagogy, I would say it’s very similar. We learn math by immersion and contextualize is it into our own understandings and intuitions in a very human way, with the formalisms coming after to make sure everything is rigorous and unambiguous.

That is, choosing good problems in class for the students to piece through that exemplify a concept you want to discuss (even before writing down what that concept is) can go a long way in having them discover that concept on their own within their own context and be able to internalize it in their framework in a lasting way.

This is loosely the notion of problem-based learning and is specifically useful for the notion of allowing student to learn a new way of thinking (or a mathematical language) by letting them interact with the field through problems to fit it into their existing intuitions and context so that it means something to them (and not just jargon that’s thrown at them through some one else’s context). And after they’ve FIRST played with the problems and contextualized the concepts, the formalism is introduced to more rigorously capture the notion and is practiced via homework and the sort.

I think this is why I liked your “rhetoric” insight so much in that it allows them to understand logical arguments through their own lens and discovery and AFTERWARDS introduced the formalisms of proof to capture their intuitions and human experience.

It sounds like the thought you’re putting into it will give some people some great experiences!

To sum up what I said in a quote by a famous mathematician and educator, Ralph Boas:

“When you want a young child to learn about cats, do you explain that a cat is a relatively small, primarily carnivorous mammal with retractable claws and distinctive sonic output? Or do you arrange for the child to play with lots of kitties and let them form their own first impressions?

“When you want a student to learn about math, do you give a great lecture, introducing new ideas, new terminology, new notation? Or do you arrange for the student to play with lots of math kitties and let them form their own first impressions?”

And the thing I love about that quote is that if you just read “When you want a student to learn about math, do you give a great lecture, introducing new ideas, new terminology, new notation?” then the answer seems “YES, obviously!”

But it’s very subtle and non-obvious that there might be a better and more human way until you read the whole quote.

Whenever I teach I try to think “Am I just explaining to them what a cat is?” And if I am, I try to stop and dig up some (math) kitties for them to play with!

While I think the students would be willing to come to classes where they do get to explore new and interesting topics in math, would the Administrators be

willing to free up the classroom time and would the Professors and their TA’s

be willing to spend the extra time in the classroom ? I hope they would,

but who can say ?

I guess what I’m trying to say is not that we should have a pure enrichment course where we just do new and interesting topics, but we teach the standard curriculum AS IF they were new and interesting topics.

I mean that in the sense that problems (i.e. math kitties) are chosen for the students to explore and play with that EXEMPLIFY the things that were supposed to be covered anyways

And before introducing notations and definitions or answering questions that weren’t even asked yet, try to find ways goad the students into asking those questions and creating those definitions/notations through exploring the problems and fitting them into their own contexts.

It’s a harder way to teach and prepare for…but Dick certainly seems to be putting that effort in

The “learn math as a new language” is very much what my courses have evolved into in the last several years. Here’s the #1 course objective at the top of all my syllabi (context: algebra sequence at a CUNY community college):

Read and write math properly with variables.

This does get some traction with students; a lot of heads nod, and some are excited at the clarification: “I never thought of it that way, it makes so much sense!”. (On the other hand, someone will grouse, “I hate learning languages”, but even that I like because we’re being mutually honest about the challenge).

Among my techniques are, “What will I write here?” prompting students to tell me properly-written lines of writing before I put it on the board. If I can remember next semester I’d like to work in more “read what I just wrote out loud” exercising. And you have to commit to grading tests/assignments for that syntax and grammar, or they won’t bother to really pick it up.

The downside is that given the fixed content we need to cover for any math course, I find that I don’t have anywhere near as much time to spend on this as I’d really like; it always has to be joint with some other task happening. The “select equivalent statements, or select incorrect statements, or fix incorrect statements” exercise is an idea I had in the past — as well as “hand your writing to a fellow student and see if they can read it and/or improve it” — but I’ve had to essentially cut it out because I can never find time for it. I run online quizzes every week and maybe I can work in ~3 such questions in over the course of a semester.

That said, “Treat math as a foreign language class” has been one of the most clarifying transitions that I’ve made for me and my students in the last several years (at this level). I do recommend it.

I think we need to be honest and admit that for most people it takes longer to learn Math than other subjects. Therefore the number of hours a Math class meets per week should be

the number necessary for the students to learn. I know other subject matter where it is absolutely necessary to lay the foundations correctly to avoid an ocean of further errors and misunderstandings.

Having TA-ed courses where the class average on the first Midterm was 61 % and the Professor continued on as if the students understood the material – I can only wonder if

we are doing our duty as teachers when we fail to construct a course that meets the

needs of all the students.

I generally have that happen in my (very rudimentary) college algebra classes, for example. I think there does come a point when it becomes necessary to say, “We’ve discussed and practiced the basics in class, now it’s your responsibility to study/practice 2xCredit hours per week”, and if some students absolutely refuse to do that, then let the chips fall where they may.

While this moment seems to get pushed later and later in schooling as time goes on, and math is an outlier in that it occurs sooner than for other subjects, I tend to not think that’s a bad thing, and that it actually commends the math discipline for breaking the ice for other academic disciplines.

I think one weakness of how we teach proofs in class is that we often prove statements that are mind-numbingly obvious. This causes students to believe that proving things consists of a boring process of dotting i’s and crossing t’s: filling in technical details, as opposed to gaining insight into a problem.

Instead, we should teach that seeking a proof is part of a larger effort to discover the truth: we try to prove things, fail, switch to searching for counterexamples, fail, look for proofs in special cases, clarify the statement we’re trying to prove, and so on. Lakatos’ book “Proofs and Refutations” is a great illustration of this, where students and a teacher together look for a proof (and a proper statement) of Euler’s formula.

When teaching induction, I like to use the example of proving that the standard recursive solution to the Towers of Hanoi is the shortest possible one. This often leads to a great class discussion about how you have to move the largest disk, and move the others before and after: this leads us to a description of the state space of the problem (which looks like Sierpinski’s triangle), shortest paths in graphs, and so on.

The other problem with most discrete math courses is that they teach definitions in the abstract, without a motivating example. I prefer to show students problems and puzzles, and then show them the mathematical objects that help us solve these. For instance, if you start with the question of who has a winning strategy in tic-tac-toe, you can lead them to game trees, Boolean circuits with AND and OR gates, and existential and universal quantifiers.

I actually disagree. When you teach proofs using non-obvious statements, you are combining two different learning activities. The students have to learn both the content of the statements, and how to prove them. My experience is that students who aren’t already familiar with mathematical proofs struggle to do both things simultaneously. It’s better to teach proofs using obvious statements. That way, the students don’t have to struggle with the content, and can focus solely on the act of proof.

There are ways to make even obvious statements interesting. For example, in number theory, the cancellation law (ab = ac implies b = c) is an “obviously” true statement … except when a = 0, which is relevant because most students’ first attempt at proving this statement fails to use that a != 0. Even after you get over the a = 0 problem, there’s another problem: there are rings in which cancellation is still false, and one of the most enlightening ways to see that it is false is to try to prove it and encounter an insurmountable obstruction. So suddenly an obvious statement leads to all sorts of non-obvious discoveries and explorations.

Though I have seen many “demonstrations” that 0 ! = 1

I have never seen a “proof” that is convincing.

Am I being too blockheaded or is there something missing in the proof(s) ?

George, how about the reasoning for analogous statements in my post, “The Right Stuff of Emptiness”? One can view 0! as an empty product, since n! by definition means n*(n-1)*…*1.

Dick, thanks for the kind words.

I agree completely with Cris. This is very much the approach that I take, and it has successfully engaged and pushed the students. Even more so because this is an honors course — most of the students are very good and will spend lots of time on challenge problems and puzzles, even if optional.

You can have more fun with this class than they typical discrete math class, where language can be an insurmountable obstacle. Still, having students translate between math and English often is very helpful. (One of my favorite exercises from a different undergraduate class is to have them write down the Pumping Lemma in words, without using any symbols, so that their parents could understand what it is saying.) I think you will be pleasantly surprised — this is my most enjoyable class to teach at Tech!

I think a lot of great comments have been made, let me add a brief likely obvious one similar to the kitty comment, which I liked. I find as mathematicians, we tend to teach like mathematicians, whereas an arguably better approach is to teach like humans. A simple example is the definition of a relation, which may a priori seem cryptic to an undergrad. But define a relation (eg) areMarried(Bill Clinton, Angela Merkel), and suddenly there is an immediate mental link established in the student’s mind. Math is the underlying language for much of the physical world – in this sense, students already know what a relation is, they just don’t know that they know, and it’s our job to make that connection for them.

Here’s another example from my intro to quantum computing course. We discuss quantum constraint satisfaction systems, which most students a priori could care less about. Then we watch a youtube video of helium entering the superfluid phase and explain the connection to the material from class, and suddenly there is an evocation of a primal human instinct – to be amazed by a physical phenomenon. So one is teaching as a human, not as a mathematician.

Re: Mathematicians: “If you prick us, do we not bleed? if you tickle us, do we not laugh? if you poison us, do we not die? and if you wrong us, shall we not revenge?”

thank you for post but this discrete math is hard to learning

I do not fast learning,

I like the notion of math as a type system. Sometimes I wish there was a common syntax for specifying types (beyond the much overloaded typesetting conventions for various classes of variables). For instance, in proofs about sequences one can quickly start mixing up indices, sequence elements, and sets of sequences.

Type theory has a fairly standard notation using a colon. x:Real means x is of type real. You can define new types such as Sequence of Reals out of already defined types such as Sequence and Reals. Most mathematicians are not very familiar with this notation; it appears in logic and computing science. Some typed computer languages use this notation (Agda, I think) but most of them define a type using something like REAL X or INTEGER N.

I think one of the greatest problems in teaching students mathematics is that producing a proof requires jumping into a problem and guessing at ways to prove it.

In my experience the primary obstacle students had in producing proofs was their fear of starting. No one likes to feel ignorant or stupid and floundering is usually something to be avoided so students are naturally reluctant to simply start trying things. We are strongly conditioned to ask for help when we don’t know what to do rather than flail around and years of being taught mathematics as a procedure for generating solutions to problems exacerbates this effect.

Even when students are specifically told they should just go ahead and try things they are reluctant to do so. Even when they do try it takes some time to get used to the fact that even if you are smart and capable most proof techniques you try will fail.

Only those students who have sufficient self regard to feel confident that guessing isn’t an indication of their ignorance and not give up after a few false starts seem to ever really catch on about proving things. The question is how best to increase this number.

One technique which seems to help is showing false starts in proofs presented during class. Give some proofs where you start by just listing a bunch of stuff you know including facts you won’t use and try several incorrect strategies, e.g. try coming up with a formula for the n-th prime to prove there are infinitely many primes. Students need practical advice about when they should give up on a strategy and seeing you follow a bunch of false starts is helpful.

Having students practice generating counterexamples is also helpful as it makes them more comfortable with the kind of educated guesswork required to produce proofs.

Next time I teach an introductory proof class I plan to have the students break up into teams and have one side generate a false hypothesis and the other side try to come up with a counterexample. Each counterexample is a point and if no counterexample is produced in 5 minutes the proposing team must produce their own counterexample to earn 5 points (if they can’t they lose 5 points).