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.

**16,891**already enrolled

## About this Specialization

### Skills you will gain

#### 100% online courses

#### Flexible Schedule

#### Beginner Level

#### Approx. 3 months to complete

#### English

### How the Specialization Works

### Take Courses

A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll 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.

### There are 5 Courses in this Specialization

### Mathematical Thinking in Computer Science

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?

### Combinatorics and Probability

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 create a list of all phone numbers to ensure that there are enough phone numbers for everyone? Is there a way to tell that our algorithm will run in a reasonable time before implementing and actually running it? All these questions are addressed by a mathematical field called Combinatorics.

### Introduction to Graph Theory

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 mathematical results, and insights into the deep theories behind them.

### Number Theory and Cryptography

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 thousands of years. And for thousands of years it was more or less just a game that was only interesting for pure mathematicians. Famous 20th century mathematician G.H. Hardy once said “The Theory of Numbers has always been regarded as one of the most obviously useless branches of Pure Mathematics”. Just 30 years after his death, an algorithm for encryption of secret messages was developed using achievements of number theory. It was called RSA after the names of its authors, and its implementation is probably the most frequently used computer program in the word nowadays. Without it, nobody would be able to make secure payments over the internet, or even log in securely to e-mail and other personal services. In this short course, we will make the whole journey from the foundation to RSA in 4 weeks. By the end, you will be able to apply the basics of the number theory to encrypt and decrypt messages, and to break the code if one applies RSA carelessly. You will even pass a cryptographic quest!

### Offered by

#### University of California San Diego

UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.

#### National Research University Higher School of Economics

National Research University - Higher School of Economics (HSE) is one of the top research universities in Russia. Established in 1992 to promote new research and teaching in economics and related disciplines, it now offers programs at all levels of university education across an extraordinary range of fields of study including business, sociology, cultural studies, philosophy, political science, international relations, law, Asian studies, media and communicamathematics, engineering, and more.

### Reviews

#### 4.6

##### TOP REVIEWS FROM INTRODUCTION TO DISCRETE MATHEMATICS FOR COMPUTER SCIENCE

This final course in 5 course specialization is relatively easy one, although the last problem takes little bit time to solve. Provides good introduction to difficult to learn Delivery problem.

A fun conclusion to the specialization that brings all of the mathematics of combinatorics and graph theory together to show how it can be applied to some real world problems.

The teachers are informative and good. They explain the topic in a way that we can easily understand. The slides provide all the information that is needed. The external tools are fun and informative.

Appreciate the structure and the explanations with examples. The practice tool before every lesson not makes it fun to learn but also sets the student in the context and can anticipate the concept.

Was pretty fun and gave a good intro to graph theory. Definitely felt inspired to go deeper and understood the most basic proof ideas. The later lectures can spike in difficulty though. Very nice!

I loved this course! So many interesting things to think about, thoughtfully explained by brilliant instructors. The puzzles really get you thinking. Such genius to put them before the lectures!

I applaud the instructors for their efforts in explaining the concepts as they could be abstract and hard to explain in words! More examples to illustrate the concepts will be even more helpful!

This final course in 5 course specialization is relatively easy one, although the last problem takes little bit time to solve. Provides good introduction to difficult to learn Delivery problem.

## Frequently Asked Questions

What is the refund policy?

Can I just enroll in a single course?

Yes! To get started, click the course card that interests you and enroll. You can enroll and complete the course to earn a shareable certificate, or you can audit it to view the course materials for free. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. Visit your learner dashboard to track your progress.

Is financial aid available?

Can I take the course for free?

Is this course really 100% online? Do I need to attend any classes in person?

This course is completely online, so there’s no need to show up to a classroom in person. You can access your lectures, readings and assignments anytime and anywhere via the web or your mobile device.

How long does it take to complete the Specialization?

Time to completion can vary based on your schedule, but most learners are able to complete the Specialization in 6-8 months.

What background knowledge is necessary?

As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.

Do I need to take the courses in a specific order?

We recommend taking the courses in the order presented, as each subsequent course will build on material from previous courses.

Will I earn university credit for completing the Specialization?

Coursera courses and certificates don't carry university credit, though some universities may choose to accept Specialization Certificates for credit. Check with your institution to learn more.

More questions? Visit the Learner Help Center.