Discrete Math Courses Relaunched
Written by Mike James   
Friday, 12 August 2022

Discrete Math enables you to recognize mathematical structures in real world contexts. It is therefore a valuable skill for software engineers and data scientists. Put together with the ability to think like a programmer and you have a winning combination.


Disclosure: When you make a purchase having followed a link to from this article, we may earn an affiliate commission.

The three courses relating to discrete maths that are newly available after a relaunch are on the Coursera platform and come from the University of California San Diego with Alexander Kulikov as a lead instructor common to all of them.

Combinatorics and Probability takes about 24 hours to complete with the content split into four "Weeks". The first is on Basic Counting and addresses the question "can we count the number of objects without listing all of them?" As the blurb points out:

This question arises naturally in various scenarios both in real life and in Computer Science. What is the number of different phone numbers or license plates? What is the number of different combinations one needs to brute force in order to crack a password? 

Weeks 2 and 3 cover Binomial Coefficients and Advanced Counting respectively and then the focus moves on to Probability, as indispensable tool in Machine Learning.

Introduction to Graph Theory is slightly shorter (21 hours) and is again split between 4 weeks tackling, What is a Graph; Cycles; Graph Classes and Graph Parameters. According to its blurb:

among other intriguing applications, we will see how GPS systems find shortest routes, how engineers design integrated circuits, how biologists assemble genomes, why a political map can always be colored using a few colors. We will study Ramsey Theory which proves that in a large system, complete disorder is impossible!

Delivery Problem only has around 13 hours of content split over 3 weeks. The first introduces the Traveling Salesman Problem (TSP) and looks at some of its many applications from straightforward ones (delivering goods, planning a trip) to less obvious ones (data storage and compression, genome assembly). The next week looks at two general techniques applied to TSP - branch and bound and dynamic programming and the third considers two sub-optimal but practical algorithms. This course uses Python to implement the algorithms.


These three courses follow on from Mathematical Thinking in Computer Science which is an introductory course to all these topics, It consists of 42 hours or content split over six weeks and features a "try-this-before-we-explain-everything approach" in which you are challenged to solve interactive (and mobile friendly) puzzles designed to allow you to invent many of the important ideas and concepts yourself.

This course has already been updated but remains just as interesting as when we first encountered it, see  when all these course, together with Number Theory and Cryptography which is currently in the process of being updated, were part of the Introduction to Discrete Mathematics for Computer Science Specialization. It is to be hoped this credential will be re-instated once this fifth course is again available

The course authors have also just released a new version of  the companion book, Discrete Mathematics for Computer Science, which now covers everything from the Combinatorics and Probability course. As well as the readings that are integrated into the course content, the book goes further and intended to help you to discover important ideas in discrete mathematics on your own.  


  • Mike James is the author of The Programmer’s Guide To Theory which sets out to present the fundamental ideas of computer science in an informal, and yet informative, way. Included in its pages you'll find the Travelling Salesman Problem and algorithms used to approximate a solution. Another of his books is The Trick Of The Mind: Programming and Computational Thought, aimed at programmers and non-programmers alike, which examines the nature of programming and reveals why it is a very special skill. 

More Information

Combinatorics and Probability

Introduction to Graph Theory

Delivery Problem

Mathematical Thinking in Computer Science

Related Articles

Courses On Mathematical Thinking

Does Math Help Programming Or Programming Help Math?

Programming - A Life Long Challenge

What Makes A Programmer

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



OpenJS Foundation Launches jQuery Website Checker

The OpenJS Foundation has launched a new website checker tool that detects if the jQuery used is out of date.

OpenAI Introduces GPT-4o, Loses Sutskever

It's an eventful week for OpenAI, the research company dedicated to making advances towards Artificial General Intelligence that are both safe and beneficial to all. A day after it showcased its lates [ ... ]

More News

raspberry pi books



or email your comment to: comments@i-programmer.info




Last Updated ( Friday, 12 August 2022 )