VOOZH about

URL: https://www.coursera.org/learn/discrete-mathematics-for-computer-science-algorithms-recursion

⇱ Discrete Math for Computer Science - Algorithms & Recursion | Coursera


Discrete Math for Computer Science - Algorithms & Recursion

Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Discrete Math for Computer Science - Algorithms & Recursion

Included with

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

1 week to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

1 week to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Analyse algorithm efficiency using asymptotic growth and mathematical reasoning.

  • Apply number theory concepts to algorithms and basic cryptographic systems.

  • Design and reason about recursive algorithms using induction and recurrence relations.

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

February 2026

Assessments

6 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Discrete Mathematical Tools for Computer Science Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 7 modules in this course

This course focuses on the mathematical foundations behind algorithms, efficiency, and recursive problem solving, building on the logic and counting techniques developed in earlier courses. It introduces key ideas from number theory and shows how they naturally lead to efficient algorithms used throughout computer science.

The course begins with modular arithmetic, divisibility, and greatest common divisors, leading to classic algorithms such as the Euclidean algorithm and its extended form. These concepts are then applied to practical problems in cryptography, including modular exponentiation, key exchange, and public-key encryption, illustrating how abstract mathematics enables secure communication. You will then study the analysis of algorithms, learning how to measure running time using asymptotic notation and compare algorithms based on their growth rates. The course emphasizes reasoning about performance rather than machine-dependent details. Finally, the course develops mathematical induction and recursion as powerful tools for defining, analyzing, and proving the correctness of algorithms. Topics include recursive definitions, recurrence relations, and structural induction, with classic examples such as Fibonacci numbers and recursive counting problems. By the end of the course, learners will be able to design recursive algorithms, analyze their efficiency, and understand the mathematical principles that make modern computation possible.

This module explores number theory (GCD, modular arithmetic), cryptography basics, mathematical induction, recurrence relations, and algorithm correctness. Students learn to prove properties of recursive and iterative solutions and understand secure systems like RSA encryption. It equips learners to design, verify, and analyze efficient, secure computational processes in software, cybersecurity, and advanced computing.

What's included

1 reading

1 readingTotal 10 minutes
  • Course introduction and overview10 minutes

Modular arithmetic studies arithmetic operations under remainders and divisibility. This topic introduces divisibility, congruences, and modular computations, which simplify calculations with large numbers and form the basis of many algorithms in computer science, including hashing, cryptography, and error detection.

What's included

17 videos1 reading1 assignment

17 videosTotal 72 minutes
  • Modular Arithmetic Overview5 minutes
  • Number Theory & Intro3 minutes
  • Divisibility_Definition2 minutes
  • Divisibility_Properties of Divisibility2 minutes
  • (Optional) Divisibility_Example1 minute
  • Divisibility_Euclid’s Division Theorem_Proof of Existence13 minutes
  • Divisibility_Euclid’s Division Theorem_Proof of Uniqueness8 minutes
  • Modular Arithmetic_Lemma3 minutes
  • (Optional) Modular Arithmetic_Example4 minutes
  • Modular Arithmetic_Theorem1 & 25 minutes
  • Modular Arithmetic_Modular Arithmetic on Zm2 minutes
  • Modular Arithmetic_Properties of Arithmetic Modulo m & Proof of Associativity5 minutes
  • Modular Arithmetic_Additive inverses and multiplicative inverses5 minutes
  • Congruences_Definition & Modular Arithmetic and Congruences4 minutes
  • Congruences_Theorem & Corollary7 minutes
  • Applications of Modular Arithmetic_Parity Bits3 minutes
  • Applications of Modular Arithmetic_Random Numbers & Pseudorandom Numbers2 minutes
1 readingTotal 30 minutes
  • Modular Arithmetic30 minutes
1 assignmentTotal 20 minutes
  • Quiz 120 minutes

This topic explores greatest common divisors (GCDs), the Euclidean algorithm, and their applications. It also introduces multiplicative inverses, linear congruences, and the Chinese Remainder Theorem, which are fundamental tools for solving number-theoretic problems efficiently in algorithms and cryptography.

What's included

18 videos1 reading1 assignment

