return to table of content

Discrete Mathematics – An Open Introduction, 4th edition

hirvi74
14 replies
21h12m

I wish more textbooks, especially free resources like in the link, would be better about providing more solutions. A book with a lack of solutions tends to create a circular problem for me.

Knowing whether my solution is correct or not is dependent on how well I truly understand the concepts. However, if I truly understood the concepts, then I wouldn't need to solve the problem in the first place. How is one supposed to learn without feedback?

yshklarov
5 replies
14h52m

Not providing solutions is quite common in math textbooks, in part because professors (including the author!) want to be able to assign problems from the textbook to their class, and in part because making solutions is a lot of work!

Outside of a classroom setting, the way you learn from a textbook without external feedback is by engaging more actively with the material.

Treat each statement in the main text as an informal exercise. Each time you come across a proposition -- whether it's a formal theorem statement or a claim in the body of the exposition -- try proving or otherwise justifying it to yourself before reading on.

Take a look at Theorems 2.3.1 and 2.3.2 -- they are very similar. Once you have absorbed the proof of 2.3.1, you can attempt 2.3.2 on your own. If you can't finish the proof, you can read a couple of sentences from the included proof for "hints"... or, if you do finish a proof, you can compare it to the proof in the text.

If you read actively enough, you can learn the material quite well without doing any problems. Many people will claim that you need to do formal problems in order to learn math, but this is untrue. Many math textbooks at the higher level don't include formal exercises or problems at all, and people learn from them just fine.

Admittedly, reading mathematics is a skill in its own right, and you shouldn't expect it to come easily right away. Of course, the best thing is to have a one-on-one teacher, but few of us are so lucky.

BossingAround
2 replies
11h49m

Honestly, this seems needlessly painful to me. Of course, you can be scanning each sentence for a proposition, then pause, and try to reason it out, thus spending 4 weeks on like 5 pages of a 10-page chapter. But is that the best use of your time?

The bigger problem is that not every thing that the author says is within your level of reasoning. Some very simple things can be exceedingly hard to prove, and you, as a learner, don't know which is which. That's why there are the problems at the end of the chapter, which are designed for the level that you should have attained by the end of the chapter. Without solutions though, you have no way to check your understanding, and you are forced to try and squeeze every little problem from the text.

Not having solutions is simply not suitable for a self-learner. It is sufficient for a class settings, where you can ask the professor if your solution is correct.

To me, a good compromise is to provide solutions to every odd- (or even-) numbered problem. Thus, the self learners have at least half of the problems within their reach, and t he teachers can assign the other half of the problems.

enriquto
1 replies
11h10m

spending 4 weeks on like 5 pages of a 10-page chapter. But is that the best use of your time?

Look at it as the best use of paper :)

Many math books are dense. They don't bullshit you around. Spending several hours on a single page is the normal usage.

moomin
0 replies
7h32m

Yeah, and for better or for worse, it is the best arrangement. I remember ploughing through Alan Baker’s number theory book. You have to sit with a pencil and paper and convince yourself of half the steps, but you sure as hell know the material afterwards. And you do need the skills you gain by doing this.

bick_nyers
1 replies
6h9m

I disagree. I have to learn by committing to muscle memory. I always say I'm a slow learner, but a fast thinker.

Yes, I can read/hear a concept and understand it in abstract and visualize it pretty easily, but it will leave my brain just as easily as it entered. Just the way my memory works.

Solved problems speeds up that muscle memory learning process significantly as opposed to going line by line and attempting to generate your own problems/solutions. In addition, you can solve a problem correctly, but not have the correct prose, solution manuals can help there as well.

Edit: Honestly the biggest thing about solving problems is that it gives a sense of progression and a dopamine-reward loop that most people just don't get from reading one line at a time. That being said, good problems and good solutions can be time consuming to generate, so it makes total sense to me that the PhD-level textbooks don't follow that format.

cultofmetatron
0 replies
1h50m

Solved problems speeds up that muscle memory learning process significantly as opposed to going line by line

completely agree. I would recommend checking out mathacademy.com. I've been using it the last two months to raise my skill levels in math and its been a great investment of my time. It gives you a short lesson on the topic and then just gives you problem sets to burn though. what I like about it is that you don't think about your learning objectives. I just log in every day and do the problem sets and lessons until I feel like I did enough for the day. repeat everyday and you'll just naturally find yourself improving.

j7ake
3 replies
15h1m

These days chatgpt can fill the gap surprisingly well for many questions.

yshklarov
0 replies
14h49m

I wouldn't count on it -- LLMs make lots of errors in reasoning, and errors in solutions are very frustrating to most math students.

