Quantcast
Channel: Theory
Browsing all 98 articles
Browse latest View live

The Bloom Filter

You may never have heard of a Bloom Filter, but this ingenious algorithm is used in Google's BigTable database to save time fruitlessly searching for data that isn't there.

View Article


The Trick Of The Mind - Turing Complete

This second chapter of our new book-in-progress on the nature of programming is aimed at programmers and non-programmers alike. If you can't program, find out why you should learn. If you can program,...

View Article


Lambdas and Delegates - Why Bother?

Programming style has evolved - and delegates and lambdas bring us round in a circle. Functions should be objects but if you don't like this idea then you have to invent delegates and lambdas.

View Article

The Invertible Bloom Filter

If you think that the Bloom filter is magic, wait until you see the invertible Bloom filter. This not only keeps a record of data, it allows you to add, delete and make a list of the data you have...

View Article

Universal Hashing

Hashing is a fun idea that has lots of unexpected uses. Here we look at a novel type of hash function that makes it easy to create a family of universal hash functions. The method is based on a random...

View Article


How Not To Shuffle - The Knuth Fisher-Yates Algorithm

Sometimes simple algorithms are just wrong. In this case shuffling an array looks like a foolproof task, but the obvious doesn't always work and the correct algorithm is just a tiny change away. Find...

View Article

Parentheses Are Trees

Parentheses are at the heart of programming. Understand parentheses and you can rule the earth. No, seriously! Parentheses, trees and stacks are all interconnected in a very deep and fundamental way.

View Article

The Working Programmer's Guide To Language Paradigms

You would think that we would agree on how best to program. In fact we are still warring tribes trying to make the case for our own particular view of how programming should be done. The question is:...

View Article


Dangerous Logic - De Morgan & Programming

Programmers are master logicians - well they sometimes are. Most of the time they are as useless at it as the average joe. The difference is that the average joe can avoid logic and hence the mistakes....

View Article


Lambda Calculus For Programmers

You may have heard of "the lambda calculus" - it's the reason lambda expressions are so called. You may know that it is something to do with computability, and so any explanation of how it works should...

View Article

The Programmer's Guide To The Transfinite

You may have heard a rumor that infinity comes in a number of different types. Get to the bottom of the theory and dispel misconceptions surrounding aleph-zero and all that, with a programmer's view of...

View Article

Axiom Of Choice - The Programmer's Guide

The axiom of choice is the most esoteric math concept you are likely to encounter. You might think it has no relevance to computing, but you would be wrong.

View Article

Quadtrees and Octrees

If you do any advanced work in graphics, sooner or later you will meet the Quadtree or its 3D relation, the Octree. For this reason alone they are worth knowing about, but they are also something you...

View Article


Functional And Dysfunctional Programming

What is functional programming? Surely all our programs should function in some way or other? No - that's not what it means. Functional programming is altogether different....

View Article

What Exactly Is A First Class Function - And Why You Should Care

You may have heard people saying that in some language or another that functions were first class objects, or have come across the term first class function. What does it mean? And why is it so good?

View Article


Programmer's Guide To Theory - NP & Co-NP

As well as how long it takes to do a computation, you can also ask questions about how hard verification of a supposed answer is and this leads us on to the class of problems called NP – perhaps...

View Article

Programmer's Guide To Theory - The Halting Problem

Now we have the Church-Turing thesis and the prime model of computation the Turing machine, it is time to ask what computations are out of reach. If you have not encountered these ideas before then...

View Article


Programmer's Guide To Theory - Numbers

Numbers are central to computation and computer science but they are often regarded as the province of the mathematician. Programmers need some background in what numbers are and this is what this...

View Article

Programmer's Guide To Theory - Where Do The Big Os Come From

You may know about big O notation, but what does it tell you about the algorithm in question? This is what this extract from Chapter 15 of my recent book is all about.

View Article

The Monty Hall Problem

The Monty Hall problem is an exercise in probability theory that even experts get wrong. It seems to be subtle and even paradoxical, but when you notice exactly what is going on it becomes obvious....

View Article
Browsing all 98 articles
Browse latest View live