What is a Proof? (Coursera)

What is a Proof? (Coursera)

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?

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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.

Course 1 of 5 in the Introduction to Discrete Mathematics for Computer Science Specialization.

Syllabus

WEEK 1
Why proofs?
What is a proof? Why do we care about proofs? Are the boring long tedious arguments usually known as mathematical proofs' really needed outside the tiny circle of useless theoreticians that pray something called mathematical rigor'? In this course we will try to show that proofs can be simple, elegant, convincing, useful and (don't laugh) exciting. Later we will try to show different proof techniques and tools, but first of all we should break the barrier and see that yes, one can understand a proof and one can enjoy the proof. We start with simple puzzles where one small remark can disclose "what really happens there" and then the proof becomes almost obvious.

WEEK 2
How to Find an Example?
One example is enough to prove an existential statement, but how to find an example? In many cases the search space is enormous. A computer may help, but some reasoning that narrows the search space, is important both for computer search and for "bare hands" work — how can this be done? What do we need to prove if we claim that our solution is optimal? As usual, we'll practice solving many interactive puzzles. We'll show also some computer programs that help us to construct an example.

WEEK 3
Recursion and Induction
We'll discover two powerful methods of defining objects, proving concepts, and implementing programs — recursion and induction. These two methods are heavily used, in particular, in algorithms — for analysing correctness and running time of algorithms as well as for implementing efficient solutions. You will see that induction is as simple as falling dominos, but allows to prove complex things by decomposing them and moving step by step. You will learn how famous Gauss unexpectedly solved his teacher's problem intended to keep him busy the whole lesson in just two minutes, and in the end you will be able to prove his formula using induction. You will be able to generalize scary arithmetic exercises and then solve them easily using induction.

WEEK 4
Logic
We have already invoked mathematical logic when we discussed proofs by 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 proofs. We will discuss how to construct a negation to the statement and we will meet the notion of a counterexamples. 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 proving statements: Reductio ad Absurdum.

WEEK 5
Invariants
"There are things that never change". Apart from being just a philosophical statement this phrase turns out to be an important idea that can actually help. In this module we will see how it can help in problem solving. Things that do not change are called invariants in mathematics. They form an important tool of proving with numerous applications, including estimating running time of algorithms. We will get some intuition of what they are, see how they can look like and get some practice in using them.

WEEK 6
Solving a 15-Puzzle
In this module we consider a well known 15-puzzle where one needs to restore order among 15 square pieces in a square box. It turns out that the behavior of this puzzle is determined by mathematics: it is solvable if and only if the corresponding permutation is even. We learn the basic properties of even and odd permutations. The task is to write a program that determines whether a permutation is even or odd. There is also a much more difficult bonus task: to write a program that actually computes a solution (sequence of moves) for a given position assuming that this position is solvable.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Algorithms, Part II (Coursera) Coursera
Princeton University

Algorithms, Part II (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Oct 12th 2026
5-12 Weeks
Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Oct 12th 2026
4 Weeks
Mathematical Biostatistics Boot Camp 1 (Coursera) Coursera
Johns Hopkins University

Mathematical Biostatistics Boot Camp 1 (Coursera)

This class presents the fundamental probability and statistical concepts used in elementary data analysis. It will be taught at an introductory level for students with junior or senior college-level mathematical training including a working knowledge of calculus. A small amount of linear algebra and programming are useful for the class, but not required.

Oct 12th 2026
4 Weeks
Learn HTML and CSS (Coursera) Coursera
Scrimba

Learn HTML and CSS (Coursera)

This course is perfect if you want to learn how to code websites from scratch. You will learn the basics of HTML and CSS through interactive challenges. Along the way, you will build multiple projects, like a Google.com clone, a Space Exploration page, and a fun birthday site filled with GIFs. While most of the challenges are done in Scrimba's interactive editor, you will also learn how to use professional tools like VS Code for code editing, GitHub for hosting your code, and Netlify for deploying your projects to the world wide web.

Oct 12th 2026
5-12 Weeks
Electrodynamics: In-depth Solutions for Maxwell’s Equations (Coursera) Coursera
Korea Advanced Institute of Science and Technology - KAIST

Electrodynamics: In-depth Solutions for Maxwell’s Equations (Coursera)

This course is the fourth course in the Electrodynamics series, and is directly proceeded by Electrodynamics: Electric and Magnetic Fields. Previously, we have learned about visualization of fields and solutions which were not time dependent. Here, we will return to Maxwell's Equations and use them to produce wave equations which can be used to analyze complex systems, such as oscillating dipoles. We will also introduce AC circuits, and how they can be simplified, solved, and applied.

Oct 12th 2026
5-12 Weeks
Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Oct 12th 2026
5-12 Weeks
Practical Steps for Building Fair AI Algorithms (Coursera) Coursera
Fred Hutchinson Cancer Center

Practical Steps for Building Fair AI Algorithms (Coursera)

Algorithms increasingly help make high-stakes decisions in healthcare, criminal justice, hiring, and other important areas. This makes it essential that these algorithms be fair, but recent years have shown the many ways algorithms can have biases by age, gender, nationality, race, and other attributes. This course will teach you ten practical principles for designing fair algorithms. It will emphasize real-world relevance via concrete takeaways from case studies of modern algorithms, including those in criminal justice, healthcare, and large language models like ChatGPT. You will come away with an understanding of the basic rules to follow when trying to design fair algorithms, and assess algorithms for fairness.

Oct 12th 2026
4 Weeks
Learn Imba (Coursera) Coursera
Scrimba

Learn Imba (Coursera)

In this class, you'll dive into Imba, the programming language used to build scrimba.com. Imba, a compile-to-JavaScript language, packs a punch with nifty features for whipping up web apps, including built-in tags and styles. We'll cover the ABCs of Imba syntax and work on creating a Dopamine Box app. By the finish line, you'll be armed with the skills to construct your very own web app UI using Imba.

Oct 12th 2026
1 Week
Applied Text Mining in Python (Coursera) Coursera
University of Michigan

Applied Text Mining in Python (Coursera)

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling).

Oct 12th 2026
4 Weeks
Enseñanza de las matemáticas de primaria (Coursera) Coursera
Universidad de los Andes

Enseñanza de las matemáticas de primaria (Coursera)

En este tercer curso de acceso gratuito* del programa especializado Educación Matemática para profesores de primaria, conocerás los conceptos y técnicas para planificar e implementar tus clases. El curso tiene una duración aproximada de seis semanas, con una dedicación promedio de 4 horas semanales. Todas las evaluaciones tienen retroalimentación y podrás descargar la mayoría de los recursos del curso.

Oct 12th 2026
5-12 Weeks