phforms
0 replies
8h53m

Without any solutions or even problems to begin with and without having a teacher by your side, I found that LLMs can be a good-enough learning assistant. Of course, you cannot rely on their answers and they sometimes lead you astray, but what works for me is to:

- throughout the text, use the LLM to ask questions, generate problems (I haven’t tried this yet, so it might not work very well) and give you hints on how to close the gaps in your understanding

- reduce a given problem to the simplest possible case and ask how to solve that (if you want to check if your solution seems plausible) or if it can give you hints on how to approach the problem (when you are stuck)

- vary the problem description to see if different approaches are suggested

- critically ask questions about the (steps to the) solution or any provided hints (does something seem odd or logically inconsistent?)

- other LLMs sometimes give you better answers (or contradict each other), so, if possible, try asking different LLMs the same questions

Having this “conversation” with the LLM where you need to critically check everything it says has the added benefit of being more actively engaged with the material as opposed to simply looking up the solution. It may be a huge waste of time if you’re not careful, but I think if you use it intelligently to guide your own thinking, it can be very helpful.

BossingAround
0 replies
11h43m

ChatGPT can help with very simple problems that people have already solved online. That said, typically, you can search for the actual solution online without the ChatGPT's possible hallucinations.

A better use of LLM is to input your reasoning and ask if it is correct, but even then, you can't rely on the output. Probably the best is to ask on the math side of stack overflow and rely on the kindness of a stranger.

wjholden
1 replies
4h53m

By solving the problem in more than one way! This should be very achievable in a field like discrete math. First solve the problem by hand, then model the program in something like Mathematica or OR-Tools and see if you can get the same solution.

This would work even better in a lower level maths like Algebra and Calculus. Just use Mathematica's Solve[] function for many problems and you'll know if you were right or wrong.

One can also use this approach in an algorithms class. Write your own naïve program to trivially but reliably solve test cases, then compare your more sophisticated algorithms to these results. Alternatively, use a reference implementation from some other library. For example, compare your own graph algorithm solutions to what Neo4j returns.

justin66
0 replies
2h48m

Or save yourself hundreds of hours and find a textbook with solutions.

oscarlevin
0 replies
2h8m

Author here. For what it's worth, deciding what percentage of the exercises should have solutions is a continual challenge. I chose to use a lot of interactive exercises (thanks to PreTeXt these are easy to embed in the text) for which students can enter their answer and get feedback on whether they are correct. That works well for computational problems. For proof-based or otherwise theoretical problems, I tired to provide enough examples with full solutions and a few exercises with them as well, while still giving those who would like to have a more authentic open-ended problem without solution that opportunity too. And of course, I want other professors to find the book useful for courses they teach, and providing problems without solutions that can be graded for credit is also important.

Anyway, hope you find the resource helpful.

humanfromearth9
0 replies
11h35m

I think that each may book should at least have all problem solutions at least, and most problem resolutions as well, leaving some room problem to be solved without giving the resolution, for training. Anything short of that can only be used as a reference book by a teacher, because teachers need to confirm that the resolution is indeed complete and right. Without that, as a engineering and economics student (decades ago), my resolutions would often have been incomplete and lack some details and specific cases.

phforms
9 replies
23h23m

As an autodidact without an “official” CS degree, discrete Mathematics seemed to me like a key area to open up more advanced topics and solve many practical problems in programming. And indeed it helped me on many such occasions (although I am still studying).

I really like the book “A Primer of Discrete Mathematics”[1] by Finkbeiner II and Lindstrom from 1987. It’s a bit old and unfortunately not free but still holds up pretty well and has many good exercises with selected answers.

I will absolutely check out this book though, looks like a more modern approach with interactive exercises and it even is completely free!

[1]: https://archive.org/details/isbn_0716718154

qsort
1 replies
23h8m

Concrete mathematics is significantly more advanced though, if I'm not mistaken it even introduces the basics of analytic combinatorics with OGFs. Something at the same level would be the basic competitive math curriculum in combinatorics and number theory.

chongli
0 replies
18h31m

Aren't generating functions a standard part of a first course in combinatorics? They were when I took introduction to combinatorics in university.

grepLeigh
2 replies
21h49m

Discrete Mathematics and It's Applications by Kenneth H. Rosen helped me get an A in CS70 (Discrete Math and Probability) at UC Berkeley this past summer.

The textbook is quite large, but the content is very accessible. I'm also self-taught, finally taking formal math/physics coursework in my 30s to fill in the gaps.