18 videosTotal 77 minutes
  • GCD Overview 4 minutes
  • GCD_intro2 minutes
  • Review of Primary School Knowledge2 minutes
  • Greatest Common Divisor_Definition3 minutes
  • Greatest Common Divisor_Euclidean Algorithm_Lemma6 minutes
  • (Optional) Greatest Common Divisor_Euclidean Algorithm_Example5 minutes
  • Greatest Common Divisor_gcds as Linear Combinations7 minutes
  • Greatest Common Divisor_The Extended Euclidean Algorithm & Puzzle_Water Measuring3 minutes
  • Multiplicative Inverses_Definition & Theorem4 minutes
  • Multiplicative Inverses_Proof of uniqueness3 minutes
  • Multiplicative Inverses_Finding Inverses_Examples1 minute
  • Solving Linear Congruences_Corollary & Proof, Example5 minutes
  • Solving Linear Congruences_Revisiting the String Hash Function1 minute
  • Solving Linear Congruences_HKID Checksum_Single & Transposition Error5 minutes
  • The Chinese Remainder Theorem_Sun-Tsu’s Problem & Theorem6 minutes
  • The Chinese Remainder Theorem_Proof10 minutes
  • (Optional) The Chinese Remainder Theorem_Example2 minutes
  • (Optional) InclassEx8 minutes
1 readingTotal 30 minutes
  • GCD30 minutes
1 assignmentTotal 20 minutes
  • Quiz 220 minutes

This topic introduces cryptography as the study of secure communication over insecure channels. It covers secret-key cryptography, classical ciphers, key exchange problems, and public-key cryptography concepts, illustrating how number theory and modular arithmetic enable secure data transmission in modern systems.

What's included

18 videos1 reading1 assignment

18 videosTotal 101 minutes
  • Cryptography Overview5 minutes
  • Secret Key Cryptography_Intro1 minute
  • Secret Key Cryptography_Caesar Cipher (Shift Cipher) & Example5 minutes
  • Secret Key Cryptography_Affine Ciphers3 minutes
  • Secret Key Cryptography_Block Ciphers3 minutes
  • Secret Key Cryptography_AES1 minute
  • Key Exchange_Problems with secret-key cryptography & The Key Exchange Puzzle3 minutes
  • Key Exchange_Modular exponentiation & A One-Way Function_Modular Exponentiation and Logarithm13 minutes
  • Key Exchange_Discrete Logarithm & Diffie-Hellman Key Exchange8 minutes
  • Key Exchange_Man-in-the-middle Attack2 minutes
  • Public Key Cryptography and RSA_Intro & Public Key Cryptography5 minutes
  • Public Key Cryptography and RSA_The RSA Cryptosystem2 minutes
  • Public Key Cryptography and RSA_Another one-way function_Multiplication and factoring8 minutes
  • Public Key Cryptography and RSA_Key Generator, RSA Encryption & Decryption, RSA in Use & Correctness5 minutes
  • Public Key Cryptography and RSA_Fermat Little Theorem_Lemma6 minutes
  • Public Key Cryptography and RSA_Fermat Little Theorem_Theorem, Corollary & Proof8 minutes
  • Public Key Cryptography and RSA_RSA Correctness_Proof22 minutes
  • (Optional) InclassEx1 minute
1 readingTotal 30 minutes
  • Cryptography30 minutes
1 assignmentTotal 20 minutes
  • Quiz 320 minutes

This topic studies how to evaluate algorithm efficiency by analyzing running time and growth rates. It introduces asymptotic notation, such as Big-Theta, and applies these concepts to compare algorithms, emphasizing performance for large inputs rather than exact execution details.

What's included

18 videos1 reading1 assignment

18 videosTotal 82 minutes
  • Algorithms Overview3 minutes
  • Revisiting the Selection Sort Algorithm & How to Measure the Running Time4 minutes
  • Revisiting the Selection Sort Algorithm_Solution6 minutes
  • The Growth of Functions2 minutes
  • Big-Theta_Definition3 minutes
  • Big-Theta_Using Definition to Derive Big-Theta2 minutes
  • Big-Theta_Comparison of Algorithms4 minutes
  • Big-Theta_Examples1 & Solving Geometric Series18 minutes
  • (Optional) Big-Theta_Examples210 minutes
  • (Optional) Big-Theta_Examples32 minutes
  • Big-Theta_Limitation of Big-Theta3 minutes
  • Big-Oh & Big-Omega, Review3 minutes
  • Big-Theta, Big-Oh & Big-Omega_Examples6 minutes
  • (Optional) Analysis of Algorithms_Example_Insertion Sort4 minutes
  • Analysis of Algorithms_Worst-case Analysis5 minutes
  • (Optional) Analysis of Algorithms_Example_Linear Search2 minutes
  • (Optional) Analysis of Algorithms_Example_Binary Search5 minutes
  • (Optional) InclassEx1 minute
