Mathematical thinking is crucial in all areas of computer science: algorithms, bioinformatics, computer graphics, data science, machine learning, etc. In this course, we will learn the most important tools used in discrete mathematics: induction, recursion, logic, invariants, examples, optimality. We will use these tools to answer typical programming questions like: How can we be certain a solution exists? Am I sure my program computes the optimal answer? Do each of these objects meet the given requirements?
In the course, we use a try-this-before-we-explain-everything approach: you will be solving many interactive (and mobile friendly) puzzles that were carefully designed to allow you to invent many of the important ideas and concepts yourself.
Prerequisites:
1. We assume only basic math (e.g., we expect you to know what is a square or how to add fractions), common sense and curiosity.
2. Basic programming knowledge is necessary as some quizzes require programming in Python.
Do you have technical problems? Write to us: coursera@hse.ru

KL

The course is excellent and most stuff is being taught in a nicely presented way. The main disappointment is 15-puzzle, because it's too difficult to understand without proper material.

DG

Jun 30, 2018

Filled StarFilled StarFilled StarFilled StarFilled Star

Love the quality of thought that goes into each lesson. The professors speak with acute clarity and really demonstrate and empathy for the student to truly understand the topics!

Na lição

Logic

We have already invoked mathematical logic when we discussed how to make convincing arguments by giving examples. This week we will turn mathematical logic full on. We will discuss its basic operations and rules. We will see how logic can play a crucial and indispensable role in creating convincing arguments. We will discuss how to construct a negation to the statement, and you will see how to win an argument by showing your opponent is wrong with just one example called counterexample!. We will see tricky and seemingly counterintuitive, but yet (an unintentional pun) logical aspects of mathematical logic. We will see one of the oldest approaches to making convincing arguments: Reductio ad Absurdum.

Ministrado por

Alexander S. Kulikov

Visiting Professor

Michael Levin

Lecturer

Vladimir Podolskii

Associate Professor

Transcrição

[MUSIC] Consider the following problem. We need to show that there are two people in New York City with the same number of hairs. Okay, let's see what's going on with this problem. First of all, how many people are there in New York City? Wikipedia says it's at least 8 million. Okay, and how many hairs does a person have on his head? So again, Wikipedia says it's about 150,000 hairs at most. So what can we conclude? We see that there are way more people in New York city than possible number of hairs. And this means that there should be two people with the same number of hairs. Indeed if there lies only one person for a certain number of hairs, then there are just not enough number of hairs for everyone. So there should be people with the same number of hairs. Okay, the general principle used here is a Pigeonhole principle. Suppose there are n pigeonholes and there are n + 1 pigeons in there. Then we can claim that there is a pigeon hole that is occupied by at least two pigeons. This is a very simple principle but on the other hand, this is very useful, people use it a lot. So how can we check that this principle is true? We can prove it by contradiction. If there is at most one pigeon, if the statement is false and if there is at most one pigeon in each hole, then we can sum them up and if we have at most n pigeons in total in all holes. So this is a contradiction to the statement there are n + 1 pigeons in all that. So by contradiction we show that the principle is correct. And in the previous example, people of New York City played a role of pigeons and a possible number of hairs played the role of holes. So we have shown that there are much more pigeons than holes not even n + 1 pigeons but much more. So there must be a pigeonhole, the number of hairs that is shared by two people. [MUSIC]