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

- the problems I wrote to get your brain working;
- some twitter proofs of mathematical facts.

You can also subscribe to the blog newsletter.

10502

`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`

?

A waiter at a restaurant gets a group's order completely wrong. Can you turn the table to get two or more orders right?

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.

Structural pattern matching is coming in Python 3.10 and this article
explores how to use it to write Pythonic code,
showing the best use cases for the `match`

statement.

A bunch of ants are left inside a very, very, tight tube, and they keep colliding with each other and turning around. How long will it take them to escape?

The third article of this short series concerns itself with the implementation of the backpropagation algorithm, the usual choice of algorithm used to enable a neural network to learn.

In the second article of this short series we will create a class for a generic neural network and we will also see how to assess the quality of the output of a network, essentially preparing ourselves to implement the backpropagation algorithm.

Python's comparisons operators can be chained to shorten
common comparison expressions.
Learn the ins and outs of comparison operator chaining
and especially the cases you should *avoid*,
namely those where you chain comparison operators that aren't aligned.

This is the first article in a series to implement a neural network from *scratch*.
We will set things up in terms of software to install, knowledge we need,
and some code to serve as backbone for the remainder of the series.