1 readingTotal 10 minutes
  • Algorithms10 minutes
1 assignmentTotal 20 minutes
  • Quiz 420 minutes

Mathematical induction is a proof technique used to establish the truth of infinitely many statements. This topic introduces the principle of induction, its variants, and applications to proving formulas, inequalities, and properties of recursively defined structures common in mathematics and computer science.

What's included

16 videos1 reading1 assignment

16 videosTotal 79 minutes
  • Induction Overview3 minutes
  • Climbing an Infinite Ladder & Validity of Mathematical Induction3 minutes
  • Proving Summations_Example1 & The Good and Bad of Induction8 minutes
  • (Optional) Proving Summations_Example22 minutes
  • (Optional) Proving Inequalities_Example1 & 23 minutes
  • Proving Divisibility Results3 minutes
  • Number of Subsets of a Finite Set8 minutes
  • Odd Pie Fight Problem_Proof10 minutes
  • Tiling Checkerboards10 minutes
  • Euclid’s Division Theorem6 minutes
  • Variants of Induction1 minute
  • Strong Induction3 minutes
  • Fundamental Theorem of Arithmetic4 minutes
  • Two Piles of Matches Problem5 minutes
  • Mistakes in Proofs by Induction19 minutes
  • Mistakes in Proofs by Induction22 minutes
1 readingTotal 10 minutes
  • Induction10 minutes
1 assignmentTotal 20 minutes
  • Quiz 520 minutes

Recursion defines objects and processes in terms of themselves. This topic introduces recursive definitions, recursive algorithms, and techniques for reasoning about their correctness and efficiency.

What's included

26 videos1 reading1 assignment

26 videosTotal 143 minutes
  • Recursion Overview4 minutes
  • Recursively Defined Functions_From Induction to Recursion3 minutes
  • (Optional) Recursively Defined Functions_Example17 minutes
  • (Optional) Recursively Defined Functions_Example29 minutes
  • Recursively Defined Functions_Recurrences & Solving First-Order Linear Recurrence10 minutes
  • Recursively Defined Functions_Mortgage Calculation3 minutes
  • Recursively Defined Functions_Counting Rabbits2 minutes
  • Recursively Defined Functions_Fibonacci Numbers_Intro2 minutes
  • (Optional) Recursively Defined Functions_Fibonacci Numbers_Example110 minutes
  • (Optional) Recursively Defined Functions_Fibonacci Numbers_Example2_Counting Bit Strings5 minutes
  • Recursively Defined Functions_Revisiting Euclid’s GCD Algorithm_Lemma5 minutes
  • Recursively Defined Functions_Revisiting Euclid’s GCD Algorithm_Proof of Lemma9 minutes
  • Other Recursively Definitions_Recursively Defined Sets4 minutes
  • Other Recursively Definitions_Full Binary Trees3 minutes
  • Structural Induction_Example1 & Proof, Structural Induction Framework8 minutes
  • Structural Induction_Example2_Full Binary Trees14 minutes
  • Structural Induction_More examples on recursive definition and structural induction & Example37 minutes
  • Structural Induction_Strings3 minutes
  • Structural Induction_Balanced Parentheses2 minutes
  • Structural Induction_String Concatenation5 minutes
  • Structural Induction_Length of a String1 minute
  • (Optional) Structural Induction_Example42 minutes
  • Recursive Algorithms_Recursive Algorithms, Euclid’s GCD Algorithm & Fibonacci Numbers1 minute
  • Recursive Algorithms_The Tower of Hanoi7 minutes
  • Recursive Algorithms_Summary3 minutes
  • (Optional) InclassEx14 minutes
1 readingTotal 30 minutes
  • Recursion30 minutes
1 assignmentTotal 20 minutes
  • Quiz 620 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

The Hong Kong University of Science and Technology
11 Courses230,786 learners

Explore more from Algorithms

Why people choose Coursera for their career

👁 Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
👁 Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
👁 Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
👁 Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,