Learn the language of Computer Science. Learn the math that defines computer science, and practice applying it through mathematical proofs and Python code

### Join Email Learners

Follow the guide on landing page

## About this Specialization

Discrete Mathematics is the language of Computer Science. One needs to be fluent in it to work in many fields including data science, machine learning, and software engineering (it is not a coincidence that math puzzles are often used for interviews). We introduce you to this language through a fun try-this-before-we-explain-everything approach: first you solve many interactive puzzles that are carefully designed specifically for this online specialization, and then we explain how to solve the puzzles, and introduce important ideas along the way. We believe that this way, you will get a deeper understanding and will better appreciate the beauty of the underlying ideas (not to mention the self-confidence that you gain if you invent these ideas on your own!). To bring your experience closer to IT applications, we incorporate programming examples, problems, and projects in the specialization.

## Applied Learning Project

Weâ€™ll implement together an efficient program for a problem needed by delivery companies all over the world millions of times per day â€” the travelling salesman problem. The goal of 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.

## Skills You Will Gain

- Graph Theory
- Number Theory
- Cryptography
- Probability
- Mathematical Induction
- Proof Theory
- Discrete Mathematics
- Mathematical Logic
- Random Variable
- Probability Interpretations
- Combinatorics
- Modular Exponentiation

## How the Specialization Works

**Take Courses**

A Coursera Specialization is a series of courses that helps you master a skill. To begin, enrol in the Specialization directly, or review its courses and choose the one you’d like to start with. When you subscribe to a course that is part of a Specialization, youâ€™re automatically subscribed to the full Specialization. Itâ€™s okay to complete just one course â€” you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress.

**Hands-on Project**

Every Specialization includes a hands-on project. You’ll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you’ll need to finish each of the other courses before you can start it.

**Earn a Certificate**

When you finish every course and complete the hands-on project, you’ll earn a Certificate that you can share with prospective employers and your professional network.

Originally posted 2021-12-30 06:46:05.