
Notes on Discrete Mathematics (2017) [pdf] - alokrai
http://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf
======
learner_
Why do most introductory math textbooks not contain solutions? How can a self-
learner without access to a university or professor check their work?

The common answer I get is solutions "rob" the student of learning. Why should
the fear of the lazy student cheat those that actually attempt their work and
want to see if their solution is correct?

Additionally, I heard the argument that "you should know" if your solutions
are correct. A beginner is probably prone to subtle mistakes and may think
their reasoning is rational. Thus they are probably unaware of any subtle
logic errors and could easily fool themselves into thinking their proofs are
correct.

Is it partially laziness from the authors in creating new problems for
homeworks/exams? Or do people think a literal beginner in math can be their
own proof checker?

I wouldn't want a beginner programmer writing "production ready" code without
code review, so why should we expect a beginner math student to write error
free proofs? What is the point in not allowing solutions?

As great as these text may be, I couldn't and wouldn't recommend them for the
beginner. These text seem to be designed solely for a classroom where students
will get assistance and feedback from TAs and professors. They seem useless
for a beginner to learn on their own without outside proof checking.

~~~
jimhefferon
> Why do most introductory math textbooks not contain solutions?

I offer a couple of Free texts, one of which is pretty popular
([http://joshua.smcvt.edu/linearalgebra/](http://joshua.smcvt.edu/linearalgebra/)).
The answers, completely step-by-step solved, are available. I can give you two
reasons.

1) Preparing good questions and giving answers is about half the work. On my
page you'll see that the book is 500 pages and the answers are 400 pages.

And it is not the half that is fun, or that gets you credit. I find that
compiling the answers greatly increases the quality of the book because I keep
going back and adjusting the presentation, etc. But others don't think that.
Rather the opposite; I have been told that it is work only appropriate for
grad students.

2) I have gotten a fair number of emails along the lines of "I'd like to adopt
your book but since anyone can download the answers, I cannot teach out of
it."

It has not in the past proven to be a fruitful strategy for me to inform the
email writer that the first thing any 2018 undergrad does on getting a text
asignment is to google for the answers pdf, and that those students always
succeed.

So one reason to not provide answers is to get more adoptions. This ties in
with (1) because my five year reviews are not impressed that random self-
learners find the text useful. They ask about adoptions.

~~~
Light2Yellow
Disclaimer: I have studied linear algebra with your book. Thank you for
writing it. Special thanks for making it completely free and open-source.

 _I have gotten a fair number of emails along the lines of "I'd like to adopt
your book but since anyone can download the answers, I cannot teach out of
it."_

When we had an introductory course in linear algebra, we were not given any
home assignments. Instead, we were told that if we want to train and exercise
some concepts, we should find third-party materials and self-study -- and so,
I used your book. I really like that approach, it allows more capable students
to do whatever they like instead, and to less capable -- work on it, if
needed. Thus, I don't understand the rationale of not teaching out of
something that contains solved exercises, because there is no reason to assign
_mandatory_ exercises in the first place. It's enough to have tests.

And of course, such books are extremely valuable for non-mainstream (that is,
not enrolled into a high school or wherever) audience, which can be smaller,
but has more impact regarding feedback.

~~~
bytematic
Not all resources are of similar quality and profs aren't going to let the
students judge that for themselves. I imagine a prof wants questions that
specifically walk students through what they are teaching.

------
mlthoughts2018
I studied so much discrete math in undergrad.

Characteristic polynomials, rook polynomials, derangements, counting,
recurrence relations, elementary number theory, elementary p-adic numbers,
logic, geometric series, abstract algebra.

I have never needed any of it, and never faced a situation where knowledge or
intuition in those topics helped me to think differently about a problem,
never faced any type of computational complexity questions that I didn’t solve
just by looking various things up as-needed.

The only thing discrete math did for me was help me boost my GRE math score to
get into a good math grad program, where I switched to machine learning and
MCMC topics.

Very occasionally you might encounter a simple permutation or combination
counting argument in a paper or something, but it’s rare.

I enjoy discrete math, but really felt misled about it’s actual usefulness in
almost any corporate software / research / engineering job.

If you don’t know this stuff but you can grok most basic counting arguments
after looking a few things up on Wikipedia, you’ll be fine. Deeper command of
these topics really doesn’t yield economic returns to your effort in almost
all cases, unfortunately.

~~~
maga_2020
this experience could depend on the field of work you are in.

Being fluent in statistics/linear algebra & discrete math/category theory --
makes you 'head and shoulders' above others, when it comes to assessing
industry trends, and deciding if some are applicable to your work.

Having those skills, does not mean, of course, that they would compensate for
the lack of creativity, hard work, risk taking, constant year-after-year-self
study, or inter-personal & presentation skills.

Some examples:

Being able to understand word-vectors and related techniques, for chat boats,
or compliance -- is very helpful.

Being able to reason about degrees of security of data published on 'immutable
databases' or 'data streams' \-- is useful, again in compliance (as in making
records tamper-proof).

Being able to design protocol/interaction across systems with context-free
grammars -- is helpful, in protected against certain types of attacks. I would
say this is reasonably relevant for systems that are exposed on public
internet.

Being able to read reasonably recent (or 20-30 year old) papers on
Differential privacy/homomorphic encryption -- allows you to reason how
effective your data protection strategy could be (again relevant for
compliance).

Obviously, understanding financial service models, performance models of
distributed queuing systems -- require understanding of the maths I mention
above.

Being able to recognize where in your, even basic business workflow or
database/state management -- there is an appropriate place to introduce
finite-state-automate (to reduce number on 'unanticipated conditions') -- is
also helpful.

