Tutorials

This is Words and Buttons Online — a collection of interactive #tutorials, #demos, and #quizzes about #mathematics, #algorithms, and #programming.

Static typing isn’t free. Where do you think the C++ angry mob comes from?

Type inference works like logic deduction so any program in a statically typed language is two programs. The first one is the thing you sell, and the second – is a model that undergoes some sort of verification every time you run a compiler. This second program, although, often being written unknowingly, is not a free bonus, it’s something you have to pay for in several ways.

Complex numbers and conformal mapping

This explains the geometry of complex numbers. Explains conformal transformations, introduces analytic functions, and shows that analytic complex functions are conformal. And using the connection between the geometry and the analysis explains it all in just some five minutes.

Lagrange polynomial as a gateway drug to basis splines

This explains Lagrange interpolation: what is the Lagrange polynomial, why does it run through all the points, what is the basis polynomial, and how come it's a polynomial in the first place.

Trippy polynomials in arctangent scale

This shows the global properties of polynomials, their derivatives, and explains how the Maclaurine and Taylor series work all with animated plots in arctangent scale.

Partial order and non-Boolean logic

Non-Boolean logics are rare but not extinct. Interval logic is one example. Sometimes, you can implement a logic you want within total order or partial order but sometimes even that isn't enough and you need an even more general relation. With operator overloading, you have the freedom to go there but you also have less assurance when working within the total order.

Binary search

An interactive demo of the binary search algorithm along with its one slightly more obscure but promising variant.

Sine and cosine

A pair of interactive mnemonics for sine and cosine. There are also examples of practical usage. Basically, the second half of a tutorial is about how the first half was made.

SymPy makes math fun again

An introduction into symbolic computations in Python. Don't worry, it's much simpler than it sounds. It's about making Python do your math for you with very little investment in the technology.

Yet another floating-point tutorial

Most of what you should know about floating-point numbers put together in an interactive tutorial with quests and puzzles.

Interactive mnemonics for dot and cross vector products

Just a pair of mnemonics for dot and cross vector products. They present the functions, show how they work, and why one is dot and the other is cross.

Polynomial approximation and interpolation

This explains approximation and interpolation, how to use polynomials for that, and how to make both concepts work together.

Interactive explanation of marching cubes and dual contouring

Marching cubes and dual contouring are often used for mesh generation. This explanation shows how they work, what are their differences, similarities, and limitations.

Logic programming in C++

This shows that there is an invisible Prolog in every C++ compiler. It's up to you what to do with it but it's there.

Tries as the evolution of nothing

Trie is a data structure. Like “tree” but different. This tutorial explains the concept behind the trie, what makes it efficient, and when.

Programmer's guide to linear equations

This is an introduction to linear equation systems. It explains linear dependency, under- and over-specification, direct and iterative solvers. The guide should give you enough knowledge to find a proper solution for your task but not enough to implement one efficiently yourself.

APL deserves its renaissance too

APL tutorial explaining the meaning of life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}

NURBS is just an acronym

NURBS stands for the non-uniform rational basis spline. There are three separate concepts. This guide walks you through these concepts one by one.

Programmer's guide to polynomials and splines

This is a brief introduction into polynomials. From how to make a polynomial run through your set of points to how to make it into a spline.

Mathematical analysis explained with Python, blood, and TNT

A brief introduction to mathematical analysis with a little SymPy on the side. The page explains how to disassemble a function, and how to assemble it back from the derivatives.

Even if you can't write assembly like a poet, you can read disassembly like a hunter

This is a very concise introduction to x86 disassembly. It shows that you probably have all the skills to start reading disassembly right now even if you thought it was too complicated for you. It really isn't, see it for yourself.

Interactive guide to homogeneous coordinates

This interactive guide shows how homogeneous coordinates actually make programming geometry simpler and not more complicated. The page explains the extra coordinate, matrices, and generalized transformations. Most of what you need to know about projective geometry as a practicing programmer is here.