Another amazing resource has been California Community Colleges. So far every math teacher I've had has been extraordinarily passionate. Most math classes have an async/online section, and it's pretty common for adults to take the classes just for fun/self-improvement.

yumraj
1 replies
15h47m

I'm also self-taught, finally taking formal math/physics coursework in my 30s to fill in the gaps.

How did you take CS70? Are you enrolled as an undergrad/grad student?

nj5rq
1 replies
21h20m

I was intimidated by these math books, but I was able to find a lot of interesting stuff in "Applied Discrete Structures" by Al Doerr and Ken Levasseur[1]. I was attracted by the "Logic" section, and I was not disappointed. You can download it for free from their website.

It’s a bit old and unfortunately not free

It's available on Anna's Archive, in case someone is looking for it.

[1] https://discretemath.org/

christianqchung
0 replies
10h0m

Hey, that's my school! I didn't have Doerr or Levasseur (before my time), but James Propp did a phenomenal job of teaching the material. I don't know how discrete is taught in other schools but I thought having two dedicated classes for it was helpful.

sn9
0 replies
19h4m

The AOPS Counting & Probability books are shockingly good discrete math books that come with complete solutions manuals: https://artofproblemsolving.com/store

basedbertram
4 replies
23h3m

A PDF of the book will be made available by August 15th.

On the sidebar:

PDF coming soon

:(

jamesy0ung
2 replies
20h0m

Are you paying for it? If not, you don't have a right to complain.

DoctorOetker
1 replies
4h9m

Don't turn this into a general rule:

Payer Patrick pays molester Maverick to maim or intimidate victim Victor.

Is Victor allowed to complain? Or only the person who paid?

utopcell
0 replies
18m

What?

oscarlevin
0 replies
14h1m

The PDF really is coming soon. I ran into some snags getting it to compile. Should be fixed by Monday

tucnak
2 replies
4h42m

Is discrete maths a good starting point if I was interested in cryptography? Certainly better than analysis right?

brendank310
1 replies
3h31m

Yeah it's a building block for understanding number theory well, which is important in cryptography.

YZF
0 replies
3h7m

One cool thing about math though is that continuous/analysis concepts and discrete concepts interact with each other. There's a fair bit of calculus in e.g. AoCP. At some point number theory as well. Kind of depends on how deep you want to go. You can learn a lot about cryptography without really needing a very strong mathematical base.

gowld
2 replies
21h52m

Like too many discrete math texts, the Characteristic Root Technique for Repeated Roots section does not give a proof of the forumla.

ykonstant
0 replies
16h58m

It is a consequence of the form of the characteristic equation: if the double root is r, then expanding out x^2 - 2r + r^2 and matching terms we see that a = 2r and b = -r^2; in other words, the recurrence is

  a(n) = 2r a(n-1) - r^2 a(n-2).
Divide by r^n to get the equivalent

  c(n) = 2c(n-1) - c(n-2),  where c(n) = a(n)/r^n
But this is the constant difference recurrence:

  c(n) - c(n-1) = c(n-1) - c(n-2)
So c(n) is an arithmetic progression c(n) = x*n + y for some x and y given by the initial conditions. Thus the original sequence is

  a(n) = c(n) r^n = (x*n + y) r^n.

YZF
0 replies
2h54m

This reminded me of something else... I remember contrasting the discrete math course I took (circa 1990) to Knuth's AoCP and how Knuth used generating functions to find the closed form for recursive series (and IIRC didn't even cover any other methods). The course I took didn't touch on generating functions and most other textbooks I read didn't either.

Interesting to see that this book does cover the topic. I guess "discrete math" can be a lot of different things.

kisonecat
1 replies
20h54m

The HN community might be interested in the XML-based tech used to produce this book, namely https://pretextbook.org/

scythmic_waves
0 replies
15h8m

In fact, I came to the comments to ask. Thank you!

ntnbr
0 replies
16h31m

Seems pretty cool, especially for being free! I'm taking a discrete math course very soon at UT so this is nice.

anonzzzies
0 replies
10h38m

Ah, my favorite course in uni. It made me pick both math and ai majors; math for formal verification because I like discrete math so much in my first year.

aanet
0 replies
49m

What a lovely resource! Thank you, author.

I just wanted to thank all the authors, especially of textbooks, who put their work online, for free. Their dedication shows, and how. It is largely due to these free (and free-ish) resources that many people -- including autodidacts and those with limited resources -- are able to further their education.

Authors - know that your efforts are very much appreciated!

OldGuyInTheClub
0 replies
18h50m

I wish I even liked my field the way the folks who write these free textbooks love theirs.