Being able to recognize database mapping through the lens of category theory,
improves how you could design your data models (because right at the time of
designing your data layout you are also thinking about transformations between
them -- which is basic need for non-trivial business system integration).

Opposite to the above post, I always feel that I need more math background
that I have. And I would love to go back in time and significantly beef-up my
education in that area.

~~~
mlthoughts2018
My work has spanned almost all of the different examples you listed, and I
don’t believe my ability to work in those topics or understand them was aided
or helped by studying discrete math at all.

(Note: you lump linear algebra in to the discussion but it is dramatically
different than what is typically called “discrete math.”)

Additionally, many of my colleagues on machine learning and intense
distributed scientific computing applications that I’ve worked on have had
zero discrete math education or self-teaching.

I am more effective at engineering in these applications than some of these
people, and less effective than others. Prior exposure to discrete math seems
to have no effect.

------
chatmasta
I took this class. Professor Aspnes is a great teacher and his notes are
ridiculously thorough.

On the first day of class he told us (paraphrasing) “I never went to class in
undergrad, so I don’t expect you to. But the lectures will help you on the
problem sets, so I encourage you to attend.”

For those of us who may have had... less than thorough attendance... these
notes were a real godsend!

He also has some for his randomized algorithms class:
[http://www.cs.yale.edu/homes/aspnes/classes/469/notes.pdf](http://www.cs.yale.edu/homes/aspnes/classes/469/notes.pdf)

And also for his other classes which you can find here:
[http://www.cs.yale.edu/homes/aspnes/](http://www.cs.yale.edu/homes/aspnes/)

(Professor Aspnes is now the DUS of the CS department at Yale)

------
curiousgal
I see notes like these every once in a while and I always wonder, if the
material is the same, how come there isn't a unified source for all of it? Why
is there a need for every professor to create their own notes that cover the
same things? For example, probability theory is still the same after all these
years why can't we create a one true reference for people learning it.

~~~
markhkim
Nobody teaches the same topic in the exactly the same way.

There is, for one, far more material in any given subject than an introductory
course or textbook can (or should) cover, so the author/instructor must choose
what to include.

Plus, the order of presentation matters. For example, here are two standard
ways of introducing the real numbers:

#1 (Dedekind cut). Picture a square of side length 1. The length of the
diagonal, √2, cannot be represented by a ratio of integers, so we need a new
number system to represent it. These numbers "in between" rational numbers are
called irrational numbers, and together they form the real numbers.

#2 (Cauchy completion). Non-repeating decimals, such as π ≈ 3.141592, cannot
be represented by a ratio of integers. We call such decimal numbers irrational
numbers. Any number representable by a (finite or infinite) decimal is called
a real number.

You can deduce #2 from #1, and vice versa. It's entirely up to the
author/instructor to decide which one to start with.

Lastly, there is always a better way to explain the same material.

~~~
facundoq
Besides, books have different levels and audiences. I learned Linear Algebra
from three books:

1) Gilbert Strang's "Introduction to Linear Algebra" was great because Gilbert
goes straight to intuitions, the proofs are simple, most exercises have
answers, but it does not cover advanced material. I used this book for self-
teaching. You could probably learn from it with just high-school level maths.
Good for engineers.

2) Hoffman and Kunze's "Linear Algebra" was given as a textbook for my first
LA course. While it covered some topics that weren't found in many other
textbooks and are not really "standard curricula" in many other universities
for (jordan normal form, rational canonical form). I found it more similar to
a reference than a textbook; it is intended for math majors. The proofs are
imho a bit obtuse and it usually introduces topics without much justification.
Determinants are introduced early.

3) Axler's "Linear Algebra Done Right" OTOH covered many of the topics in
Hoffman&Kunze but the organization and the proofs were (imho) mucho more clear
and motivated. Also intended for math majors. No determinants until the end.

------
amai
Not complete without some finite calculus:
[https://www.cs.purdue.edu/homes/dgleich/publications/Gleich%...](https://www.cs.purdue.edu/homes/dgleich/publications/Gleich%202005%20-%20finite%20calculus.pdf)

~~~
mikhailfranco
Thanks for the link, very nice.

It also led me to _Concrete Mathematics_ by Knuth, _et al_ ...

[https://www.csie.ntu.edu.tw/~r97002/temp/Concrete%20Mathemat...](https://www.csie.ntu.edu.tw/~r97002/temp/Concrete%20Mathematics%202e.pdf)

------
floatboth
> [Foundations and logic] Why: This is the assembly language of
> mathematics—the stuff at the bottom that everything else compiles to.

> [Basic mathematics on the real numbers] Why: You need to be able to
> understand, write, and prove equations and inequalities involving real
> numbers

If logic is the assembly, real numbers must be the Enterprise Java frameworks
:)

But really, aren't they from non-discrete (continuous?) mathematics? How are
they useful for computer science? Like, sure we have approximations of them on
computers (floats, rationals) but aren't they mostly used for those pesky
boring real-world-ish calculations? Isn't CS mostly about integers?

~~~
markhkim
You can't have calculus without the real numbers, and you can't have
asymptotic analysis and probability theory without calculus. There goes the
whole field of the analysis of algorithms.

~~~
fjsolwmv
You can do discrete math (including analysis of algorithms) without reals.

Reals are only needed for calculus on infintesimals, which are not relevant to
much of CS. Everything you can do with formal Taylor expansions doesn't need
reals. In fact knowing calculus on the reals often causes confusion in
students learning formal expansions for CS.

~~~
Ar-Curunir
All of optimization, stats and theoretical ML involves solid grasp of calculus
over the reals

------
wiz21c
Any analysis aside, the introduction chapter (chap. 1) is really pleasant to
read.

