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.

Combinatorics and Probability

Introduction to Graph Theory

Delivery Problem

#### Related Articles

Courses On Mathematical Thinking

Does Math Help Programming Or Programming Help Math?

Programming - A Life Long Challenge

What Makes A Programmer

 Raspberry Pi - You Can Have 10 Zeros! Updated05/06/2023The shortage of Pis has been a real problem. At the end of last year we were promised that the situation would be easing in the new year, but it didn't noticeably change. Now we have news that you can [ ... ] + Full Story Jakarta EE Gets Its Own Project Initializer11/05/2023About time. Spring had it for ages, and was one of its advantages over Jakarta. Will the new initializer turn the tide in Jakarta's favor? + Full Story More News