We’ll implement together an efficient program for a problem needed by delivery companies all over the world millions times per day — the travelling salesman problem. The goal in this problem is to visit all the given places as quickly as possible. How to find an optimal solution to this problem quickly? We still don’t have provably efficient algorithms for this difficult computational problem and this is the essence of the P versus NP problem, the most important open question in Computer Science. Still, we’ll implement several efficient solutions for real world instances of the travelling salesman problem. While designing these solutions, we will rely heavily on the material learned in the courses of the specialization: proof techniques, combinatorics, probability, graph theory. We’ll see several examples of using discrete mathematics ideas to get more and more efficient solutions.
Специализация Introduction to Discrete Mathematics for Computer Science
Build a Foundation for Your Career in IT. Master the math powering our lives and prepare for your software engineer or security analyst career
Об этой специализации
Discrete Math is needed to see mathematical structures in the object you work with, and understand their properties. This ability is important for software engineers, data scientists, security and financial analysts (it is not a coincidence that math puzzles are often used for interviews). We cover the basic notions and results (combinatorics, graphs, probability, number theory) that are universally needed. To deliver techniques and ideas in discrete mathematics to the learner we extensively use interactive puzzles specially created for this specialization. To bring the learners experience closer to IT-applications we incorporate programming examples, problems and projects in our courses.
Следуйте предложенному порядку или выберите свой.
Поможет на практике применить полученные навыки.
Отметьте новые навыки в резюме и на LinkedIn.
- Beginner Specialization.
- No prior experience required.
What is a Proof?Upcoming session: Jun 25
- 6 weeks, 2–5 hours/week
О курсе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: indu
Combinatorics and ProbabilityUpcoming session: Jun 25
- 6 weeks, 3-5 hours/week
О курсеCounting is one of the basic mathematically related tasks we encounter on a day to day basis. The main question here is the following. If we need to count something, can we do anything better than just counting all objects one by one? Do we need to cr
Introduction to Graph TheoryUpcoming session: Jun 25
- 5 weeks, 3-5 hours/week
О курсеWe invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathem
Number Theory and CryptographyCurrent session: Jun 18
- 4 weeks, 2-5 hours/week
О курсеWe all learn numbers from the childhood. Some of us like to count, others hate it, but any person uses numbers everyday to buy things, pay for services, estimated time and necessary resources. People have been wondering about numbers’ properties for tho
Delivery ProblemCurrent session: Jun 18
- 3 weeks of study, 2–5 hours/week
О курсеWe’ll implement (in Python) together efficient programs for a problem needed by delivery companies all over the world millions times per day — the travelling salesman problem. The goal in this problem is to visit all the given places as quickly as possible.
Alexander S. Kulikov
More questions? Visit the Learner Help Center.