Mathspp Blog

A blog dedicated to mathematics and programming!

This blog has a really interesting assortment of articles on mathematics and programming. You can use the tags to your right to find topics that interest you, or you may want to have a look at

You can also subscribe to the blog newsletter.

In this Pydon't you'll learn the importance of using good names and I'll give some tips to help you.

In this article of the NNFwP series we'll do the β€œstudent-teacher” experiment with two neural networks, where one network will learn directly from the other.

In this Pydon't I talk about Python style and I go over some tools you can use to help you remain within a consistent style.

In this Pydon't I show you why refactoring is important and show you how to do it in little steps, so that it doesn't become too overwhelming.

Does elegance matter when writing computer programs..?

This Pydon't walks you through the usages of the __name__ dunder method and how to use it effectively.

The purpose of this Pydon't is to show you what underscores are used for in Python, and to show you how to write more idiomatic code with them.

In this Pydon't we will take a look at the reduce function, which used to be a built-in function and is currently in the functools module.

In this Pydon't we explore what Boolean short-circuiting for the and and or operators is, and how to use this functionality to write more expressive code.

In this Pydon't we conclude the slicing trilogy and take a look at the inner workings of Python slicing, from the built-in slice type to the dunder method __getitem__ and its siblings.

In this Pydon't we cover advanced topics related to sequence slicing, like (negative) steps, more idiomatic sequence slicing, slice assignment, and slice deletion.

In the fifth article of this short series we will be handling some subtleties that we overlooked in our experiment to classify handwritten digits from the MNIST dataset.

This article covers the basics of sequence slicing in Python and teaches you some idiomatic slicing patterns to write more elegant code.

In this article we use (finite state) automatons to count 698,438,863,898,480,640 passwords in a couple milliseconds.

A short article with all you need to know about sequence indexing in Python – and a bit more.

If you need to access the items of an iterable but also keep track of their indices, have you considered using enumerate? Let's talk about another of Python's amazing tools to work with for loops.

In part 4 of this series we add some unit testing, improve our tokenizer and implement the primitives ⍴ and ⍀.

for loops are the bread and butter of imperative programming and Python has some really nice tools to work with them. If you want to traverse several structures in parallel, have you considered using zip?

Structural pattern matching is coming in Python 3.10 and the previous Pydon't explored some interesting use cases for the new match statement. This article explores situations for which match isn't the answer.

In the fourth article of this short series we will apply our neural network framework to recognise handwritten digits.