
The most common errors in undergraduate mathematics - Tomte
http://www.math.vanderbilt.edu/~schectex/commerrs/
======
userbinator
_By the way, write your plus sign (+) and lower-case letter Tee (t) so that
they don 't look identical!_

From my experience, I'm one of the very few people who write manually in a
serifed font; in particular, I write 1, l, I, and | very distinctly and use a
slashed zero so as to distinguish it from the letter O. I wish more people
would do this since it is still sometimes necessary to communicate on paper,
and trying to interpret handwritten notes with ambiguous writing can be quite
annoying.

 _Unquestioning faith in calculators._

The same can be said for computers too - except the problem is often worse as
computers are far more complex to the point that almost no one understands
them fully, and we are encouraged to accept this.

~~~
madsushi
I use a similar style of writing, including slashed 7s. I wish I could find a
nice monospaced font with slashed 7s and 0s, etc.

~~~
reikonomusha
Last time I saw a font with a slashed 7 and 0 was on Genera for the Lisp
Machine. See it here:
[http://www.eurogaran.com/downloads/lispmfont/screenshot.jpg](http://www.eurogaran.com/downloads/lispmfont/screenshot.jpg)

------
euroclydon
I studied undergraduate mathematics, and I think it's a field which requires
the student to spend as much of their own time as needed to understand a
concept. Perhaps this could be said of all fields, but there is just limited
time in a class to absorb, e.g. Euler's Formula, because there are several
concepts in play, and if the student doesn't have a firm grasp or recollection
of one of them, then they get lost at one step on the chalk board, and the
rest of the derivation is useless to them. This happened to me many times, and
I'd just have to make a note to go figure something out, and the rest of the
class was basically useless to me. Once it became more acceptable to have a
laptop in class, I could just just look it up right then, and not have to wait
till later, but I still just tuned out the professor.

~~~
BeoShaffer
This is why I really like learning math through MOOCS (with pause/rewindable
videos) despite them having a number of other drawbacks.

~~~
iak8god
Could you recommend some good maths MOOCS at the level of undergraduate math
major courses?

------
j2kun
When I teach calculus I give an hour-long-talk version of this document. I
particularly emphasize that infinity is not a (real) number, so any arithmetic
I see them doing with infinity will be automatically wrong; and that "equals"
will be overloaded, and that most professors/TAs/tutors will not point out
that there are different kinds of equals signs.

The stream-of-consciousness notation section also rang true. It's a huge
frustration and time waster for everyone involved.

~~~
tokenadult
_I particularly emphasize that infinity is not a (real) number, so any
arithmetic I see them doing with infinity will be automatically wrong_

I agree with you for the purposes of teaching undergraduate beginning level
courses that involve mostly the real number system (and only incidentally the
complex number system). That said, our learned fellow participant impendia
here on HN, a professor of mathematics, has strenuously disagreed with me by
pointing out the specialized number systems that do treat infinity somewhat
like a number. On my part, for the students I encounter, I stick to
discussions like "All about Infinity"[1] (formerly titled "Infinity Is Not a
Number - It's a Free Man") Katherine Körner, another astute mathematician. I
have frequently seen discussions of infinity as a (real) number here on HN
that essentially boil down to the error of treating the quotient upon dividing
by zero as a real number.

[1] [http://nrich.maths.org/2756](http://nrich.maths.org/2756)

~~~
j2kun
I usually level with my students about this, but with the caveat that any
serious use of infinity involves a _precise and technical_ definition, in
particular one that is not guessed on the fly as students tend to do. To
illustrate, I then talk about how in elementary calculus infinity is a precise
and technical shorthand for the idea of unbounded growth.

[Edit:] I also recently had the wonderful opportunity to talk to _really_
advanced high school students about projective geometry, and I contrasted the
difference between the way people talk about infinity (the point on the
horizon! I'm just making it up!) versus the precise and technical definitions
(a specific point in a quotient of a vector space).

------
acbart
My god, if someone created a similar list for undergraduate Computer Science
education, I would be astoundingly happy.

~~~
nmrm
Shouldn't be too difficult. I haven't done much teaching and could write a
short list. Unfortunately, I don't think it would be very surprising to most
people (just as this list probably isn't surprising to most math majors, since
we've all made at least one of these "stupid mistakes" before, even when we
knew better, especially in the early years. The difference -- and this is
reiterated several times -- is that good/smart students notice their error and
debug their math/program, instead of just going with it or fudging their
result).

Here are a few:

* Not actually thinking of a solution to the problem before starting to write a program; not soliciting requirements.

* ALL of the mistakes covered by this article. Struggling CS majors are often (not always) really, really horrible at math, and this -- more than anything else -- really holds them back from writing correct programs.

* Off-by-one and the functional equivalents

* Infinite loops in exception handling

* not enough input validation; too much input validation

* Reinventing bad versions of existing algorithms (Dijkstra's algorithm is a good example) and in general not enough research before implementation.

* The other side of that coin is taking stack overflow upvoted answers as gospel (basically our equivalent of trusting the calculator)

* Fundamental incomprehension of boolean algebra, which gives rise to all sorts of errors:

 __incorrect paren placement

 __Obscenely complicated conditions and /or absurd if conditions because they
don't understand boolean algebra (e.g. I've seen conditions that eventually
simplify to a || !a)

 __Complicated programs and grandois bug-hunting because they couldn 't figure
how a simple boolean expression (there was a post on HN a while back about
Javascript == vs === where the developer basically wasted a day going down a
rabbit hole he attributed to == vs === but was actually completely avoidable
if he had taken an undergraduate discrete math course that hammered home
boolean algebra.)

* This page contains a very useful implementation details section which describes some common errors implementing quicksort: [http://algs4.cs.princeton.edu/23quicksort/](http://algs4.cs.princeton.edu/23quicksort/)

* As a general rule, any program written by a student containing concurrency is always wrong, unless concurrency was explicitly taught (many schools just have a short unit in a course or two, instead of integrating the topic throughout the curriculum).

~~~
PeterisP
What are the functional equivalents of off-by-one?

~~~
nmrm2
Folding with the wrong initial value. Recursive functions where the base case
is improperly defined. Stuff like that I consider 'functional off-by-one'
because the student understand the general shape of the correct solution but
gets a detail about iteration/recursion incorrect at the boundary.

edit: oh, also, I guess literally off-by-one errors are also possible in any
language that allows any sort of side effect, but that's kind of a stupid
degenerate case :-) (edit: possible, definitely not popular... wrong word
there, sorry).

------
astrobe_
One realises how confusing and complicated are the standard notations when one
implements a programming language. You would prefer Lisp/Scheme or RPN
notations, but they both scare away a lot of people, who prefer "natural"
notations. People don't realise that they probably hurt them as much as they
help them.

~~~
reikonomusha
It seems tempting to have a single unambiguous notation for mathematics. But
In constructing such a language, one will quickly realize that doing
mathematics becomes an intensely arduous task.

This is not unlike recent discussions about the conlang Ithkuil on HN.

For better or for worse, math notation has for the most part been optimized
for writing on paper or a blackboard, using context to eliminate "inessential
details". Local edits are generally easy, and pieces of notation are not
always so tightly coupled. (For example, we can put a "for all x" at a
distance from some equation.)

Have you ever attempted to write Lisp on a blackboard, then needing to insert
an expression in the middle? It's extremely difficult because you have to
perform a quadratic process (erasing everything after and reindenting) to make
the Lisp readable. At least this is what I've noticed in interviews. You can
sometimes patch your Lisp forms with lines and arrows, but it's the quickest
way to get spaghetti on your blackboard.

RPN is similarly useless for the task. RPN is exceedingly easy to write, but
not so easy to read. Also, higher level mathematics becomes unwieldy in RPN.

Sussman and Wisdom in their book "Structure and Interpretation of Classical
Mechanics" did take a different approach to math notation in order to make it
unambiguous for that relatively small sub field. It looks like regular math
notation but written in such a way to make things more easily computable. I'd
say they were successful, though their work would be difficult to generalize.

~~~
lisper
> Have you ever attempted to write Lisp on a blackboard

What's a blackboard?

Seriously, blackboards are pretty obsolete technology. Designing a notation to
optimize for blackboards in this day and age is kind of like designing roads
to accommodate horses.

~~~
carstimon
There are two situations which black/white boards are awesome for. -Giving
lectures in subjects which desperately need drawing and writing. Look at what
happens at 1:16:27 here
[https://www.youtube.com/watch?v=BPSEpDq6QYc](https://www.youtube.com/watch?v=BPSEpDq6QYc)
The speaker can just go draw a picture, in response to a question. I know of
no alternative which can do something like that nearly as well.

-Collaborating in subjects which need drawing and writing. I can stand next to someone and talk over a problem. They write some formula on the board. I insert some additional bits and pieces that they missed. We draw pictures.

I'd like to hear what you think replaces black/white boards.

The black vs. whiteboard thing is a whole different issue :)

~~~
lisper
Look, I have nothing against blackboards, just as I have nothing against
horses. Horses are really handy in some situations. If you're in the
wilderness and you need to cross a stream, a horse can be just the thing.
There's no technology that can compete with a horse in that case.

But to constrain your _infrastructure_ (notation in the case of mathematics,
roads in the case of horses) according to the needs of a blackboard or a horse
is, IMHO, a serious mistake in this day and age. If you design your roads for
cars instead of horses you get _tremendous_ productivity boosts, even as you
lose the ability to deal with some edge cases.

Notice that to find an example of the real utility of a blackboard you had to
bypass >95% of the lecture and go to the very end. Imagine how much better
things would be if the _rest_ of the lecture had been presented as source code
that a student could analyze and manipulate and error-check using some
automated tool.

~~~
carstimon
The great thing is we're not constraining our notation. As reikonomusha said,
the standard notation is easier to read. Other notation is better for
programming or certain things, and that's what we use there.

Re: your last paragraph. I only went to the end because I knew that there must
have been a good example in the questions. If you want I can give you examples
from the middle of a talk.

~~~
lisper
> the standard notation is easier to read

Only because you're used to it. In fact, standard notation is much harder to
read because it's ambiguous, often to the point of actively introducing
errors. See:

[http://mitpress.mit.edu/sites/default/files/titles/content/s...](http://mitpress.mit.edu/sites/default/files/titles/content/sicm/book-
Z-H-5.html#%_chap_Temp_2)

> If you want I can give you examples

No, I don't dispute that blackboards are useful. What I dispute is that their
utility is so high that we ought to design mathematical notation around their
limitations.

~~~
carstimon
Ok, I can agree that we shouldn't design notation around their limitations.
And I do like what they do in SICM. But, I'm just trying to root for the point
up-thread:

>It seems tempting to have a single unambiguous notation for mathematics. But
In constructing such a language, one will quickly realize that doing
mathematics becomes an intensely arduous task.

When talking about math, our notation doesn't have to be precise, and that's
ok.

> No, I don't dispute that blackboards are useful. Just obsolete :P

------
enthdegree
"An equation such as ∫ 3x^2 dx = x^3+C says that we add together uncountably
many infinitesimals, and we get a medium-sized number."

Yelp! My buddies Riemann & Lebesgue had quite a different story on the
matter...

~~~
noelwelsh
Non-standard analysis (e.g.
[http://www.sjsu.edu/faculty/watkins/infincalc.htm](http://www.sjsu.edu/faculty/watkins/infincalc.htm)
\-- another example of awesome web page design) does formalise the concepts of
infinitesimals. It's quite neat to have a complete alternate formalism for
calculus.

~~~
enthdegree
That's really cool. However it's important to note that it nonstandard
analysis does not 'live' in the real numbers. It turns out the hyperreals
aren't even a metric space!

I'm not intimately familiar with them though, and have heard that they are a
lot more lucid abstraction for some things when compared to calculus on the
reals.

------
Grue3
I disagree that 0^0 is undefined. I would argue should be 1 and the function
0^x is not continuous at zero. The basic definition of exponentiation for
integers is n^m is a product of m instances of n. Because the multiplicative
identity is 1, a product of zero numbers is always 1. Therefore 0^0=1.

~~~
RiderOfGiraffes
It goes deeper than that.

Many things in mathematics are defined in a manner that is consistent and
convenient. Defining 0! to be 1 is a similar case. In doing so nothing goes
wrong, and the binomial theorem becomes simple and convenient to state.
Without defining 0! as 1, it's a dreadful mish-mash of special cases.

Similarly with 0^0. Considering _x^y_ where _x_ and _y_ are complex numbers,
there is no consistent single value as _x_ and _y_ each approach 0. So in the
reals and the complex numbers we leave 0^0 as undefined. However, in the case
of natural numbers there is a case for declaring 0^0 to be 1. That's to make
it convenient to talk about the set A^B as the collection of functions from B
to A. When we do that we get |A^B| = |A|^|B|.

There is more than expected in mathematics that's defined for convenience.

~~~
darkxanthos
Just completing Real Analysis and an interesting addition to your point is the
decision to even call zero a natural number.

It's really opened my eyes to just how much of the definitions around the math
I group up with is due to convenience more than anything.

------
JoshTriplett
I've seen many instances of the "undistributed cancellation" error, most
commonly in even simpler cases than the one in the article:

Given a fraction similar to:

    
    
        x + y
        -----
          x
    

I've seen many people cancel the "x" on top and bottom, leaving y.

~~~
jackmaney
Yes, but if we cancel the 6's in 64 / 16, we get 4/1 or 4. :P

Oh, and incidentally, sin(x) / n == 6.

------
samspot
I just realized I have forgotten how to add fractions! I don't think i've ever
had to do this in the day job. I've been out of school for 10 years.

------
shrikant
Mostly off-topic, but I found the Altavista linkback search link on the top of
the page _really_... something. "Cute" would be the wrong word, but it comes
closest to describing what I felt.

[http://www.altavista.com/cgi-
bin/query?q=link%3Amath.vanderb...](http://www.altavista.com/cgi-
bin/query?q=link%3Amath.vanderbilt.edu%2F%7Eschectex%2Fcommerrs%2F&kl=XX&pg=q&Translate=on)

~~~
agumonkey
Goes very well with the vanilla html typography too. archived
[https://archive.today/6fzmw](https://archive.today/6fzmw)

------
zhte415
"As we've used all the letters of the Roman alphabet, and the Greek one too,
I'm just going to write these letters really bold; take notes carefully, there
are no distributed notes nor textbook for this freshman analysis course."

------
Glyptodon
I had a calc prof who spent most of a class lecturing on "RTFT," where the
last T was Text Book instead of M for Manual because he thought somebody asked
a stupid question.

To be fair, the question was kind of dumb. But the textbook was also worthless
and created to generate revenue for the math department. So it's unlikely his
proposed solution would have helped the student in question.

Not to mention that the lecture on RTFM didn't help anyone learn math anyway.

The student who asked the question probably never really understood the math
(wrote learner), but did become the prof's office hour best friend and got a
good grade anyway.

Anyway, file under the teacher hostility section of this article, I guess.

------
silentvoice
One of the most bizarre errors I've seen undergraduates make is in induction
proofs. I saw it so many times that I decided a TA must have been telling them
to do this.

They would always show the base case correctly. Then they assume it's true for
all positive integers up to a fixed positive integer "n." So far so good, now
we need to prove it's true for "n+1." This is where weirdness happens, I have
seen a hundred assignments where an equation is reduced down to "0=0" or "1=1"
and they then write "Q.E.D" even though the fact that 0=0 was not under
contest.

~~~
krastanov
Wait, I am missing something here. If the reduction to a true statement is
done through operations that can be performed in both direction (which are
most of the trivial operations undergrads use) then this is a perfectly fine
approach, right?

~~~
nmrm
I have a feeling that the problem is students show "If the equation is true,
then 0=0" instead of "Note that 1=1; now, we derive P".

 _Even if_ all facts used in the proof are true "in both directions", it's
still a serious breach of modern mathematical style to start with what you're
trying to prove.

It's also possible that they don't explicitly note that the facts they're
using are "true in both directions". edit: to be explicit, in that case I'd
still consider the proof wrong

Anyways, if a student presented a proof like that, I would at least take a
couple points off for the awkward style unless it was explicitly justified
somehow.

It's also kind of a weird proof technique to start with 0=0 or 1=1 and bother
to explicitly state this fact...

~~~
gizmo686
From reading math research papers, it is not that uncommon to start with what
you are trying to prove and proceed with a series of reverisible operations.
This is gennerally done to as a first step to convert the proposistion into
something that fits more naturally into the proof. This also tends to be done
in prose.

It saddens me that so little of what goes in in math papers makes it into
textbooks, or math students that do not study original papers themselves.

~~~
nmrm2
I don't see any pressing need to freshman to write their very first non-
euclidean proofs in the same style as professional mathematicians.

Obviously, it's a matter of style. I still maintain few mathematicians would
write canonical discrete math style induction proofs in reverse order.

But then, a mathematician would totally not write out induction proofs the
same way we teach in freshman discrete math courses.

So in some sense the style question is completely irrelevant, and what matters
is that the student's answer demonstrates unambiguously an understaning of the
concept.

------
SIGALRM
I'm surprised that the author made no mention about how big O,theta,and omega
is commonly misunderstood.

~~~
brational
Likely because the author is a math professor and those concepts are typically
only covered in CS department courses.

~~~
nmrm2
This isn't true, bounding functions are really useful for many proofs. But see
nilkn's response.

------
enesunal
You know, this post may cause problems though.

There is something called photographic memory...

------
shulu
Aka most common undergraduates who study math do not know math.

~~~
nmrm
First of all, your statement is meaningless. What exactly does it mean to
"know math"?

Here's an alternative explanation: math students do lots of computations, and
sometimes make mistakes which they would be able to identify immediately if
someone told them "you made a mistake on this line".

Kind of like how all programmers occasionally drop a paren or a semicolon.
Does that mean no programmers "know programming"? Of course not.

In fact, if you've never made a stupid mistake programming, odds are you're
not a very good programmer because otherwise, you'd have done enough
programming that one of these mistakes became inevitable.

The only difference is that most programming is simpler than university-level
mathematics, so with a few decades of research we figured out how to use
computers to prevent us from making a lot of mistakes without impeding our
productivity too much.

For example, from the article:

 _" In fact, the great mathematician Leonhard Euler published a computation
similar to this in a book in 1770, when the theory of complex numbers was
still young."_

So another way of wording your post: Euler doesn't know math.

Similarly, many of the examples (e.g. calculators) could be interpreted as
students knowing _too much_ math, and excepting their tools or others to know
the same "math" they know.

------
stevep98
Do yourself a favor and shrink the browser width to about inches.

And learn about why newspapers are laid out in columns.

~~~
trentmb
> are laid out in columns.

Because they can't be resized on the fly?

~~~
aaronbrethorst
Because the optimal line length for readability on a monitor seems to be
between 50-95 characters per line[1]. On my 1920x1080px screen, I'm seeing
about 300 characters per line in this article.

[1] [http://baymard.com/blog/line-length-
readability](http://baymard.com/blog/line-length-readability) and
[http://psychology.wichita.edu/surl/usabilitynews/72/LineLeng...](http://psychology.wichita.edu/surl/usabilitynews/72/LineLength.asp)
\- and no, the irony is not lost on me on the second link

~~~
prof_hobart
On most platforms, it's relatively easy to resize your browser to whatever
width suits you best.

Personally, I tend to find columns wider than the 95 character thing easier to
quickly scan - I had this site set to about 130 chars. When someone fixes the
width of the text on the website, there's no sensible option I have to widen
it to my preference.

